Test für offenen Port 4711 in Greenbone/OpenVAS: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= NASL-Skript für Port 4711 Check (Kali Linux/GVM) =
+
= NASL NVT für Port 4711 unter Greenbone erstellen =
{{Warning|'''Wichtig für Kali 2023+''':}}
 
* Alle Befehle werden als '''root''' ausgeführt
 
* Nutzer/Gruppe: '''_gvm:_gvm''' (nicht gvm:gvm!)
 
* Pfade: '''/var/lib/gvm/''' (nicht /var/lib/openvas/)
 
  
== Skript erstellen ==
+
Diese Anleitung beschreibt, wie ein NASL (Nessus Attack Scripting Language) Network Vulnerability Test (NVT) für die Greenbone Community Edition erstellt wird, um zu prüfen, ob Port 4711 offen ist, und bei Offenheit eine kritische Meldung ausgibt. Die Schritte sind für den Benutzer `_gvm` optimiert, der standardmäßig in Greenbone verwendet wird.
 +
 
 +
== Voraussetzungen ==
 +
* Greenbone Community Edition (oder vergleichbare Installation) mit dem Benutzer `_gvm`.
 +
* Schreibrechte im Plugin-Verzeichnis `/var/lib/openvas/plugins/`.
 +
* Ein Texteditor wie `nano` oder `vim`.
 +
* Synchronisierte NVTs:
 +
  <source lang="bash">
 +
  sudo -u _gvm greenbone-nvt-sync
 +
  </source>
 +
