nmap erkennt keinen eindeutig offenen UDP-Port

nmap erkennt keinen eindeutig offenen UDP-Port

Ich habe Port 4000 auf meinem lokalen Rechner wie folgt geöffnet:

nc -lvup 4000

und habe dann versucht, wie folgt eine Verbindung zum gleichen Port herzustellen:

nc -vu 127.0.0.1 4000

und konnte erfolgreich eine Verbindung herstellen und Text hin und her senden und empfangen. Wenn ich jedoch auf demselben Port lausche, wie im ersten Snippet gezeigt, und dann einen UDP-Scan versuche mit

nmap -sU 127.0.0.1 -p 4000

Das Ergebnis ist wie folgt:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.000061s latency).

PORT     STATE  SERVICE
4000/udp closed icq

Sollte da nicht „offen“ stehen, da der Port doch eindeutig offen ist, wie der erste Test festgestellt hat? Bitte erklären Sie mir, was ich meine, denn ich bin wirklich ratlos.

Antwort1

Nein. Du verstehst nicht, was passiert. Das ist UDP, es gibt keineAnschlüsse.

Wenn Sie second ausführen ncund etwas eingeben, sendet es einfach Pakete. Dannauf andere Weise(auf die andere Seite der Kommunikation schauen, z. B. auf einen anderen Computerbildschirm) bestätigen, dass die Kommunikation stattfindet. Wenn es niemanden gäbe, der „zuhört“ nc, würde der „sendende“ NC fröhlich dieselben Pakete senden, ohne einen Hinweis darauf zu haben, ob diese empfangen oder gelöscht wurden.

Das tut es auch nmap. Es sendet Pakete, sieht keine Antworten und entscheidet, dass seine Pakete einfach im schwarzen Loch verschwunden sind.

Das ist UDP, es ist so. Es hat keine intrinsische Empfangsbestätigung. Wenn die Anwendung es braucht, führt sie selbst Bestätigungen durch. Und da wir hier kein Protokoll auf Anwendungsebene haben, um es zu tun, sieht nmap keine Antwort, es wurde kein „offener Port“ erkannt.

Im Vergleich dazu verfügt TCP über integrierte Bestätigungen (ACKs), weshalb wir zuverlässig erkennen können, ob der Port geöffnet ist.

verwandte Informationen