Nmap: знайти безкоштовні IP-адреси з діапазону


14

Чи є спосіб сканувати безкоштовні IP-адреси в мережі? Я використовую, nmap -sP 192.168.1.0/24але це фактично показує хостів, які працюють.


10
не відповідає на ping, не обов'язково означає, що він не використовується.
Грант

1
Ви хочете сканер IPAM, а не nmap.
TheCleaner

2
@Grant Nmap відкриття сканування хоста (іноді його називають "сканування пінг") надсилає безліч різних зондів, а не лише ICMP Echo Requests. Для адрес на одному і тому ж посиланні даних він використовує запити ARP, які в основному неможливо ігнорувати.
бонсайвінг

1
Також слід пам’ятати, що хости, які не включаються, також виявляться як не мають IP-адреси.
Tero Kilkanen

Відповіді:


26

Використовуючи такий Nmap, це досить точний спосіб робити те, що ви просили, за умови, що деякі передумови справджуються:

  1. Щоб надсилати ARP-запити, а не TCP-з'єднання, потрібно запустити сканування як root (або Адміністратор в Windows). В іншому випадку сканування може повідомити адресу як "вниз", коли вона буде просто зафіксована.
  2. Це можна зробити лише з системи на тому ж посиланні даних (рівень 2), що і діапазон адрес, який ви скануєте. В іншому випадку Nmap потрібно буде використовувати зонди мережевого рівня, які можуть бути заблоковані брандмауером.

Щоб отримати "доступні" адреси, вам потрібно отримати список адрес, про які Nmap повідомляє як "вниз". Це можна зробити за допомогою простої команди awk:

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

Короткий зміст використаних параметрів Nmap:

  • Використовуючи цю -vопцію, Nmap друкує адреси, які вона знаходить, як "вниз", крім тих, що "вгору".
  • Замість цього -sPя замінив новіший правопис -sn, який все ще виконує те саме сканування, але означає "пропустити сканування порту" замість оманливого "сканування Ping" (оскільки фаза виявлення хосту не обов'язково означає сканування Echo ICMP або Ping ).
  • -nОпція пропускає зворотний пошук DNS, який купує вам трохи часу, так як ви не зацікавлені в іменах , але тільки IP - адреси.
  • Цей -oGпараметр повідомляє Nmap виводити формат, який можна розпізнати , що легше обробляє awk. Аргумент " -" повідомляє йому надіслати цей вихід у stdout.

Потім команда awk шукає "Статус: вниз" і друкує друге поле, що містить IP-адресу.

Звичайно, якщо у вас є доступ до запущених конфігурацій комутатора або оренди сервера DHCP, ви можете отримати цю відповідь набагато авторитетніше, не роблячи сканування, яке може зняти тривогу безпеки.


1
Повністю закладка цього для подальшого використання, і це навіть не моє питання :)
MartinC

1

Не впевнений у n-карті, але можна обгрунтовано припустити, що якщо ви пишете сценарій ping, який надсилає 1 ping на кожну адресу, будь-який хост, який повертається з "недоступним пунктом призначення", не зайнятий, і все, що повертається, "запит вимкнено" зайнято, але не відповідає ping. Різниця між двома відповідями полягає в тому, що "недоступний пункт призначення" не отримав відповіді на свій запит ARP. "Час вимкнення запиту" означає, що щось відповіло на запит ARP, але не пакет ICMP.


Запускаючи root права, Nmap просто виконує запит ARP та повідомляє адреси, які відповідають.
бонсайвінг

0

Ось те саме в PowerShell ....

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

0

Ось ще одна, натхненна Андерсом Ларссоном

для ip у 172.18.5. {129..254}; do {ping -c 1 -W 1 $ ip; } &> / dev / null || echo $ ip & done | сортувати

Що це означає: "Спробуйте пінг усіх Ips в діапазоні. Якщо" ping "не вдалося надрукувати цей IP"

Якщо ти зробиш

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

Працює швидко, але я помітив, що деякі господарі повідомили, що "Вниз" насправді "Вгору"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.