Test für offenen Port 4711 in Greenbone/OpenVAS: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | = | + | = 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: | |
| − | </ | + | <source lang="bash"> |
| + | sudo -u _gvm greenbone-nvt-sync | ||
| + | </source> | ||
| + | * Grundkenntnisse in NASL (siehe [http://www.openvas.org/nasl.html OpenVAS NASL-Referenz]). | ||
| − | == | + | == Schritte == |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | script_tag(name:"summary", value:" | + | === 1. NASL-Skript erstellen === |
| − | script_tag(name:" | + | 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_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: " | + | 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); | |
| − | + | </source> | |
| − | |||
| − | |||
| − | </ | ||
| − | == | + | === 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/ | + | <source lang="bash"> |
| − | sudo chmod 644 /var/lib/openvas/plugins/ | + | sudo chown _gvm:_gvm /var/lib/openvas/plugins/check_port_4711.nasl |
| − | </ | + | sudo chmod 644 /var/lib/openvas/plugins/check_port_4711.nasl |
| + | </source> | ||
| − | == | + | === 3. NVT-Datenbank aktualisieren === |
| − | < | + | 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 | + | </source> |
| − | </ | + | Falls erforderlich, lade die Plugins neu: |
| + | <source lang="bash"> | ||
| + | sudo -u _gvm gvmd --rebuild | ||
| + | </source> | ||
| − | == Scan | + | === 4. Scan konfigurieren und ausführen === |
| − | + | # Öffne die Greenbone Security Assistant (GSA) im Browser (z. B. `https://<deine-ip>:9392`). | |
| − | ** Scan- | + | # 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 == |
| − | * | + | * '''Skript nicht erkannt''': Teste die Syntax: |
| − | < | + | <source lang="bash"> |
| − | sudo | + | sudo -u _gvm openvas-nasl -t /var/lib/openvas/plugins/check_port_4711.nasl |
| − | < | + | </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. | ||
| − | == | + | == 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 == | == 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
- Grundkenntnisse in NASL (siehe OpenVAS NASL-Referenz).
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
- Ö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
- 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.