핑은 성공하지만 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의 "핑 프로브"는 명령 줄 ping과 다른가요?


Nmap 설치를 업그레이드 할 것을 제안 할 수 있습니까? 현재 버전은 6.40 입니다. 버전 5.21은 4 살이며 361 개의 NSE 스크립트와 수천 개의 서비스 및 OS 지문이 없습니다.
bonsaiviking

감사. 5.21은 기본적으로 적절한 버전입니다. 최신 버전을 다운로드하여 작성하겠습니다.
AShelly

예, 우분투는 Nmap에서 비참하게 뒤쳐져 있습니다. 현재 Kali 의 .deb에 대한 종속성을 확인할 수 있습니다 .
bonsaiviking

답변:


29

Nmap은 호스트가 작동하는지 확인하기 위해 다양한 프로브 를 보냅니다 . 특정한 경우, 루트 권한없이 Nmap을 실행하기 때문에 ping유틸리티가 사용 하는 ICMP Echo 요청을 보낼 수 없습니다 . 이 경우 포트 80 및 포트 443에 연결을 시도하여 연결이 열려 있거나 거부 된 경우 호스트를 가동 된 것으로보고합니다. 대상에는 해당 포트에 대한 모든 트래픽을 삭제하는 방화벽이 있어야합니다.

Nmap이 시스템을 찾도록하려면 루트 권한으로 시스템을 실행하십시오. sudo는 명령이 자주 이러한 목적을 위해 사용되며, 예를 들어,sudo nmap 123.45.67.89

pingsetuid 가 root 로 설치되어 ICMP 패킷을 보낼 수 있습니다 . 즉, 모든 사용자가 실행할 수 있지만 루트 사용자로 실행됩니다. Setuid 프로그램은 일반 사용자가이 추가 권한을 통해 셸을 얻지 못하도록 매우주의해야합니다. 특히 Nmap은이 권한 상승을 막을 수 없으므로 setuid가되어서는 안됩니다.


Windows에서 관리자 권한으로 cmd에서 실행하는 동안 여전히 동일한 오류가 발생합니다. 핑은 항상 괜찮습니다.
shashwat

2
내가 뿌리를 해요하지만이 문제가
vladkras

루트 / 스도없이 핑은 어떻게 ICMP ECHO를 수행 할 수 있지만 nmap은 할 수 없습니까?
MikeP

1
@MikeP /bin/ping는 setuid-root입니다. 누가 그것을 실행하든 루트 권한으로 실행됩니다. Setuid 프로그램은 임의의 명령을 실행하는 데 사용할 수 없도록 철저히 테스트해야합니다. Nmap은 setuid-root를 안전하게 설치할 수 없으므로 root의 비밀번호 또는 sudo와 같은 다른 메커니즘을 사용해야합니다.
bonsaiviking

2

예, 기본적으로 다르며 ping은 ICMP이며 nmap ping은 올바르게 기억하면 포트 80으로 syn 패키지를 보냅니다. -PE, -PM, -PP 플래그를 사용하여 ICMP 핑을 수행하십시오.


0

권한없이 netcat으로 포트를 스캔 할 수 있습니다.

nc -z -w5 hostname 22; echo $?

실패하면 1, 그렇지 않으면 대답 :

호스트 이름 22 포트 [tcp / ssh]에 연결했습니다!

0


답변을 인용 할 때 답변을 인용하고 인용하는 것이 가장 좋습니다. 답변 순서는 매일 바뀔 수 있습니다. 이 답변 자체는 답변의 순서를이 질문으로 변경했습니다.
Ramhound

0

나를 위해 간단한 수정 (Windows 10). 방금 기본 LAN 어댑터를 사용하고 있었기 때문에 사용하지 않는 무선 어댑터를 비활성화했습니다. 기본 어댑터를 제외한 모든 어댑터를 비활성화하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.