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:
= NASL-Skript für Port 4711 Check (Kali Linux/GVM) =
+
= Open Port 4711 Detection (NASL-VT) =
{{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 VT prüft, ob TCP-Port 4711 auf einem Ziel offen ist, und meldet das im Report.
<source lang="bash">
 
sudo mkdir -p /var/lib/gvm/plugins/private
 
sudo nano /var/lib/gvm/plugins/private/check_port_4711.nasl
 
</source>
 
  
Kopiere diesen Code ('''Achtung: OID ist nur für Tests!'''):
+
== Das Skript ==
<source lang="nasl">
+
 
# Port 4711 Check - Kritisch
+
;Skript anlegen
if (description) {
+
*vi check_port_4711.nasl
   script_oid("1.3.6.1.4.1.25623.1.1.999999");
+
<pre>
   script_version("2024-05-15");
+
# check_port_4711.nasl
   script_tag(name:"creation_date", value:"2024-05-15");
+
# Erkennt, ob TCP-Port 4711 offen ist
   script_name(english:"Critical Port 4711 Check");
+
 
   script_family(english:"Service detection");
+
if(description)
   script_tag(name:"severity", value:"HIGH");
+
{
   script_tag(name:"cvss_base_score", value:"10.0");
+
  # Eigene Arc - NICHT .1.0. (gehört Greenbone). Nur lokal eindeutig.
   script_description(english:"Detects open TCP port 4711");
+
   script_oid("1.3.6.1.4.1.25623.1.7.4711001");
 +
   script_version("2026-06-24T00:00:00+0000");
 +
   script_tag(name:"creation_date", value:"2026-06-24 10:00:00 +0000 (Tue, 24 Jun 2026)");
 +
  script_tag(name:"last_modification", value:"2026-06-24 10:00:00 +0000 (Tue, 24 Jun 2026)");
 +
   script_name("Open Port 4711 Detection");
 +
  script_category(ACT_GATHER_INFO);
 +
   script_family("Service detection");
 +
  script_copyright("Copyright (C) 2026 Thomas / Xinux");
 +
 
 +
  script_tag(name:"cvss_base", value:"0.0");
 +
   script_tag(name:"qod_type", value:"remote_active");
 +
   script_tag(name:"summary", value:"Prüft, ob TCP-Port 4711 offen ist.");
 +
   script_tag(name:"solution", value:"Port 4711 schließen oder per Firewall
 +
einschränken, falls nicht benötigt.");
 +
  script_tag(name:"solution_type", value:"Mitigation");
 +
 
 +
  script_require_ports(4711);
 
   exit(0);
 
   exit(0);
 
}
 
}
  
include("tcp_func.inc");
 
 
port = 4711;
 
port = 4711;
  
if (get_port_state(port)) {
+
if(!get_port_state(port))
   security_message(
+
   exit(0);
    port: port,
+
 
    data: "KRITISCH: Port 4711/tcp ist offen!",
+
log_message(port:port, data:"TCP-Port 4711 ist offen.", proto:"tcp");
    severity: SECURITY_HOLE
+
exit(0);
  );
+
</pre>
}
+
 
</source>
+
== Syntax prüfen ==
 +
 
 +
;Vor dem Deployen linten:
 +
*openvas-nasl-lint check_port_4711.nasl
 +
 
 +
== Deployment ins Feed ==
 +
 
 +
;Skript ablegen (lesbar für den Scanner-User)
 +
*sudo install -d -o _gvm -g _gvm -m 0755 /var/lib/openvas/plugins/custom
 +
*sudo install -o _gvm -g _gvm -m 0644 check_port_4711.nasl /var/lib/openvas/plugins/custom/check_port_4711.nasl
 +
;NVTI-Cache neu aufbauen
 +
*sudo runuser -u _gvm -- openvas --update-vt-info
 +
;Scanner neu laden
 +
*sudo systemctl restart ospd-openvas
 +
 
 +
Pfad/Username ggf. an die Distro anpassen (<code>plugins_folder</code> in
 +
<code>/etc/openvas/openvas.conf</code> prüfen).
 +
 
 +
== Scan konfigurieren ==
 +
 
 +
# '''Configuration → Port Lists''' → sicherstellen, dass 4711 im Portbereich liegt
 +
#: (eigene Portliste mit <code>T:4711</code> oder ein Bereich, der 4711 enthält).
 +
# '''Scans → Tasks''' → Task mit Ziel-IP und dieser Portliste anlegen.
 +
# Scan starten, Report unter '''Scans → Reports''' prüfen.
 +
 
 +
Ohne 4711 in der Portliste wird der Port nie gescannt und <code>script_require_ports(4711)</code>
 +
plant die VT nicht ein – der häufigste „läuft nicht"-Grund.
 +
 
 +
== Verifikation ==
  
== Berechtigungen setzen ==
+
;Erst von Hand prüfen, ob der Port offen ist:
<source lang="bash">
+
*nmap -p 4711 <ziel-ip>
sudo chown _gvm:_gvm /var/lib/gvm/plugins/private/check_port_4711.nasl
+
;VT eingelesen? SecInfo → NVTs nach Name oder OID suchen.
sudo chmod 644 /var/lib/gvm/plugins/private/check_port_4711.nasl
 
</source>
 
  
== GVM aktualisieren ==
+
== Hinweis: Log-Level im Report ==
<source lang="bash">
 
sudo gvm-feed-update  # Metadaten aktualisieren
 
sudo gvmd --rebuild  # Datenbank neu aufbauen
 
</source>
 
  
== Skript testen ==
+
Der Treffer kommt über <code>log_message</code> und erscheint mit Severity '''Log (0.0)'''.
1. In der GVM-Weboberfläche:
+
Da die Standard-Reportansicht Log-Meldungen oft ausblendet, im Report-Filter die Stufe
* Scan-Ziel mit Port 4711 erstellen
+
'''Log''' einschalten (z.B. <code>levels=hmlg</code>), sonst wirkt es, als sei nichts gefunden.
* Scan-Konfiguration wählen (z.B. "Full and fast")
 
* Scan starten
 
  
2. Kommandozeilen-Check:
+
== Soll der Port laut Vorgabe verboten sein ==
<source lang="bash">
 
sudo gvm-cli socket --gmp-username admin --gmp-password 'dein-passwort' \
 
  --xml "<get_nvts/><details/></get_nvts>" | grep "Port 4711"
 
</source>
 
  
== Fehlerbehebung ==
+
Dann wird aus der Info ein Finding: <code>log_message</code> durch <code>security_message</code>
{| class="wikitable"
+
ersetzen und einen begründbaren <code>cvss_base</code> setzen (etwa 2.0–4.0 für einen
! Fehler !! Lösung
+
unerwarteten offenen Port):
|-
 
| "gvm-feed-update not found" || <code>sudo apt install gvm-tools</code>
 
|-
 
| Permission denied || <code>sudo chmod -R 755 /var/lib/gvm/plugins</code>
 
|-
 
| Skript erscheint nicht || Logs prüfen: <code>sudo journalctl -u gvmd --no-pager -n 50</code>
 
|}
 
  
{{Note|Für Produktivumgebungen:}}
+
<pre>
* OID registrieren unter [https://www.iana.org/assignments/enterprise-numbers IANA]
+
  security_message(port:port,
* CVSS-Score anpassen
+
    data:"TCP-Port 4711 ist offen, entgegen der Vorgabe.",
* Ausführlichere Beschreibung hinzufügen
+
    proto:"tcp");
</source>
+
</pre>
 +
</pre>

Aktuelle Version vom 24. Juni 2026, 04:57 Uhr

Open Port 4711 Detection (NASL-VT)

Diese VT prüft, ob TCP-Port 4711 auf einem Ziel offen ist, und meldet das im Report.

Das Skript

Skript anlegen
  • vi check_port_4711.nasl
# check_port_4711.nasl
# Erkennt, ob TCP-Port 4711 offen ist

if(description)
{
  # Eigene Arc - NICHT .1.0. (gehört Greenbone). Nur lokal eindeutig.
  script_oid("1.3.6.1.4.1.25623.1.7.4711001");
  script_version("2026-06-24T00:00:00+0000");
  script_tag(name:"creation_date", value:"2026-06-24 10:00:00 +0000 (Tue, 24 Jun 2026)");
  script_tag(name:"last_modification", value:"2026-06-24 10:00:00 +0000 (Tue, 24 Jun 2026)");
  script_name("Open Port 4711 Detection");
  script_category(ACT_GATHER_INFO);
  script_family("Service detection");
  script_copyright("Copyright (C) 2026 Thomas / Xinux");

  script_tag(name:"cvss_base", value:"0.0");
  script_tag(name:"qod_type", value:"remote_active");
  script_tag(name:"summary", value:"Prüft, ob TCP-Port 4711 offen ist.");
  script_tag(name:"solution", value:"Port 4711 schließen oder per Firewall
einschränken, falls nicht benötigt.");
  script_tag(name:"solution_type", value:"Mitigation");

  script_require_ports(4711);
  exit(0);
}

port = 4711;

if(!get_port_state(port))
  exit(0);

log_message(port:port, data:"TCP-Port 4711 ist offen.", proto:"tcp");
exit(0);

Syntax prüfen

Vor dem Deployen linten
  • openvas-nasl-lint check_port_4711.nasl

Deployment ins Feed

Skript ablegen (lesbar für den Scanner-User)
  • sudo install -d -o _gvm -g _gvm -m 0755 /var/lib/openvas/plugins/custom
  • sudo install -o _gvm -g _gvm -m 0644 check_port_4711.nasl /var/lib/openvas/plugins/custom/check_port_4711.nasl
NVTI-Cache neu aufbauen
  • sudo runuser -u _gvm -- openvas --update-vt-info
Scanner neu laden
  • sudo systemctl restart ospd-openvas

Pfad/Username ggf. an die Distro anpassen (plugins_folder in /etc/openvas/openvas.conf prüfen).

Scan konfigurieren

  1. Configuration → Port Lists → sicherstellen, dass 4711 im Portbereich liegt
    (eigene Portliste mit T:4711 oder ein Bereich, der 4711 enthält).
  2. Scans → Tasks → Task mit Ziel-IP und dieser Portliste anlegen.
  3. Scan starten, Report unter Scans → Reports prüfen.

Ohne 4711 in der Portliste wird der Port nie gescannt und script_require_ports(4711) plant die VT nicht ein – der häufigste „läuft nicht"-Grund.

Verifikation

Erst von Hand prüfen, ob der Port offen ist
  • nmap -p 4711 <ziel-ip>
VT eingelesen? SecInfo → NVTs nach Name oder OID suchen.

Hinweis: Log-Level im Report

Der Treffer kommt über log_message und erscheint mit Severity Log (0.0). Da die Standard-Reportansicht Log-Meldungen oft ausblendet, im Report-Filter die Stufe Log einschalten (z.B. levels=hmlg), sonst wirkt es, als sei nichts gefunden.

Soll der Port laut Vorgabe verboten sein

Dann wird aus der Info ein Finding: log_message durch security_message ersetzen und einen begründbaren cvss_base setzen (etwa 2.0–4.0 für einen unerwarteten offenen Port):

  security_message(port:port,
    data:"TCP-Port 4711 ist offen, entgegen der Vorgabe.",
    proto:"tcp");