* Grundkenntnisse in NASL (siehe [http://www.openvas.org/nasl.html OpenVAS NASL-Referenz]).
 +
 
 +
== Schritte ==
 +
 
 +
=== 1. NASL-Skript erstellen ===
 +
Erstelle eine Datei `check_port_4711.nasl` im Plugin-Verzeichnis:
 
<source lang="bash">
 
<source lang="bash">
sudo mkdir -p /var/lib/gvm/plugins/private
+
sudo -u _gvm vim /var/lib/openvas/plugins/check_port_4711.nasl
sudo nano /var/lib/gvm/plugins/private/check_port_4711.nasl
 
 
</source>
 
</source>
  
Kopiere diesen Code ('''Achtung: OID ist nur für Tests!'''):
+
Füge den folgenden NASL-Code ein:
 +
 
 
<source lang="nasl">
 
<source lang="nasl">
# Port 4711 Check - Kritisch
+
# SPDX-FileCopyrightText: 2025 Dein Name <dein.email@example.com>
if (description) {
+
# SPDX-License-Identifier: GPL-2.0-or-later
   script_oid("1.3.6.1.4.1.25623.1.1.999999");
+
 
   script_version("2024-05-15");
+
if(description)
   script_tag(name:"creation_date", value:"2024-05-15");
+
{
   script_name(english:"Critical Port 4711 Check");
+
   script_oid("1.3.6.1.4.1.25623.1.0.150001"); # Eindeutige OID
   script_family(english:"Service detection");
+
   script_version("2025-08-08T19:32:00+0000");
   script_tag(name:"severity", value:"HIGH");
+
  script_tag(name:"last_modification", value:"2025-08-08 19:32:00 +0000 (Fri, 08 Aug 2025)");
   script_tag(name:"cvss_base_score", value:"10.0");
+
   script_tag(name:"creation_date", value:"2025-08-08 19:32:00 +0000 (Fri, 08 Aug 2025)");
   script_description(english:"Detects open TCP port 4711");
+
  script_tag(name:"cvss_base", value:"7.5"); # Kritischer Schweregrad
 +
  script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:P/I:P/A:P");
 +
  script_tag(name:"qod_type", value:"remote_banner");
 +
 
 +
   script_name("Open Port 4711 Detection");
 +
 
 +
  script_category(ACT_GATHER_INFO);
 +
  script_copyright("Copyright (C) 2025 Dein Name");
 +
   script_family("Service detection");
 +
  script_dependencies("find_service.nasl");
 +
  script_require_ports("Services/unknown", 4711);
 +
 
 +
   script_tag(name:"summary", value:"Prüft, ob Port 4711 offen ist und gibt eine kritische Meldung aus.");
 +
   script_tag(name:"impact", value:"Ein offener Port 4711 kann auf eine unsichere Konfiguration hinweisen und Angreifern Zugriff ermöglichen.");
 +
   script_tag(name:"solution", value:"Schließen Sie Port 4711 oder beschränken Sie den Zugriff durch eine Firewall.");
 +
  script_tag(name:"solution_type", value:"Mitigation");
 +
 
 
   exit(0);
 
   exit(0);
 
}
 
}
  
include("tcp_func.inc");
+
include("host_details.inc");
 +
include("port_service_func.inc");
 +
 
 
port = 4711;
 
port = 4711;
  
if (get_port_state(port)) {
+
if(!get_port_state(port)) {
 +
  exit(0); # Port geschlossen
 +
}
 +
 
 +
if(get_port_state(port)) {
 
   security_message(
 
   security_message(
     port: port,
+
     port:port,
     data: "KRITISCH: Port 4711/tcp ist offen!",
+
     data:"Der Port 4711 ist offen. Dies stellt ein kritisches Sicherheitsrisiko dar, da ungeschützte Dienste auf diesem Port ausgenutzt werden können.",
     severity: SECURITY_HOLE
+
     proto:"tcp"
 
   );
 
   );
 +
  exit(0);
 
}
 
}
 +
 +
exit(99);
 
</source>
 
</source>
  
== Berechtigungen setzen ==
+
=== 2. Skript speichern und Berechtigungen setzen ===
 +
* Speichere die Datei (`Ctrl+O`, `Ctrl+X` in `nano`).
 +
* Überprüfe die Berechtigungen:
 
<source lang="bash">
 
<source lang="bash">
sudo chown _gvm:_gvm /var/lib/gvm/plugins/private/check_port_4711.nasl
+
sudo chown _gvm:_gvm /var/lib/openvas/plugins/check_port_4711.nasl
sudo chmod 644 /var/lib/gvm/plugins/private/check_port_4711.nasl
+
sudo chmod 644 /var/lib/openvas/plugins/check_port_4711.nasl
 
</source>
 
</source>
  
== GVM aktualisieren ==
+
=== 3. NVT-Datenbank aktualisieren ===
 +
Aktualisiere die OpenVAS-Datenbank als `_gvm`-Benutzer:
 
<source lang="bash">
 
<source lang="bash">
sudo gvm-feed-update # Metadaten aktualisieren
+
sudo -u _gvm openvas --update-vt-info
sudo gvmd --rebuild  # Datenbank neu aufbauen
 
 
</source>
 
</source>
 
+
Falls erforderlich, lade die Plugins neu:
== Skript testen ==
 
1. In der GVM-Weboberfläche:
 
  * Scan-Ziel mit Port 4711 erstellen
 
  * Scan-Konfiguration wählen (z.B. "Full and fast")
 
  * Scan starten
 
 
 
2. Kommandozeilen-Check:
 
 
<source lang="bash">
 
<source lang="bash">
sudo gvm-cli socket --gmp-username admin --gmp-password 'dein-passwort' \
+
sudo -u _gvm gvmd --rebuild
  --xml "<get_nvts/><details/></get_nvts>" | grep "Port 4711"
 
 
</source>
 
</source>
 +
 +
=== 4. Scan konfigurieren und ausführen ===
 +
# Öffne die Greenbone Security Assistant (GSA) im Browser (z. B. `https://<deine-ip>:9392`).
 +
# Erstelle eine neue **Scan-Konfiguration**:
 +
#* Gehe zu ''Configuration > Scan Configs''.
 +
#* Wähle oder erstelle ein Profil (z. B. "Full and fast").
 +
#* Aktiviere die NVT-Familie ''Service detection'' und stelle sicher, dass das Skript ''Open Port 4711 Detection'' ausgewählt ist.
 +
# Erstelle eine **Task** unter ''Scans > Tasks'':
 +
#* Gib das Ziel (IP-Adresse) ein.
 +
#* Stelle sicher, dass Port 4711 in der Portliste enthalten ist (z. B. `T:4711`).
 +
# Starte den Scan und überprüfe die Ergebnisse unter ''Scans > Reports''.
  
 
== Fehlerbehebung ==
 
== Fehlerbehebung ==
{| class="wikitable"
+
* '''Skript nicht erkannt''': Teste die Syntax:
! Fehler !! Lösung
+
  <source lang="bash">
|-
+
  sudo -u _gvm openvas-nasl -t /var/lib/openvas/plugins/check_port_4711.nasl
| "gvm-feed-update not found" || <code>sudo apt install gvm-tools</code>
+
  </source>
|-
+
* '''Port wird nicht geprüft''': Stelle sicher, dass Port 4711 in der Scan-Konfiguration enthalten ist (''Configuration > Port Lists'').
| Permission denied || <code>sudo chmod -R 755 /var/lib/gvm/plugins</code>
+
* '''Keine Meldung''': Überprüfe mit `nmap -p 4711 <ziel-ip>`, ob der Port offen ist.
|-
+
* '''Berechtigungsfehler''': Stelle sicher, dass alle Aktionen als `_gvm` ausgeführt werden.
| Skript erscheint nicht || Logs prüfen: <code>sudo journalctl -u gvmd --no-pager -n 50</code>
 
|}
 
  
{{Note|Für Produktivumgebungen:}}
+
== Erweiterungen ==
* OID registrieren unter [https://www.iana.org/assignments/enterprise-numbers IANA]
+
* '''Banner-Prüfung''': Füge `get_tcp_banner(port:port)` hinzu, um den Dienst auf Port 4711 zu identifizieren.
* CVSS-Score anpassen
+
* '''CVSS-Anpassung''': Ändere `cvss_base` (z. B. auf 10.0 für maximale Kritikalität) je nach Bedrohung.
* Ausführlichere Beschreibung hinzufügen
+
* '''Erweiterte Logik''': Prüfe spezifische Schwachstellen des Dienstes auf Port 4711.
</source>
+
 
 +
== Hinweise ==
 +
* '''OID-Eindeutigkeit''': Verwende eine eindeutige OID, z. B. `1.3.6.1.4.1.25623.1.0.<eigene_nummer>`.
 +
* Konsultiere die [http://www.openvas.org/nasl.html OpenVAS NASL-Referenz] für weitere Funktionen.
 +
* Teste das Skript in einer kontrollierten Umgebung, bevor es in einer Produktionsumgebung eingesetzt wird.
 +
 
 +
== Siehe auch ==
 +
* [[Greenbone Community Edition]]
 +
* [[OpenVAS]]
 +
* [[NASL]]
 +
 
 +
[[Kategorie:Greenbone]]
 +
[[Kategorie:NASL]]
 +
[[Kategorie:Sicherheit]]

Aktuelle Version vom 8. August 2025, 17:36 Uhr

NASL NVT für Port 4711 unter Greenbone erstellen

Diese Anleitung beschreibt, wie ein NASL (Nessus Attack Scripting Language) Network Vulnerability Test (NVT) für die Greenbone Community Edition erstellt wird, um zu prüfen, ob Port 4711 offen ist, und bei Offenheit eine kritische Meldung ausgibt. Die Schritte sind für den Benutzer `_gvm` optimiert, der standardmäßig in Greenbone verwendet wird.

Voraussetzungen

  • Greenbone Community Edition (oder vergleichbare Installation) mit dem Benutzer `_gvm`.
  • Schreibrechte im Plugin-Verzeichnis `/var/lib/openvas/plugins/`.
  • Ein Texteditor wie `nano` oder `vim`.
  • Synchronisierte NVTs:
  sudo -u _gvm greenbone-nvt-sync

Schritte

1. NASL-Skript erstellen

Erstelle eine Datei `check_port_4711.nasl` im Plugin-Verzeichnis:

sudo -u _gvm vim /var/lib/openvas/plugins/check_port_4711.nasl

Füge den folgenden NASL-Code ein:

# SPDX-FileCopyrightText: 2025 Dein Name <dein.email@example.com>
# SPDX-License-Identifier: GPL-2.0-or-later

if(description)
{
  script_oid("1.3.6.1.4.1.25623.1.0.150001"); # Eindeutige OID
  script_version("2025-08-08T19:32:00+0000");
  script_tag(name:"last_modification", value:"2025-08-08 19:32:00 +0000 (Fri, 08 Aug 2025)");
  script_tag(name:"creation_date", value:"2025-08-08 19:32:00 +0000 (Fri, 08 Aug 2025)");
  script_tag(name:"cvss_base", value:"7.5"); # Kritischer Schweregrad
  script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:P/I:P/A:P");
  script_tag(name:"qod_type", value:"remote_banner");

  script_name("Open Port 4711 Detection");

  script_category(ACT_GATHER_INFO);
  script_copyright("Copyright (C) 2025 Dein Name");
  script_family("Service detection");
  script_dependencies("find_service.nasl");
  script_require_ports("Services/unknown", 4711);

  script_tag(name:"summary", value:"Prüft, ob Port 4711 offen ist und gibt eine kritische Meldung aus.");
  script_tag(name:"impact", value:"Ein offener Port 4711 kann auf eine unsichere Konfiguration hinweisen und Angreifern Zugriff ermöglichen.");
  script_tag(name:"solution", value:"Schließen Sie Port 4711 oder beschränken Sie den Zugriff durch eine Firewall.");
  script_tag(name:"solution_type", value:"Mitigation");

  exit(0);
}

include("host_details.inc");
include("port_service_func.inc");

port = 4711;

if(!get_port_state(port)) {
  exit(0); # Port geschlossen
}

if(get_port_state(port)) {
  security_message(
    port:port,
    data:"Der Port 4711 ist offen. Dies stellt ein kritisches Sicherheitsrisiko dar, da ungeschützte Dienste auf diesem Port ausgenutzt werden können.",
    proto:"tcp"
  );
  exit(0);
}

exit(99);

2. Skript speichern und Berechtigungen setzen

  • Speichere die Datei (`Ctrl+O`, `Ctrl+X` in `nano`).
  • Überprüfe die Berechtigungen:
sudo chown _gvm:_gvm /var/lib/openvas/plugins/check_port_4711.nasl
sudo chmod 644 /var/lib/openvas/plugins/check_port_4711.nasl

3. NVT-Datenbank aktualisieren

Aktualisiere die OpenVAS-Datenbank als `_gvm`-Benutzer:

sudo -u _gvm openvas --update-vt-info

Falls erforderlich, lade die Plugins neu:

sudo -u _gvm gvmd --rebuild

4. Scan konfigurieren und ausführen

  1. Öffne die Greenbone Security Assistant (GSA) im Browser (z. B. `https://<deine-ip>:9392`).
  2. Erstelle eine neue **Scan-Konfiguration**:
    • Gehe zu Configuration > Scan Configs.
    • Wähle oder erstelle ein Profil (z. B. "Full and fast").
    • Aktiviere die NVT-Familie Service detection und stelle sicher, dass das Skript Open Port 4711 Detection ausgewählt ist.
  3. Erstelle eine **Task** unter Scans > Tasks:
    • Gib das Ziel (IP-Adresse) ein.
    • Stelle sicher, dass Port 4711 in der Portliste enthalten ist (z. B. `T:4711`).
  4. Starte den Scan und überprüfe die Ergebnisse unter Scans > Reports.

Fehlerbehebung

  • Skript nicht erkannt: Teste die Syntax:
  sudo -u _gvm openvas-nasl -t /var/lib/openvas/plugins/check_port_4711.nasl
  • Port wird nicht geprüft: Stelle sicher, dass Port 4711 in der Scan-Konfiguration enthalten ist (Configuration > Port Lists).
  • Keine Meldung: Überprüfe mit `nmap -p 4711 <ziel-ip>`, ob der Port offen ist.
  • Berechtigungsfehler: Stelle sicher, dass alle Aktionen als `_gvm` ausgeführt werden.

Erweiterungen

  • Banner-Prüfung: Füge `get_tcp_banner(port:port)` hinzu, um den Dienst auf Port 4711 zu identifizieren.
  • CVSS-Anpassung: Ändere `cvss_base` (z. B. auf 10.0 für maximale Kritikalität) je nach Bedrohung.
  • Erweiterte Logik: Prüfe spezifische Schwachstellen des Dienstes auf Port 4711.

Hinweise

  • OID-Eindeutigkeit: Verwende eine eindeutige OID, z. B. `1.3.6.1.4.1.25623.1.0.<eigene_nummer>`.
  • Konsultiere die OpenVAS NASL-Referenz für weitere Funktionen.
  • Teste das Skript in einer kontrollierten Umgebung, bevor es in einer Produktionsumgebung eingesetzt wird.

Siehe auch