web-dev-qa-db-fra.com

Pourquoi ping réussirait-il mais nmap échouerait?

Pourquoi Nmap signale-t-il "L'hôte semble en panne" lorsqu'un ping simple réussit?

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

Les "sondes de ping" de Nmap sont-elles différentes du ping de ligne de commande?

21
AShelly

Nmap envoie de nombreuses sondes différentes pour déterminer si un hôte est actif. Dans votre cas spécifique, étant donné que vous exécutez Nmap sans privilèges root, il ne peut pas envoyer de demandes ICMP Echo, ce que l'utilitaire ping utilise. Dans ce cas, il essaie de se connecter au port 80 et au port 443, en signalant l'hôte comme étant actif si la connexion est ouverte ou rejetée. Votre cible doit avoir un pare-feu qui bloque tout le trafic sur ces ports.

Pour permettre à Nmap de trouver le système, essayez de l'exécuter avec des autorisations root. La commande Sudo est fréquemment utilisée à cette fin, par exemple. Sudo nmap 123.45.67.89

ping peut envoyer des paquets ICMP car il est installé par setuid , ce qui signifie que tout utilisateur peut l'exécuter, mais qu'il s'exécutera en tant qu'utilisateur root. . Les programmes Setuid doivent faire très attention de ne pas laisser les utilisateurs normaux gagner un Shell grâce à cette permission supplémentaire. Nmap en particulier ne peut pas empêcher cette élévation de privilèges, il ne doit donc jamais être configuré.

28
bonsaiviking

Oui, ils sont différents par défaut, ping est ICMP, et nmap ping envoie un package de synchronisation sur le port 80, si je me souviens bien, essayez d'utiliser les indicateurs -PE, -PM, -PP pour le faire effectuer un ping ICMP.

2
Kotzu

sans privilège, vous pouvez scanner le port avec netcat:

nc -z -w5 hostname 22; echo $?

réponse 1 si échoué, sinon réponse:

Connexion au nom d'hôte 22 port [tcp/ssh] a réussi!

0
douardo