Цей підручник буде зосереджений на ключовому використанні Nmap, тобто.e., виявлення хоста та методологія виявлення хоста. Приємно зауважити, що це не керівництво для початківців щодо роботи з Nmap або методологією збору інформації в тестуванні на проникнення.
Що таке Host Discovery
Процес виявлення хосту Nmap стосується переліку мережевих хостів для збору інформації про них для побудови плану атаки під час тестування пера.
Під час виявлення хосту Nmap використовує такі елементи, як Ping та вбудований скрипт, для пошуку операційних систем, портів та запуску служб із використанням протоколів TCP та UDP. Якщо вказано, ви можете ввімкнути механізм сценаріїв Nmap, який використовує різні сценарії для пошуку вразливостей проти хоста.
Процес виявлення хоста, який використовує Nmap, використовує необроблені пакети ICMP. Ці пакети можуть бути відключені або відфільтровані брандмауерами (рідко) та дуже обережними адміністраторами sys. Однак, як ми побачимо в цьому посібнику, Nmap надає нам стелс-сканування.
Давайте почнемо.
Відкриття мережі
Не витрачаючи занадто багато часу, давайте розглянемо різні методи для виявлення хоста та подолання різних обмежень, викликаних мережевими пристроями безпеки, такими як брандмауери.
1: класичний пінг ICMP
Ви можете виконати виявлення хоста за допомогою простого Запит відлуння ICMP де ведучий відповідає символом Відповідь ICMP echo.
Щоб надіслати запит ехо ICMP за допомогою Nmap, введіть команду:
$ nmap -PE -sn 192.168.0.16Результат буде виглядати так, як показано нижче:
Запуск Nmap 7.91 (https: // nmap.орг)сканувати звіт на 192.168.0.16
Хост встановлений (0.Затримка 11 с).
MAC-адреса: EC: 08: 6B: 18: 11: D4 (Tp-link Technologies)
Nmap виконано: 1 IP-адреса (1 хост вгору) сканується за 0.62 секунди
У наведеній вище команді ми просимо Nmap надіслати запит ping echo (-PE) до цілі. Якщо він отримає відповідь ICMP, тоді хост працює.
Нижче наведено знімок екрана Wireshark команди nmap -sn -PE:
Розгляньте поданий нижче ресурс, щоб дізнатись більше про протокол ICMP.
https: // linkfy.до / ICMP
ПРИМІТКА: Запити відлуння ICMP ненадійні і не роблять висновку на основі відповіді. Наприклад, розглянемо той самий запит до Microsoft.ком
$ nmap -sn -PE Microsoft.комРезультат буде таким, як показано нижче:
Запуск Nmap 7.91 Примітка: Хост здається недоступним.Якщо це дійсно так, але блокуючи наші пінг-зонди, спробуйте -Pn
Nmap зроблено:
1 IP-адреса (0 хостів вгору) відсканована за 2.51 секунда
Ось знімок екрану для аналізу Wireshark:
2: Пінг TCP SYN
Іншим методом виявлення хоста є використання сканування пінгу Nmap TCP SYN. Якщо ви знайомі з трьома рукостисканнями TCP SYN / ACK, Nmap запозичує цю технологію та надсилає запит до різних портів, щоб визначити, чи працює хост, чи використовує дозвольні фільтри.
Якщо ми скажемо Nmap використовувати ping SYN, він відправляє пакет на цільовий порт, а якщо хост працює, він відповідає пакетом ACK. Якщо хост не працює, він відповідає пакетом RST.
Використовуйте команду, як показано нижче, щоб запустити запит пінгу SYN.
sudo nmap -sn -PS scanme.nmap.оргУ відповіді від цієї команди повинно бути вказано, чи є хост вгору чи вниз. Далі подано фільтр Wireshark запиту.
tcp.прапори.syn && tcp.прапори.ack
ПРИМІТКА: Ми використовуємо -PS, щоб вказати, що ми хочемо використовувати запит пінгу TCP SYN, який може бути більш ефективним методом, ніж необроблені пакети ICMP. Далі подано запит корпорації Майкрософт на Nmap.com за допомогою TCP SYN.
$ nmap -sn -PS Microsoft.комРезультат показаний нижче:
Запуск Nmap 7.91 (https: // nmap.орг)Звіт про сканування Nmap для Microsoft.com (104.215.148.63)
Хост встановлений (0.Затримка 29 с).
Інші адреси для Microsoft.com (не відскановано): 40.112.72.205 13.77.161.179 40.113.200.201 40.76.4.15
Nmap зроблено:
1 IP-адреса (на 1 хост вгору) сканується за 1.08 секунд
3: TCP ACK Ping
Метод пінгу TCP ACK є дочірнім елементом запиту пінгу SYN. Він працює аналогічно, але замість цього використовує пакет ACK. У цьому методі NMAP намагається щось розумне.
Починається з надсилання порожнього пакета TCP ACK хосту. Якщо хост офлайн, пакет не повинен отримувати жодної відповіді. У режимі онлайн хост відповість пакетом RST, який вказує, що хост працює.
Якщо ви не знайомі з RST (скидання пакета), це пакет, надісланий після отримання несподіваного пакета TCP. Оскільки пакет ACK, який надсилає Nmap, не є відповіддю на SYN, хост повинен повернути пакет RST.
Щоб ініціалізувати пінг Nmap ACK, використовуйте команду як:
$ nmap -sn -PA 192.168.0.16Наведений результат нижче:
Запуск Nmap 7.91 (https: // nmap.орг)Звіт про сканування Nmap за 192.168.0.16
Хост встановлений (0.Затримка 15 с).
MAC-адреса: EC: 08: 6B: 18: 11: D4 (Tp-link Technologies)
Nmap зроблено:
1 IP-адреса (1 хост вгору), відсканована за 0.49 секунд
4: UDP-пінг
Давайте поговоримо про інший варіант виявлення хостів у Nmap, тобто.e., UDP-пінг.
UDP-пінг працює, надсилаючи UDP-пакети до вказаних портів цільового хоста. Якщо хост в мережі, пакет UDP може зіткнутися із закритим портом і відповісти повідомленням, недоступним для порту ICMP. Якщо хост не працює, підказка буде про різні повідомлення про помилки ICMP, такі як перевищення TTL або відсутність відповіді.
Порт за замовчуванням для UDP-пінгу - 40, 125. UDP-пінг - це хороша техніка, яка використовується при виявленні хостів для хостів за брандмауером та фільтрами. Це тому, що більшість брандмауерів шукають і блокують TCP, але дозволяють трафік протоколу UDP.
Щоб запустити виявлення хосту Nmap за допомогою UDP-пінгу, використовуйте команду нижче:
sudo nmap -sn -PU scanme.nmap.оргРезультат роботи вищезазначеної команди можна перевірити за допомогою Wireshark, як показано на скріншоті нижче. Використовується фільтр Wireshark - udp.порт == 40125
Як ви можете бачити на наведеному вище знімку екрана, Nmap надсилає UDP-пінг на IP 45.33.32.156 (scanme.nmap.орг). Сервер відповідає ICMP недосяжно, що означає, що хост працює.
5: ARP Ping
Ми не можемо забути ARP-метод пінгу, який дуже добре працює для виявлення хоста в локальних мережах. Метод пінгу ARP працює, надсилаючи серію зондів ARP до заданого діапазону IP-адрес і виявляючи живі хости. ARP-пінг швидкий і дуже надійний.
Щоб запустити ARP-пінг за допомогою Nmap, скористайтеся командою:
sudo nmap -sn -PR 192.168.0.1/24Якщо ви вивчите команду за допомогою Wireshark і відфільтруєте ARP з джерела 192.168.0.30, ви отримаєте знімок екрана запитів зонду ARP Broadcast, як показано нижче. Використовується фільтр Wireshark: arp.src.proto_ipv4 == 192.168.0.30
TCP SYN Стелс
Ви виявите, що сканування SYN - хороший варіант для виявлення хоста, оскільки він швидкий і може сканувати ряд портів за лічені секунди, за умови, що системи безпеки, такі як брандмауери, не заважають. SYN також дуже потужний та невидимий, оскільки працює за неповних запитів TCP.
Я не буду вдаватися в подробиці того, як працює TCP SYN / ACK, але ви можете дізнатись більше про це з різних ресурсів, наведених нижче:
- https: // linkfy.до / tcpWiki
- https: // linkfy.to / 3-way-handshake-пояснення
- https: // linkfy.до / 3-ходова анантомія
Для запуску стелс-сканування Nmap TCP SYN використовуйте команду:
sudo nmap -sS 192.168.0.1/24Я забезпечив Wireshark захоплення команди Nmap -sS та знахідки Nmap сканування, вивчіть їх і подивіться, як це працює. Шукайте неповні запити TCP із пакетом RST.
- https: // linkfy.до / wireshark-capture
- https: // linkfy.до / nmap-output-txt
Висновок
Щоб підбити підсумок, ми зосередилися на обговоренні того, як використовувати функцію виявлення хосту Nmap та отримати інформацію про вказаний хост. Ми також обговорили, який метод використовувати, коли вам потрібно виконати виявлення хостів для хостів, що стоять за брандмауерами, блокуючи запити пінгу ICMP та багато іншого.
Досліджуйте Nmap, щоб отримати глибші знання.