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

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Eigener Test für offenen Port 4711 in Greenbone/OpenVAS ==
+
= NASL NVT für Port 4711 unter Greenbone erstellen =
  
Dieser Artikel beschreibt, wie ein eigener NASL-basierter Compliance-Test für Greenbone/OpenVAS erstellt wird. Der Test meldet, wenn TCP-Port 4711 offen ist, und stuft dies als kritischen Compliance-Verstoß ein.
+
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.
  
== Arbeitsverzeichnis vorbereiten ==
+
== Voraussetzungen ==
* Lokalen Entwicklungsordner anlegen:
+
* Greenbone Community Edition (oder vergleichbare Installation) mit dem Benutzer `_gvm`.
<pre>
+
* Schreibrechte im Plugin-Verzeichnis `/var/lib/openvas/plugins/`.
mkdir -p ~/nasl-dev
+
* Ein Texteditor wie `nano` oder `vim`.
cd ~/nasl-dev
+
* Synchronisierte NVTs:
</pre>
+
  <source lang="bash">
 +
  sudo -u _gvm greenbone-nvt-sync
 +
  </source>
 +
* Grundkenntnisse in NASL (siehe [http://www.openvas.org/nasl.html OpenVAS NASL-Referenz]).
  
== NASL-Skript schreiben ==
+
== Schritte ==
* Erstelle die Datei <code>port4711_check.nasl</code> mit folgendem Inhalt:
 
<pre>
 
if (description) {
 
  script_id(900001);
 
  script_version("1.0");
 
  script_name("Compliance: Port 4711 offen");
 
  
   script_tag(name:"summary", value:"Meldet, wenn Port 4711 offen ist – als kritischer Compliance-Verstoß.");
+
=== 1. NASL-Skript erstellen ===
   script_tag(name:"risk_factor", value:"Critical");
+
Erstelle eine Datei `check_port_4711.nasl` im Plugin-Verzeichnis:
   script_category(ACT_PORT_SCAN);
+
<source lang="bash">
   script_family("Compliance");
+
sudo -u _gvm vim /var/lib/openvas/plugins/check_port_4711.nasl
 +
</source>
 +
 
 +
Füge den folgenden NASL-Code ein:
 +
 
 +
<source lang="nasl">
 +
# 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);
 
   exit(0);
 
}
 
}
 +
 +
include("host_details.inc");
 +
include("port_service_func.inc");
  
 
port = 4711;
 
port = 4711;
  
if (get_port_state(port)) {
+
if(!get_port_state(port)) {
   security_message(port: port, data: "Compliance-Verstoß: Port 4711 ist offen.");
+
  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);
 
}
 
}
</pre>
 
  
== Syntax und Funktion lokal testen ==
+
exit(99);
* Skript lokal prüfen (ohne vollständigen Scan):
+
</source>
<pre>
 
sudo openvas-nasl -X -T openvas ~/nasl-dev/port4711_check.nasl
 
</pre>
 
  
== Plugin ins System einbinden ==
+
=== 2. Skript speichern und Berechtigungen setzen ===
<pre>
+
* Speichere die Datei (`Ctrl+O`, `Ctrl+X` in `nano`).
sudo cp ~/nasl-dev/port4711_check.nasl /var/lib/openvas/plugins/
+
* Überprüfe die Berechtigungen:
sudo chown _gvm:_gvm /var/lib/openvas/plugins/port4711_check.nasl
+
<source lang="bash">
sudo chmod 644 /var/lib/openvas/plugins/port4711_check.nasl
+
sudo chown _gvm:_gvm /var/lib/openvas/plugins/check_port_4711.nasl
</pre>
+
sudo chmod 644 /var/lib/openvas/plugins/check_port_4711.nasl
 +
</source>
  
== Plugin registrieren ==
+
=== 3. NVT-Datenbank aktualisieren ===
<pre>
+
Aktualisiere die OpenVAS-Datenbank als `_gvm`-Benutzer:
 +
<source lang="bash">
 
sudo -u _gvm openvas --update-vt-info
 
sudo -u _gvm openvas --update-vt-info
sudo systemctl restart gvmd
+
</source>
</pre>
+
Falls erforderlich, lade die Plugins neu:
 +
<source lang="bash">
 +
sudo -u _gvm gvmd --rebuild
 +
</source>
  
== Scan-Konfiguration vorbereiten ==
+
=== 4. Scan konfigurieren und ausführen ===
* In der GSA:
+
# Öffne die Greenbone Security Assistant (GSA) im Browser (z. B. `https://<deine-ip>:9392`).
** Scan-Config „Full and Fast“ klonen 
+
# Erstelle eine neue **Scan-Konfiguration**:
** Nur das neue Plugin in der Familie „Compliance“ aktivieren 
+
#* Gehe zu ''Configuration > Scan Configs''.
** Task mit Zielsystem anlegen und starten
+
#* 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''.
  
== Testumgebung simulieren ==
+
== Fehlerbehebung ==
* Auf dem Zielsystem Port 4711 öffnen:
+
* '''Skript nicht erkannt''': Teste die Syntax:
<pre>
+
  <source lang="bash">
sudo nc -lvp 4711
+
  sudo -u _gvm openvas-nasl -t /var/lib/openvas/plugins/check_port_4711.nasl
</pre>
+
  </source>
 +
* '''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.
  
== Ergebnis prüfen ==
+
== Erweiterungen ==
* Nach dem Scan sollte im Report eine kritische Meldung erscheinen:
+
* '''Banner-Prüfung''': Füge `get_tcp_banner(port:port)` hinzu, um den Dienst auf Port 4711 zu identifizieren.
<pre>
+
* '''CVSS-Anpassung''': Ändere `cvss_base` (z. B. auf 10.0 für maximale Kritikalität) je nach Bedrohung.
Compliance-Verstoß: Port 4711 ist offen.
+
* '''Erweiterte Logik''': Prüfe spezifische Schwachstellen des Dienstes auf Port 4711.
</pre>
 
  
 
== Hinweise ==
 
== Hinweise ==
* Der Test benötigt keine Authentifizierung.
+
* '''OID-Eindeutigkeit''': Verwende eine eindeutige OID, z. B. `1.3.6.1.4.1.25623.1.0.<eigene_nummer>`.
* Funktioniert rein über TCP-Portprüfung.
+
* Konsultiere die [http://www.openvas.org/nasl.html OpenVAS NASL-Referenz] für weitere Funktionen.
* Erweiterbar auf andere Ports, Protokolle oder Kriterien.
+
* 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