Gibt es eine Möglichkeit zu sehen, was die TCP-Port-Kommunikation tatsächlich filtert?

10
nmap -p 7000-7020 10.1.1.1

Gibt alle gefilterten Ports aus

Starting Nmap 6.40 ( http://nmap.org ) at 2015-03-04 12:18 EET
Nmap scan report for 10.1.1.1
Host is up (0.00091s latency).
PORT     STATE    SERVICE
7000/tcp filtered afs3-fileserver
7001/tcp filtered afs3-callback
7002/tcp filtered afs3-prserver
7003/tcp filtered afs3-vlserver
7004/tcp filtered afs3-kaserver
7005/tcp filtered afs3-volser
7006/tcp filtered afs3-errors
7007/tcp filtered afs3-bos
7008/tcp filtered afs3-update
7009/tcp filtered afs3-rmtsys
7010/tcp filtered ups-onlinet
7011/tcp filtered unknown
7012/tcp filtered unknown
7013/tcp filtered unknown
7014/tcp filtered unknown
7015/tcp filtered unknown
7016/tcp filtered unknown
7017/tcp filtered unknown
7018/tcp filtered unknown
7019/tcp filtered unknown
7020/tcp filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 2.78 seconds

Gibt es eine Möglichkeit, um zu sehen, was genau diese Ports filtert?

Eduard Florinescu
quelle

Antworten:

11

Dies sagen die nmap-Dokumente über den filteredStatus

Die gefilterte Nmap kann nicht feststellen, ob der Port geöffnet ist, da die Paketfilterung verhindert, dass ihre Sonden den Port erreichen. Die Filterung kann von einem dedizierten Firewall-Gerät, Router-Regeln oder einer hostbasierten Firewall-Software erfolgen ...

Die einzige Möglichkeit, herauszufinden, was die Filterung bewirkt, besteht darin, zu wissen, welche „Maschinen“ sich zwischen Ihnen und dem Remote-Ziel befinden.

Dies kann mithilfe eines Routenverfolgungsdienstprogramms erreicht werden, das versucht, Hosts zwischen Ihnen und dem Ziel mithilfe spezieller TCP-Pakete zu ermitteln. In Ihrem Fall könnte der Befehl ungefähr so ​​aussehen:

traceroute 10.1.1.1

Sobald Sie die Maschinen zwischen Ihnen und dem Ziel kennen, untersuchen Sie die Konfiguration der einzelnen Maschinen, um herauszufinden, ob und wie sie gefiltert werden.

user9517
quelle
Auf diesen beiden Computern sind keine aktiven Software-Firewalls vorhanden. Die angezeigten nmap -p 7000-7020 localhostPorts werden angezeigt, und die dedizierte Firewall wird Berichten zufolge geöffnet.
Eduard Florinescu
4
Die Beweise, die Sie haben, deuten darauf hin, dass etwas gefiltert wird. Wir können nicht wissen, was das ist, da wir Ihre Konfiguration nicht kennen. Hostbasierte Firewalls lassen häufig den gesamten Datenverkehr auf der Loopback-Schnittstelle (localhost) zu, sodass dies möglicherweise ein irreführender Test ist.
user9517
Gibt es eine Chance, dass Sie Linux mit iptables "-j DROP" verwenden? Was die nmap-Dokumentation als gefiltert bezeichnet, ist tatsächlich ein verworfenes Paket in einem beliebigen Protokoll.
Risyasin
Ist diese Software tatsächlich an eine externe IP gebunden? Wenn stattdessen alles an 127.0.0.1 gebunden ist, kann dies dazu führen. Überprüfen Sie netstat
devicenull
12

Nmap bietet verschiedene Möglichkeiten, um weitere Informationen zu den Ursachen der Filterung zu erhalten:

  • Die --reasonOption zeigt die Art der Antwort an, die den "gefilterten" Portstatus verursacht hat. Dies kann "keine Antwort" oder "vom Administrator verboten" oder etwas anderes sein.
  • Die TTL von Antwortpaketen wird in der XML-Ausgabe als reason_ttlAttribut des stateElements für den Port angegeben. Wenn sich die TTL für einen gefilterten Port von der TTL für offene Ports unterscheidet (normalerweise größer als diese), ist der Unterschied zwischen den TTLs die Netzwerkentfernung zwischen dem Ziel und dem Filtergerät. Es gibt Ausnahmen, z. B. Ziele, die unterschiedliche anfängliche TTLs für ICMP- oder TCP-Pakete verwenden, oder ein Filtergerät, das TTL-Informationen fälscht oder überschreibt.
  • Die --tracerouteFunktion zeigt Informationen zu Hops entlang Ihrer Route an, von denen jeder Ihren Verkehr filtern kann. In einigen Fällen lautet der umgekehrte DNS-Name für einen der Hops sogar "firewall1.example.com".
  • Das firewalkNSE-Skript sendet Pakete mit anfänglichen TTLs, die bei verschiedenen Sprüngen entlang der Route eine Zeitüberschreitung aufweisen, um herauszufinden, wo die Pakete blockiert werden. Dies ist so etwas wie eine Kombination der beiden vorherigen Techniken und funktioniert normalerweise recht gut.

Die derzeit unveröffentlichte Entwicklungsversion von Nmap meldet auch TTL für Antwortpakete in der normalen Textausgabe mit den -v --reasonOptionen. Im Moment müssen Sie jedoch die XML-Ausgabe verwenden, um diese Informationen zu erhalten.

BEARBEITET ZUM HINZUFÜGEN : Nmap 6.49BETA1 war die erste Version, die TTL für Antwortpakete in Textausgabe mit -v --reasonoder zeigte -vv, und wurde im Juni 2015 veröffentlicht.

Bonsaiviking
quelle
1
Sehr nützliche Optionen +1
Eduard Florinescu
Ja, --script=firewalkdas habe ich versucht zu finden. Vielen Dank.
Ulidtko
5

Kurze Antwort - Nein, Sie können es auf keinen Fall sehen.

Längere Antwort:

Von: https://nmap.org/book/man-port-scanning-basics.html

"Die gefilterte Nmap kann nicht feststellen, ob der Port geöffnet ist, da die Paketfilterung verhindert, dass ihre Sonden den Port erreichen. Die Filterung kann von einem dedizierten Firewall-Gerät, Router-Regeln oder einer hostbasierten Firewall-Software stammen. Diese Ports frustrieren Angreifer, weil sie so wenig bieten Manchmal antworten sie mit ICMP-Fehlermeldungen wie Code 3 vom Typ 3 (Ziel nicht erreichbar: Kommunikation administrativ verboten), aber Filter, die Sonden einfach fallen lassen, ohne zu antworten, sind weitaus häufiger. Dies zwingt Nmap, es mehrmals zu versuchen, nur für den Fall, dass die Sonde es war Aufgrund von Netzwerküberlastung und nicht aufgrund von Filterung gesunken. Dies verlangsamt den Scan erheblich. "

Sie können versuchen, die Netzwerktopologie mit Tools wie Traceroute zu ermitteln. Normalerweise werden Ports auf dem Host selbst (dh IP-Tabellen), dem Zielnetzwerk-Edge-Router, dem Zielnetzwerk-Core-Router oder dem L3-Switch oben im Rack gefiltert.

Wenn Sie sich im selben Subnetz wie der Zielhost befinden, ist die Firewall fast sicher auf dem Zielcomputer.

Maciek Sawicki
quelle
2

Versuchen Sie, ein Ergebnis von tcptrace mit einem der gefilterten Ports mit einem Ergebnis von tcptrace mit einem offenen Port (oder einer Standard-Traceroute) zu vergleichen. Wenn die tcptraces identisch sind, bedeutet dies, dass sich auf dem Zielcomputer etwas befindet, das die Ports filtert.

Update: Ich meinte tcptraceroute, ich habe es als Alias.

Makdaam
quelle