Get Mystery Box with random crypto!

Збір інформації про мережеві сервіси Однією із фаз роботи хак | Wild Wild Web

Збір інформації про мережеві сервіси

Однією із фаз роботи хакера є збір інформації. Пропоную більш поглиблено подивитись на один з інструментів, який автоматизовує її збір про мережеві сервіси - nmap.

Що за nmap?
Nmap (Network MAPper) - це open source інструмент, який значно облегшує досліджування мереж. За його допомогою можна не лише подивитись які порти відкриті на машинці, а й багато другої корисної інформації: яка операційна система, який сервіс, чи є вразливості.

А ще, він досить ефективний, завдяки тому що він працює з "сирими" IP пакетами. Це дозволяє йому робити сканування по різних векторах: TCP SYN, TCP Connect, UDP Scan та багато інших. Коротше — це класика зі світу "дізнатись про мережеві сервіси та порти".

Що за вектори сканування?
Коли ми вибираємо вектор сканування, ми говоримо nmap які пакети варто використовувати при аналізі цілі.

Якщо нам цікаво перевірити, чи є порт 4444 активним TCP портом, то беремо TCP Connect, який тягне за собою весь процес зʼєднання з ним, що вартує нам часу. Якщо хочемо швидко перевірити всі порти від 1 до 65К, то можемо обрати TCP SYN, який лише відправляє SYN пакет і перевіряє чи була відповідь.

Знаючи про які пакети йде мова, ми можемо обʼєктивно обрати потрібний нам вектор. Наприклад, щоб просканувати всі відкриті TCP порти на цілі за вектором TCP SYN, достатньо викликати nmap з -sS (Scan SYN) та -p- (всі порти):

sudo nmap -p- -sS

Результатом буде список портів, які відреагували на наші запити й з якими є сенс працювати далі.

Аналіз сервісів та їх версій
Nmap також має достатньо велику базу даних відбитків різних сервісів. Це дозволяє йому ідентифікувати який сервіс працює на порту. Сам процес ідентифікації називається probing або fingerprinting.

Для того, щоб ввімкнути цей режим, достатньо передати прапорець -sV (Scan Version). Після цього, nmap починає аналізувати інформацію, яку він здатний зібрати з сервісу. Наприклад, інформація з банера, який ви бачите на SSH сервісах, має достатньо інформації про те, щоб сказати що за операційна система і що за SSH сервіс працює:

sudo nmap -p 22 -sV

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

Скрипти на Lua?
Так, скрипти на Lua! В nmap є можливість писати свої скрипти на Lua, в нього є свій Scripting Engine. Більш того, в нього багато вбудованих скриптів, які можна викликати не вдаючись до написання своїх.

Що це за скрипти та для чого вони — велике питання, яке ми не будемо тут розкривати. Просто знайте, що їх багацько, вони поділені на категорії.

До прикладу, якщо ви знаєте, що на порту 80 працює HTTP сервер Apache httpd, то за допомогою скриптів із категорії http ми можемо дізнатись більше інформації. Для цього, використовується прапорець --script та * (wildcard для запуску всіх скриптів із цієї категорії):

sudo nmap -p 80 --script=http*

Результатом цієї команди буде багато цікавих даних (якщо вам пощастить, в залежності від сервісу та інших факторів, але в конкретно цьому прикладі вона не досить цікава ).

В нього є також і стандартний набір скриптів по замовчуванню, який можна викликати за допомогою -sC (те саме що й --script=default):

sudo nmap -p 80 -sC

Що за операційна система?
Так, в nmap це також є. Ви можете за допомогою прапорця -O попросити nmap проаналізувати яка операційна система та якої версії крутиться на сервері:

sudo nmap -O

Результатом буде список вірогідностей тої чи іншої операційної системи, яка встановлена на сервері.

А тепер все разом!
На цей випадок в nmap також є прапорець - -A. Якщо ви хочете провести повний аналіз порту, то ви можете використовувати цей прапорець і він зробить все те про що ми тут поговорили:

sudo nmap -p 80 -A

Багато іншого!
Я вже не влізаю, тому скажу що це не все, що вміє nmap. З його допомогою можна обходити фаєрволи, IDS (Intrusion Detection System) та IPS (Intrusion Prevention System) системи та інше. Про це все можна почитати на його сайті.