Почему бы ping был успешным, но nmap потерпел неудачу?


21

Почему Nmap выдает сообщение «Хост, кажется, не работает», когда простой пинг успешен?

me@computer:~$ ping 123.45.67.89
PING 123.45.67.89 (123.45.67.89) 56(84) bytes of data.
64 bytes from 123.45.67.89: icmp_req=1 ttl=45 time=91.1 ms
64 bytes from 123.45.67.89: icmp_req=2 ttl=45 time=102 ms
64 bytes from 123.45.67.89: icmp_req=3 ttl=45 time=100 ms
^C
--- 123.45.67.894 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 91.136/98.182/102.417/5.022 ms

me@computer:~$ nmap 123.45.67.89

Starting Nmap 5.21 ( http://nmap.org ) at 2014-04-02 14:23 EDT
Note: Host seems down. If it is really up, but blocking our ping probes, try -PN
Nmap done: 1 IP address (0 hosts up) scanned in 3.04 seconds

Отличаются ли «пинговые зонды» Nmap от командного пинга?


Могу ли я предложить вам обновить вашу установку Nmap? Текущая версия 6.40 . Версии 5.21 исполнилось 4 года, в ней отсутствуют 361 сценарий NSE и тысячи отпечатков сервисов и ОС.
бонсайвинг

Спасибо. 5.21 - это версия, которую я получил по умолчанию. Я думаю, я пойду скачать и собрать последнюю версию.
AShelly

Да, Ubuntu очень сильно отстал на Nmap. Вы можете проверить зависимости от .deb от Kali , который является текущим.
Бонсайвинг

Ответы:


29

Nmap отправляет много разных проб, чтобы определить, работает ли хост. В вашем конкретном случае, поскольку вы запускаете Nmap без привилегий root, он не может отправлять эхо-запросы ICMP, которыми пользуется pingутилита. В этом случае он пытается подключиться к порту 80 и порту 443, сообщая хосту о том, что он работает, если соединение открыто или отклонено. У вашей цели должен быть межсетевой экран, который сбрасывает весь трафик на эти порты.

Чтобы Nmap мог найти систему, попробуйте запустить ее с правами root. Команда sudo часто используется для этой цели, напримерsudo nmap 123.45.67.89

pingможет отправлять пакеты ICMP, потому что он установлен setuid для пользователя root, что означает, что его может запустить любой пользователь, но когда он это сделает, он будет работать от имени пользователя root. Программы Setuid должны быть очень осторожны, чтобы не дать обычным пользователям получить оболочку через это дополнительное разрешение. В частности, Nmap не может предотвратить повышение привилегий, поэтому его нельзя устанавливать setuid.


Я нахожусь на Windows и все еще получаю ту же ошибку при запуске его в cmd с правами администратора. Пинг всегда в порядке.
shashwat

2
Я root, но у меня есть эта проблема
vladkras

Без root / sudo, как ping может сделать ICMP ECHO, но не nmap?
MikeP

1
@MikeP /bin/ping- это setuid-root. Независимо от того, кто его запускает, он запускается с привилегиями root. Программы Setuid должны быть тщательно протестированы, чтобы гарантировать, что они не могут использоваться для запуска произвольных команд. Nmap не может быть безопасно установлен setuid-root, поэтому вы должны использовать другой механизм: пароль root или sudo.
Бонсайвинг

2

Да, они отличаются по умолчанию, ping - это ICMP, и nmap ping отправляет пакет syn на порт 80, если я правильно помню, попробуйте использовать флаги -PE, -PM, -PP, чтобы заставить его выполнять пинг ICMP


0

без привилегий вы можете сканировать порт с помощью netcat:

nc -z -w5 hostname 22; echo $?

ответ 1, если не удалось, в противном случае ответ:

Соединение с портом hostname 22 [tcp / ssh] успешно завершено!

0


Лучше всего цитировать и цитировать ответы, когда вы ссылаетесь на них, порядок ответов может меняться ежедневно. Этот ответ сам изменил порядок ответов на этот вопрос.
Ramhound

0

Простое исправление для меня (Windows 10). Я просто отключил свой беспроводной адаптер, который не использовался, так как я использовал основной сетевой адаптер. Я бы рекомендовал отключить все, кроме вашего основного адаптера.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.