Nmap Packet-Trace
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