Можно ли nmap
перечислить все хосты в локальной сети, которые имеют открытые SSH и HTTP? Для этого я могу запустить что-то вроде:
nmap 192.168.1.1-254 -p22,80 --open
Тем не менее, в этом списке перечислены хосты, у которых открыт ЛЮБОЙ из списка портов, тогда как я хотел бы, чтобы хосты имели ВСЕ из открытых портов. Кроме того, вывод довольно подробный:
# 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
То, что я ищу, это просто вывод:
192.168.1.16
поскольку вышеупомянутый хост - единственный, с ВСЕМИ открытыми портами.
Я, конечно, могу постобработать вывод, но я не хочу полагаться на формат вывода nmap, я бы предпочел, чтобы nmap сделал это, если есть способ.
Ответы:
В Nmap нет способа сделать это, но ваш комментарий о нежелании «полагаться на выходной формат nmap» позволяет мне указать, что Nmap имеет два стабильных выходных формата для машиночитаемого анализа. Более старым является Grepable output (
-oG
) , который хорошо работает для обработки с помощью perl, awk и grep, но в нем отсутствуют некоторые более продвинутые выходные данные (например, вывод сценария NSE, причины порта, traceroute и т. Д.). Более полным форматом является XML output (-oX
) , но он может быть излишним для ваших целей.Вы можете либо сохранить эти выходы к файлам с
-oG
,-oX
или-oA
( в обоих форматах плюс «нормальный» вывод текста), или вы можете отправить любой из них прямо на стандартный вывод:nmap 192.168.1.1-254-p22,80 --open -oG - | awk '/22\/open.*80\/open/{print $2}'
источник
-oG -
)Рассмотрим также
awk
одну строку:Он выведет вам все хосты со всеми указанными открытыми портами, например так:
источник
Попробуйте следующую команду:
Это будет сканировать ваши порты в вашем диапазоне и направит вывод в формате greppable в поисках открытых портов, а затем напечатает IP-адреса, которые соответствуют любому из этих критериев.
источник