Nmap Packet-Trace

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Grundsätzliches

Mit --packet-trace zeigt nmap jedes gesendete und empfangene Paket an. Damit wird sichtbar, warum ein Port einen bestimmten Zustand hat und welche Technik nmap für die Host-Discovery wählt. Gescannt wird von der kali-innen (10.0.10.101) gegen das Opfernetz 10.88.215.0/24. Die ARP-Beispiele laufen im lokalen Segment 10.0.10.0/24, da ARP nur im selben Netz funktioniert.

ARP im lokalen Netz

Im selben Segment sendet nmap zuerst einen ARP-Request, die ARP-Antwort bestätigt den Host

  • nmap 10.0.10.104 -sn -PE --packet-trace
SENT (0.0359s) ARP who-has 10.0.10.104 tell 10.0.10.101
RCVD (0.0365s) ARP reply 10.0.10.104 is-at 08:00:27:00:14:D9
Host is up (0.00062s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.66 seconds

Grund für den Host-Status anzeigen

--reason zeigt, warum nmap den Host als aktiv einstuft

  • nmap 10.0.10.104 -sn -PE --reason
SENT (0.0074s) ARP who-has 10.0.10.104 tell 10.0.10.101
RCVD (0.0309s) ARP reply 10.0.10.104 is-at 08:00:27:00:14:D9
Host is up, received arp-response (0.028s latency).

ICMP erzwingen, ARP deaktivieren

--disable-arp-ping zwingt nmap, ICMP statt ARP zu nutzen

  • nmap 10.0.10.104 -sn -PE --packet-trace --disable-arp-ping
SENT (0.0107s) ICMP [10.0.10.101 > 10.0.10.104 Echo request (type=8/code=0) id=13607 seq=0]
RCVD (0.0152s) ICMP [10.0.10.104 > 10.0.10.101 Echo reply (type=0/code=0) id=13607 seq=0]
Host is up (0.086s latency).

Geschlossener Port

Ein geschlossener Port antwortet auf das SYN mit RST+ACK. Im Opfernetz ist auf der 10.88.215.61 der Port 3000 geschlossen.

  • nmap 10.88.215.61 -p 3000 --packet-trace -Pn -n
SENT (0.0980s) TCP 10.0.10.101:44093 > 10.88.215.61:3000 S ttl=39 id=22759 iplen=44 seq=520204497 win=1024 <mss 1460>
RCVD (0.0991s) TCP 10.88.215.61:3000 > 10.0.10.101:44093 RA ttl=63 id=0 iplen=40 seq=0 win=0
PORT     STATE  SERVICE
3000/tcp closed ppp
Erläuterung
  • SENT zeigt das gesendete Paket mit gesetztem SYN-Flag (S)
  • RCVD zeigt die Antwort mit RA-Flags (RST+ACK)
  • Die RST-Antwort bedeutet: Port ist definitiv geschlossen

Offener Port mit Connect-Scan

Der Connect-Scan führt den vollständigen Drei-Wege-Handshake durch. Auf der 10.88.215.61 ist Port 22 offen.

  • nmap 10.88.215.61 -p 22 --packet-trace -Pn -n --reason -sT
CONN (0.0867s) TCP localhost > 10.88.215.61:22 => Operation now in progress
CONN (0.0873s) TCP localhost > 10.88.215.61:22 => Connected
PORT   STATE SERVICE REASON
22/tcp open  ssh     syn-ack
Erläuterung
  • Die CONN-Zeilen zeigen den vollständigen Verbindungsaufbau
  • Der Reason syn-ack bestätigt, dass Port 22 offen ist
  • Der SYN-Scan (-sS) ist unauffälliger, da er den Handshake nie abschließt und nach dem SYN-ACK ein RST sendet

Gefilterter Port

Eine Firewall verwirft das Paket stillschweigend, nmap erhält keine Antwort. Der Host 10.88.215.1 verwirft die meisten Ports still.

  • nmap 10.88.215.1 -p 80 --packet-trace -n -Pn
SENT (0.0381s) TCP 10.0.10.101:33892 > 10.88.215.1:80 S ttl=41 iplen=44
SENT (1.4411s) TCP 10.0.10.101:33892 > 10.88.215.1:80 S ttl=41 iplen=44
PORT   STATE    SERVICE
80/tcp filtered http
Erläuterung
  • Zwei SYN-Pakete wurden gesendet, keine Antwort kam zurück
  • Der Scan dauert deutlich länger als bei einem geschlossenen Port
  • Das lange Warten auf eine ausbleibende Antwort ist das Kennzeichen von filtered

Vergleich der Zustände

Die drei Zustände unterscheiden sich am Antwortverhalten
  • open - das Ziel antwortet mit SYN-ACK
  • closed - das Ziel antwortet mit RST
  • filtered - es kommt keine Antwort, der Scan wartet und wird langsam