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

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Eigener Test für offenen Port 4711 in Greenbone/OpenVAS = Dieser Artikel beschreibt, wie ein eigener NASL-basierten Compliance-Test für Greenbone/OpenVAS…“)
 
 
(10 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-basierten 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.
  
== NASL-Skript: Port 4711 Compliance-Test ==
+
== Voraussetzungen ==
* Speichern der folgenden Datei unter <code>/var/lib/openvas/plugins/nvt_port_4711_check.nasl</code>:
+
* 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]).
  
<pre>
+
== Schritte ==
include("compat.inc");
 
  
if (description)
+
=== 1. NASL-Skript erstellen ===
 +
Erstelle eine Datei `check_port_4711.nasl` im Plugin-Verzeichnis:
 +
<source lang="bash">
 +
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_id(9999999);
+
   script_oid("1.3.6.1.4.1.25623.1.0.150001"); # Eindeutige OID
   script_version("1.0");
+
   script_version("2025-08-08T19:32:00+0000");
   script_name("Compliance: Port 4711 offen");
+
  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_tag(name:"summary", value:"Meldet, wenn Port 4711 offen ist – als kritischer Compliance-Verstoß.");
+
  script_category(ACT_GATHER_INFO);
   script_tag(name:"risk_factor", value:"Critical");
+
  script_copyright("Copyright (C) 2025 Dein Name");
   script_category(ACT_PORT_SCAN);
+
  script_family("Service detection");
   script_family("Compliance");
+
  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>
 
  
== Rechte setzen ==
+
exit(99);
* Die Datei muss dem Benutzer <code>_gvm</code> gehören und lesbar sein:
+
</source>
<pre>
 
chown _gvm:_gvm /var/lib/openvas/plugins/nvt_port_4711_check.nasl
 
chmod 644 /var/lib/openvas/plugins/nvt_port_4711_check.nasl
 
</pre>
 
  
== Syntaxprüfung ohne Scan ==
+
=== 2. Skript speichern und Berechtigungen setzen ===
* Zur schnellen Prüfung des Skripts ohne vollständigen Scan:
+
* Speichere die Datei (`Ctrl+O`, `Ctrl+X` in `nano`).
<pre>
+
* Überprüfe die Berechtigungen:
sudo -u _gvm openvas-nasl -X -T openvas /var/lib/openvas/plugins/nvt_port_4711_check.nasl
+
<source lang="bash">
</pre>
+
sudo chown _gvm:_gvm /var/lib/openvas/plugins/check_port_4711.nasl
 +
sudo chmod 644 /var/lib/openvas/plugins/check_port_4711.nasl
 +
</source>
  
== In GVM einbinden ==
+
=== 3. NVT-Datenbank aktualisieren ===
* Nach erfolgreicher Syntaxprüfung kann das Plugin in den VT-Cache aufgenommen werden:
+
Aktualisiere die OpenVAS-Datenbank als `_gvm`-Benutzer:
<pre>
+
<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>
 +
 
 +
=== 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''.
  
== Scan-Konfiguration ==
+
== Fehlerbehebung ==
* In der GSA:
+
* '''Skript nicht erkannt''': Teste die Syntax:
** Scan-Config „Full and Fast“ klonen
+
  <source lang="bash">
** Nur das neue Plugin in der Familie „Compliance“ aktivieren
+
  sudo -u _gvm openvas-nasl -t /var/lib/openvas/plugins/check_port_4711.nasl
** Task mit Zielsystem anlegen und starten
+
  </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.
  
== Testen des offenen Ports ==
+
== Erweiterungen ==
* Auf dem Zielsystem Port 4711 öffnen:
+
* '''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.
sudo nc -lvp 4711
+
* '''Erweiterte Logik''': Prüfe spezifische Schwachstellen des Dienstes auf Port 4711.
</pre>
 
* Nach dem Scan sollte im Report eine kritische Meldung erscheinen:
 
<pre>
 
Compliance-Verstoß: Port 4711 ist offen.
 
</pre>
 
  
 
== Hinweise ==
 
== Hinweise ==
* Der Test funktioniert ohne Authentifizierung, da er lediglich prüft, ob der Port per TCP erreichbar ist.
+
* '''OID-Eindeutigkeit''': Verwende eine eindeutige OID, z. B. `1.3.6.1.4.1.25623.1.0.<eigene_nummer>`.
* Erweiterbar auf andere Ports, Bedingungen oder mit Authentifizierung für komplexere Checks.
+
* 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