Bisakah nmap
daftar semua host di jaringan lokal yang memiliki SSH dan HTTP terbuka? Untuk melakukannya, saya dapat menjalankan sesuatu seperti:
nmap 192.168.1.1-254 -p22,80 --open
Namun, ini mencantumkan host yang memiliki SEMUA port daftar terbuka, sedangkan saya ingin host yang memiliki SEMUA port terbuka. Selain itu, outputnya cukup bertele-tele:
# 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
Apa yang saya cari adalah output seperti:
192.168.1.16
karena host di atas adalah satu-satunya dengan SEMUA port terbuka.
Saya tentu saja dapat memposting proses, tetapi saya tidak ingin bergantung pada format keluaran nmap, saya lebih suka nmap melakukannya, jika ada cara.
Jawaban:
Tidak ada cara untuk melakukan itu dalam Nmap, tetapi komentar Anda tentang tidak ingin "bergantung pada format output dari nmap" memungkinkan saya menunjukkan bahwa Nmap memiliki dua format output yang stabil untuk penguraian yang dapat dibaca oleh mesin. Yang lebih tua adalah keluaran Grepable (
-oG
) , yang bekerja dengan baik untuk diproses dengan perl, awk, dan grep, tetapi kehilangan beberapa output yang lebih maju (seperti output skrip NSE, alasan port, traceroute, dll.). Format yang lebih lengkap adalah output XML (-oX
) , tetapi mungkin berlebihan untuk tujuan Anda.Anda dapat menyimpan output ini ke file dengan
-oG
,,-oX
atau-oA
(kedua format plus output teks "normal"), atau Anda dapat mengirim salah satu langsung ke stdout:nmap 192.168.1.1-254-p22,80 --open -oG - | awk '/22\/open.*80\/open/{print $2}'
sumber
-oG -
)Pertimbangkan juga
awk
satu kalimat ini:Ini akan mencetak semua host dengan semua port terbuka yang ditentukan seperti ini:
sumber
Coba perintah berikut:
Ini akan memindai port Anda dalam jangkauan Anda dan menyalurkan output dalam format greppable mencari port terbuka, lalu mencetak alamat IP yang sesuai dengan salah satu kriteria itu.
sumber