Nmap: aralıktaki ücretsiz IP'leri bulun


14

Ağdaki ücretsiz IP'leri taramanın bir yolu var mı? Kullandığım nmap -sP 192.168.1.0/24ama bu aslında arttı ana gösterir.


10
ping'e cevap vermemek, mutlaka kullanılmayan anlamına gelmez.
Grant

1
Bir IPAM tarayıcı istiyorsunuz, nmap değil.
TheCleaner

2
@Hma Nmap'in ana bilgisayar keşif taraması (bazen "ping taraması" olarak da adlandırılır), yalnızca ICMP Yankı İstekleri değil, birçok farklı prob gönderir. Aynı veri bağlantısındaki adresler için yok sayılması imkansız olan ARP isteklerini kullanır.
bonsaiviking

1
Ayrıca, açık olmayan ana makinelerin de bir IP adresi olmadığını göstereceğini unutmayın.
Tero Kilkanen

Yanıtlar:


26

Nmap'ı bu şekilde kullanmak, bazı ön koşulların doğru olması şartıyla, sorduğunuz şeyi yapmanın oldukça doğru bir yoludur:

  1. TCP bağlantılarını değil ARP isteklerini göndermek için taramayı kök (veya Windows'ta Yönetici) olarak çalıştırmalısınız. Aksi takdirde, tarama sadece bir güvenlik duvarı olduğunda bir adresi "kapalı" olarak bildirebilir.
  2. Bunu yalnızca taradığınız adres aralığıyla aynı veri bağlantısındaki (katman 2) bir sistemden yapabilirsiniz. Aksi takdirde, Nmap'in güvenlik duvarı tarafından engellenebilecek ağ katmanı probları kullanması gerekir.

"Kullanılabilir" adresleri almak için, Nmap'ın "aşağı" olarak bildirdiği adreslerin listesini almanız gerekir. Bunu basit bir awk komutuyla yapabilirsiniz:

sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

Kullanılan Nmap seçeneklerinin özeti:

  • -vSeçeneği kullandığınızda , Nmap "yukarı" olanlara ek olarak bulduğu adresleri "aşağı" olarak yazdıracaktır.
  • Bunun yerine, hala aynı taramayı gerçekleştiren -sPdaha yeni yazımın yerini aldım -sn, ancak yanıltıcı "Ping taraması" yerine "bağlantı noktası taramasını atla" anlamına gelir (ana makine bulma aşaması mutlaka bir ICMP Yankı taraması veya Ping anlamına gelmez) ).
  • Bu -nseçenek, adlarla değil, yalnızca IP adresleriyle ilgilenmediğiniz için size biraz zaman alan ters DNS aramalarını atlar.
  • Bu -oGseçenek Nmap'a awk'ın işlenmesi için daha kolay olan grepable biçimini vermesini söyler . " -" Argümanı bu çıktıyı stdout'a göndermesini söyler.

Awk komutu daha sonra "Durum: Aşağı" yı arar ve IP adresini içeren ikinci alanı yazdırır.

Elbette, anahtarın çalışan yapılandırmalarına veya DHCP sunucusunun kiralamasına erişiminiz varsa, güvenlik alarmlarını ayarlayabilen bir tarama yapmadan bu yanıtı çok daha yetkili bir şekilde alabilirsiniz.


1
Tamamen gelecekteki kullanım için bu yer imi ve onun bile benim sorum :)
MartinC

1

N-map hakkında emin değilim, ancak her adrese 1 ping gönderen bir ping komut dosyası yazarsanız, "hedef erişilemez" ile geri gelen tüm ana bilgisayarların boş olduğunu ve geri gelen herhangi bir şeyin "istek zaman aşımı" olduğunu varsayabiliriz. dolu ama ping'e yanıt vermiyor. İki yanıt arasındaki fark, "hedefe ulaşılamıyor" un ARP talebine bir yanıt almamasıdır. "İstek zaman aşımı" bir şeyin ARP isteğine yanıt verdiğini, ancak ICMP paketini yanıtlamadığını gösterir.


Kök ayrıcalığı ile çalıştırıldığında, Nmap sadece ARP ister ve yanıt veren adresleri bildirir.
bonsaiviking

0

İşte aynı şey PowerShell'de ....

((nmap -v -sn -n 10.208.2.0/24 -oG - ) -match "Status\:\sDown") | foreach {($_).Split(" ")[1]}

0

İşte Anders Larsson'tan esinlenen bir tane daha

172.18.5'teki ip için. {129..254}; {ping -c 1 -W 1 $ ip; } &> / dev / null || echo $ ip & bitti | çeşit

Bu şu anlama gelir: "Aralıktaki tüm Ips'lere ping işlemi yapmayı deneyin." Ping "başarısız olursa bu IP'yi yazdırın"

Yaparsan

nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

Hızlı çalışır, ancak "Aşağı" olarak bildirilen bazı ana bilgisayarların aslında "Yukarı" olduğunu fark ettim

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.