Warum nmap -pund nmap -A-Scans zeigen unterschiedliche Ergebnisse?

Warum nmap -pund nmap -A-Scans zeigen unterschiedliche Ergebnisse?

Ich habe eine C#-Anwendung geschrieben, die auf Port 789 lauscht. Sie läuft auf einem Windows XP Professional-Computer.

netstat -an | find "789"

TCP    0.0.0.0:789            0.0.0.0:0              LISTENING

Wenn ich es nmap -A -vv ipauf einer anderen Linux-Maschine (aber im selben Subnetz) ausführe, werden nur andere auf dem Host geöffnete Ports gemeldet (z. B. MySQL, VNC usw.), nicht jedoch der von meiner Anwendung geöffnete Port.

Beim Ausführen wird jedoch nmap -p 789 ipFolgendes angezeigt:

PORT     STATE   SERVICE
789/tcp  open  unknown

Warum gibt es einen Unterschied zwischen den beiden Nmap-Scans? Kann ich etwas tun, um sicherzustellen, dass Nmap bei einem vollständigen Scan den offenen Port erkennt?

Antwort1

Standardmäßig sucht nmap nur nach „gemeinsamen“ Ports (die 1000 häufigsten Ports pro Protokoll, glaube ich). Da 789 kein allgemeiner Port ist, wird er nicht gefunden. Wenn Sie

nmap -A -vv -p- ip

Es sollte die Ports 1-65535 scannen.

Hier ist die Nmap-Dokumentation, die angibt, welche Ports standardmäßig gescannt werden: http://nmap.org/book/man-port-specification.html

Antwort2

Die einzige Möglichkeit, dies zu tun, besteht darin, die Dienstedatei Ihres Nmap zu ändern, was jedoch nicht empfohlen wird. Die -AOption führt erweiterte Optionen aus, darunter Diensterkennung, Betriebssystemerkennung, Tracerouting usw. – sie scannt nicht den gesamten Bereich. Wenn Sie alle 65.000 Ports scannen möchten, verwenden Sie die Option -p-. Ansonsten müssen Sie nur den Port mit angeben -p 789. Ihre beste Option ist wahrscheinlich, einen Alias ​​zu erstellen, der dies tut nmap -p 789, um Zeit zu sparen.

Wenn Sie die Servicedatei (standardmäßig /usr/local/share/nmap/nmap-services) wirklich ändern müssen, suchen Sie die Zeile unknown 789/tcp 0.000075mit dem Namen Ihres Programms und ersetzen Sie sie. Fügen Sie die Nummer am Ende bei ein 0.9, sodass es sich um den obersten Port handelt, den nmap einschließt. Ein Alias ​​wäre jedoch viel besser.

Antwort3

Ich bin mir nicht sicher. Es erkennt es als "offen", was Sie doch wollen, oder? AlsoIsthöre zu. Warum es mit -A nicht gefunden wird, weiß ich nicht genau.

Bearbeiten – dies stammt aus einer alten Dokumentation und trifft möglicherweise nicht auf Ihre Version zu. Führen Sie es aus man nmapund teilen Sie uns mit, welche Version Sie haben.

Aus den Dokumenten erkenne ich:

„Standardmäßig werden alle Ports zwischen 1 und 1024 sowie alle in der mit nmap gelieferten Servicedatei aufgeführten Ports gescannt.“

Daher sollte 789 gescannt werden, auch wenn Sie es nicht in Ihrer Servicedatei haben (da es als „unbekannt“ gekennzeichnet ist, bin ich sicher, dass dies nicht der Fall ist.)

Also, ich weiß nicht. Überprüfen Sie Ihre Man-Datei für Ihre Version von nmap. Vielleicht ist das Verhalten für die mit -A zu scannenden Ports anders als in dem Dokument, das ich gefunden habe?

Dies ist unwahrscheinlich, aber es könnte eine Untersuchung wert sein - Der Unterschied könnte in Ihrer Benutzer-ID auf dem Linux-Rechner liegen. Privilegierte und nicht privilegierte Benutzer von NMap haben unterschiedliche Standard-Scantypen. Benutzer mit Root können TCP-SYN-Scans durchführen, Benutzer ohne Root verwenden standardmäßig TCP connect().

Antwort4

Der Befehl nmap -Aist ein aggressiver Befehl, da er mehrere Skripte im Hintergrund ausführt. Das ist der Hauptgrund, warum er mehr Ergebnisse liefert. Er kombiniert Versionserkennung -sVmit Betriebssystemerkennung -O(Großbuchstabe O und nicht die Zahl Null) und anderen Erkennungsskripten. Nmap scannt standardmäßig, und wenn keine spezifische Portnummer angegeben ist, die ersten 1000 häufigsten Ports (diese sind in derNmap-DiensteDatei, die Sie bearbeiten können). Der aggressive Befehl kann mit den Ports gefüttert werden, die Sie scannen möchten, so dass Sie keine Ergebnisse für andere Ports als den erhalten, den Sie scannen möchten, TCP 789

nmap -p 789 -A TARGET_IP_ADDRESS_OR_IP_RANGE

Wenn Sie hingegen nur prüfen möchten, ob der Port, in Ihrem Fall 789, offen/geschlossen/gefiltert ist

nmap -p 789 TARGET_IP_ADDRESS_OR_IP_RANGE

Da -Aes mehrere Skripte ausführt und laut ist (im Hinblick auf den Netzwerkverkehr), wird es leicht von IDSs markiert und höchstwahrscheinlich von Firewalls oder IPSs blockiert. Dies kann einer der Gründe dafür sein, dass es nicht den richtigen Portstatus angibt.

verwandte Informationen