Mengapa ping berhasil tetapi nmap gagal?

21

Mengapa Nmap melaporkan "Host sepertinya down" ketika ping sederhana berhasil?

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

Apakah "ping ping" Nmap berbeda dari ping baris perintah?

ASHelly
sumber
Bisakah saya menyarankan Anda meningkatkan instalasi Nmap Anda? Versi saat ini adalah 6.40 . Versi 5.21 berumur 4 tahun dan hilang 361 skrip NSE dan ribuan sidik jari layanan dan OS.
bonsaiviking
Terima kasih. 5.21 adalah versi yang saya gunakan secara default. Saya kira saya akan mengunduh dan membuat yang terbaru.
AShelly
Ya, Ubuntu sangat tertinggal di Nmap. Anda dapat memeriksa dependensi pada .deb dari Kali , yang saat ini.
bonsaiviking

Jawaban:

29

Nmap mengirimkan banyak probe berbeda untuk menentukan apakah sebuah host sudah habis. Dalam kasus spesifik Anda, karena Anda menjalankan Nmap tanpa hak akses root, itu tidak dapat mengirim permintaan ICMP Echo, yang pingdigunakan utilitas. Dalam hal ini, ia mencoba untuk menyambung ke port 80 dan port 443, melaporkan host sebagai up jika koneksi dibuka atau ditolak. Target Anda harus memiliki firewall yang menjatuhkan semua lalu lintas ke port tersebut.

Untuk mengizinkan Nmap menemukan sistem, coba jalankan dengan izin root. The sudo perintah yang sering digunakan untuk tujuan ini, misalnyasudo nmap 123.45.67.89

pingdapat mengirim paket ICMP karena diinstal setuid ke root, yang berarti bahwa setiap pengguna dapat menjalankannya, tetapi itu akan berjalan sebagai pengguna root ketika mereka melakukannya. Program Setuid harus ekstra hati-hati untuk tidak membiarkan pengguna biasa memperoleh shell melalui izin tambahan ini. Nmap pada khususnya tidak dapat mencegah eskalasi hak istimewa ini, sehingga tidak boleh dibuat setuid.

bonsaiviking
sumber
Saya di Windows dan masih mendapatkan kesalahan yang sama saat menjalankannya di cmd dengan hak admin. Ping selalu baik-baik saja.
shashwat
2
Saya root tetapi memiliki masalah ini
vladkras
Tanpa root / sudo, bagaimana bisa ping melakukan ICMP ECHO tetapi tidak nmap?
MikeP
1
@MikeP /bin/pingadalah setuid-root. Tidak peduli siapa yang menjalankannya, itu dijalankan dengan privilege root. Program Setuid harus diuji secara menyeluruh untuk memastikan mereka tidak dapat digunakan untuk menjalankan perintah sewenang-wenang. Nmap tidak mampu menginstal setuid-root dengan aman, jadi Anda harus menggunakan beberapa mekanisme lain: kata sandi atau sudo root.
bonsaiviking
2

Ya mereka berbeda secara default, ping adalah ICMP, dan nmap ping mengirimkan paket syn ke port 80 jika saya ingat dengan benar, coba gunakan flag -PE, -PM, -PP untuk membuatnya melakukan ping ICMP


sumber
0

tanpa hak istimewa, Anda dapat memindai port dengan netcat:

nc -z -w5 hostname 22; echo $?

jawab 1 jika gagal, jika tidak jawab:

Koneksi ke hostname 22 port [tcp / ssh] berhasil!

0

douardo
sumber
Yang terbaik untuk mengutip dan mengutip jawaban ketika Anda merujuknya, urutan jawaban, dapat berubah setiap hari. Jawaban ini sendiri telah mengubah urutan jawaban untuk pertanyaan ini.
Ramhound
0

Perbaikan sederhana untuk saya (Windows 10). Saya baru saja menonaktifkan adaptor nirkabel saya, yang tidak digunakan karena saya menggunakan adaptor LAN primer. Saya akan merekomendasikan untuk menonaktifkan semua kecuali adaptor utama Anda.

NoSpamMan
sumber