Können nmap
alle Hosts im lokalen Netzwerk aufgelistet werden, auf denen sowohl SSH als auch HTTP geöffnet sind? Dazu kann ich Folgendes ausführen:
nmap 192.168.1.1-254 -p22,80 --open
Dies listet jedoch Hosts auf, bei denen JEDER der Listenports offen ist, wohingegen ich Hosts hätte, bei denen ALLE Ports offen sind. Außerdem ist die Ausgabe recht ausführlich:
# nmap 192.168.1.1-254 -p22,80 --open
Starting Nmap 6.47 ( http://nmap.org ) at 2015-12-31 10:14 EST
Nmap scan report for Wireless_Broadband_Router.home (192.168.1.1)
Host is up (0.0016s latency).
Not shown: 1 closed port
PORT STATE SERVICE
80/tcp open http
Nmap scan report for new-host-2.home (192.168.1.16)
Host is up (0.013s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap done: 254 IP addresses (7 hosts up) scanned in 3.78 seconds
Was ich suche, wird einfach wie folgt ausgegeben:
192.168.1.16
Da der oben genannte Host der einzige mit ALLEN offenen Ports ist.
Ich kann die Ausgabe sicherlich nachbearbeiten, aber ich möchte mich nicht auf das Ausgabeformat von nmap verlassen, sondern nmap sollte es tun, wenn es einen Weg gibt.
Antworten:
Es gibt keine Möglichkeit, dies in Nmap zu tun, aber Ihr Kommentar, dass Sie sich nicht auf das Ausgabeformat von nmap verlassen möchten, lässt mich darauf hinweisen, dass Nmap zwei stabile Ausgabeformate für maschinenlesbares Parsen hat. Das ältere ist Grepable output (
-oG
) , das für die Verarbeitung mit Perl, awk und grep gut geeignet ist , aber einige der fortgeschritteneren Ausgaben (wie NSE-Skriptausgabe, Portgründe, Traceroute usw.) fehlen. Das vollständigere Format ist XML output (-oX
) , es kann jedoch für Ihre Zwecke zu viel sein.Sie können diese Ausgaben entweder in Dateien mit
-oG
,-oX
oder-oA
(beide Formate plus "normale" Textausgabe) speichern oder direkt an stdout senden:nmap 192.168.1.1-254-p22,80 --open -oG - | awk '/22\/open.*80\/open/{print $2}'
quelle
-oG -
)Betrachten Sie auch diesen
awk
Einzeiler:Es werden alle Hosts mit allen angegebenen offenen Ports wie folgt gedruckt:
quelle
Versuchen Sie den folgenden Befehl:
Dadurch wird nach Ihren Ports in Ihrem Bereich gesucht und die Ausgabe in einem übersichtlichen Format auf offene Ports umgeleitet. Anschließend werden die IP-Adressen gedruckt, die einem dieser Kriterien entsprechen.
quelle