Nmap for pentester
Nmap став одним із найпопулярніших інструментів мережевого сканування, залишивши позаду інші сканери. Часто хости в деяких організаціях захищені за допомогою брандмауерів або систем запобігання вторгненням, що призводить до збою сканування через існуючий набір правил, які використовуються для блокування мережного трафіку. Nmap пентестер може легко використовувати альтернативні методи виявлення хоста, щоб цього не сталося. Він складається з певних функцій, які роблять мережевий трафік трохи менш підозрілим. Тому давайте подивимося різні методи виявлення хоста.
TOOLS FOR FIND VULNERABILITY
Nmap став одним із найпопулярніших інструментів мережевого сканування, залишивши позаду інші сканери. Часто хости в деяких організаціях захищені за допомогою брандмауерів або систем запобігання вторгненням, що призводить до збою сканування через існуючий набір правил, які використовуються для блокування мережного трафіку. Nmap пентестер може легко використовувати альтернативні методи виявлення хоста, щоб цього не сталося. Він складається з певних функцій, які роблять мережевий трафік трохи менш підозрілим. Тому давайте подивимося різні методи виявлення хоста.
Ping Sweep
Почнемо зі сканування всієї мережі за допомогою Ping (-SP).
nmap -sP 192.168.31.1-200
Коли ви уважно спостерігаєте за пакетами Wireshark, ви бачите, що тут при скануванні мережі надсилаються тільки пакети ARP
Примітка: Робота –sP та –sn однакова.
Давайте спробуємо те саме, використовуючи параметр без сканування портів (-sn). У цьому варіанті ми також використовуємо параметр –packet-trace, який дозволить вам побачити докладну інформацію про передачу пакетів без Wireshark. Тут можна спостерігати за отриманням пакетів ARP.
nmap -sn 192.168.31.1-200 --packet-trace
Тепер, коли ми побачили, що в мережі видно ARP-пакети, ми скористаємося опцією -disable-arp-ping, де ви побачите, що відправляються 4 пакети.
Disable-arp-ping
Щоб вимкнути виявлення ARP, Nmap надає опцію.
nmap -sn 192.168.31.89 --disable-arp-ping
Виявлення хоста вважається найважливішим кроком у зборі інформації, який забезпечує точні результати для активних портів та IP-адрес у мережі.
TCP Flags
По-перше, познайомимося з основами комунікаційних прапорів в TCP. Заголовок TCP в основному складається з шести прапорів, які керують з'єднанням між системами та надають їм інструкції. Кожен прапор має розмір 1 біт, отже розмір прапорів TCP становить 6 біт. Тепер давайте коротко розберемося з кожним прапором.
NS (ECN-nonce) - Стійкий механізм сигналізації насичення за допомогою ECN-nonce (RFC 3540)
CWR (Congestion Window Reduced) — Поле «Вікно перевантаження зменшено» — прапор встановлений відправником, щоб вказати, що отримано пакет із встановленим прапором
ECE (RFC 3168) ECE (ECN-Echo) - Поле "Эхо ECN" - вказує, що даний вузол здатний на ECN (явне повідомлення перевантаження) і для вказівки відправнику про навантаження в мережі (RFC 3168)
URG - поле «Покажчик важливості» задіяне (англ. Urgent pointer field is significant). Коли вузол відправляє сегмент з прапором URG, то вузол-одержувач приймає його на окремому каналі.
ACK — поле «Номер підтвердження» задіяне (англ. Acknowledgement field is significant)
PSH - (англ. Push function) інструктує одержувача проштовхнути дані, що накопичилися в приймальному буфері, додаток користувача. API для встановлення PSH прапора немає. Зазвичай він встановлюється ядром, коли очищає буфер. Справа в тому, що коли вузол надсилає інформацію, TCP зберігає її в буфері і не передає її відразу іншому вузлу, очікуючи, чи захоче відправник передати ще. Така сама схема працює і у вузла-отримувача. Коли він отримує інформацію, TCP зберігає її в буфері, щоб не турбувати програму через кожен байт отриманої інформації. Якщо вузол відправляє сегмент з прапором PSH, це означає, що він відправив все, що було потрібно.
RST - обірвати з'єднання, скинути буфер (очищення буфера) (Reset the connection)
SYN - синхронізація номерів послідовності (англ. Synchronize sequence numbers)
FIN (англ. final, біт) — прапор, встановлений, вказує на завершення з'єднання (англ. FIN bit used for connection termination).
TCP SYN Ping Scan
Це метод виявлення хоста, який допомагає виявити, чи відкриті порти, а також переконатися, що він відповідає правилам брандмауера. Отже, пентестер може надіслати цільовий порожній SYN-прапор, щоб перевірити, де він живий. У цьому типі сканування можна визначити кілька портів. Команда -sP в Nmap дозволяє виявляти лише онлайн-хости. У той час, як SYN Ping (-PS) відправляє TCP SYN-пакет на порти, і якщо він закритий, хост відповідає пакетом RST. І якщо запитані порти відкриті, буде відповідь TCP SYN/ACK і буде пакет скидання, який буде надіслано для скидання з'єднання.
nmap -sn -PS 192.168.31.89 --disable-arp-ping
Пакети, захоплені за допомогою Wireshark, можуть бути переадресовані
Перевага сканування TCP SYN Ping полягає в тому, що пентестер може отримати активний/неактивний статус хоста, навіть не створюючи з'єднання, і, отже, він навіть не створює журнал у системі чи мережі.
TCP ACK Ping Scan
Це метод виявлення хоста, який схожий на сканування TCP SYN Ping, але дещо відрізняється. Це сканування також використовує порт 80. Пентестер відправляє порожній TCP-пакет до мети і оскільки між ними немає зв'язку, він отримає пакет підтвердження, а потім скине і завершить запит.
Ця команда використовується для визначення відповіді цілі, а також перевірки того, чи заблоковані SYN-пакети або луна-запити ICMP в останніх налаштуваннях міжмережевих екранів.
nmap -sn -PA 192.168.31.89 --disable-arp-ping
Тут можна побачити пакети, захоплені Wireshark.
Некоторые брандмауэры настроены на блокировку пакетов ping SYN, поэтому в этом случае это сканирование будет эффективным для простого обхода брандмауэра.
ICMP Echo Ping Scan
Сканирование ICMP Ping можно использовать для сбора информации о целевых системах, что отличает его от сканирования портов. Пентестер может отправить целевой объект ICMP ECHO-запрос и получить в ответ эхо-ответ ICMP.
ICMP тепер неефективний для віддалених пакетів ICMP, заблокованих адміністраторами. Його ще можна використовувати для моніторингу локальних мереж.
nmap -sn -PE 192.168.31.89 --disable-arp-ping
Пакети, захоплені Wireshark, можна спостерігати.
UDP Ping Scan
Сканування UDP Ping використовує вкрай незвичайний номер порту за замовчуванням 40125 для надсилання пакетів на ціль. Це скидається на сканування TCP Ping. Пентестер відправить UDP-пакети на ціль, і якщо у відповідь буде відповідь, це означає, що хост активний або інакше він вимкнений
Перевага UDP полягає в тому, що він може виявляти системи, в яких є брандмауери зі строгими правилами TCP, і не ускладнювати правила UDP.
nmap -sn -PU 192.168.31.89 --disable-arp-ping
Ви можете спостерігати за пакетами за допомогою Wireshark.
І ви побачите, що пакети ARP не видно.
Примітка. Сканування локальної мережі за допомогою Nmap, де Nmap надсилає пакет ARP при кожному скануванні. Якщо потрібно сканувати зовнішню мережу; Nmap надсилає наступні пакети запитів під час використання –disable-arp-ping:
ICMP echo request (TYPE 8)
ICMP timestamp request (TYPE 13)
TCP SYN to port 443
TCP ACK to port 80
Ви також можете використовувати параметр –send-ip, щоб отримати ті ж результати, що й на кроці вище.
send-ip
nmap -sn 192.168.31.89 --packet-trace --send-ip
ICMP ECHO Ping Sweep
Він схожий на Echo Ping Scan і використовується для сканування активних хостів із заданого діапазону IP-адрес. Він надсилає запити ICMP величезній кількості цілей, і, якщо конкретна мета жива, вона повертає відповідь ICMP.
nmap -sn -PE 192.168.31.1-200
ICMP Address Mask Scan
Це старіший метод перевірки зв'язку ICMP ECHO. Він видає інформацію про систему та її маску підмережі.
nmap -sn -PM 192.168.31.89 --disable-arp-ping
ICMP ECHO Timestamp scan
Пентестер може застосувати цю техніку за певних умов, коли системний адміністратор блокує звичайну мітку ICMP. Зазвичай використовується для синхронізації часу.
nmap -sn -PP 192.168.31.89 --disable-arp-ping
Пакети, захоплені за допомогою Wireshark, можна спостерігати.
IP protocol ping scan
У цьому методі пентестер відправляє різні пакети, використовуючи різні IP-протоколи, і сподівається отримати відповідь, якщо ціль жива.
nmap -sn -PO 192.168.31.89 --disable-arp-ping
No ping scan
У цьому вся методі виявлення хоста повністю пропускається. Пентестер може використовувати його для визначення активних машин для більш тяжкого сканування та збільшення швидкості мережі.
nmap -sn -PN 192.168.31.89 --disable-arp-ping
ARP ping scan
У цьому методі пакети ARP відправляються на всі пристрої мережі, хоча вони невидимі через брандмауер. Це вважається надзвичайно ефективним, ніж виявлення інших хостів. Він переважно використовується виявлення систем. Також згадується затримка.
nmap -sn -PR 192.168.31.89
SCTP INIT Ping
Він надсилає пакет SCTP, що містить мінімальний блок INIT. Його порт призначення за замовчуванням - 80. Блок INIT повідомляє віддалену систему, що пентестер намагається встановити зв'язок.
nmap -sn -PY 192.168.1.108 --disable-arp-ping
Traceroute
Трасування використовуються після завершення сканування з використанням інформації з результатів сканування та для визначення порту та протоколу, за якими буде досягнуто мети.
nmap -sn --traceroute 8.8.8.8