Scanning & Recon: Повний технічний гайд по скануванню портів, сервісів та банерів
Scanning & Recon — це фундаментальний етап будь-якої кібербезпекової операції, пентесту або атаки. Саме на цьому етапі визначається, які сервіси працюють на цілі, які порти відкриті, які версії серверного ПЗ використовуються та які потенційні уразливості можна експлуатувати.
У цій статті ми заглибимося у технічні аспекти мережевої розвідки, включаючи port scanning, service detection, OS fingerprinting, banner grabbing, host discovery та багато іншого. Стаття максимально практична та орієнтована на реальні техніки, які використовуються у пентестингу і хакінгу.
1. Що таке Scanning & Recon?
Reconnaissance (Recon) — це процес збору інформації про ціль перед атакою або тестуванням. Розвідка ділиться на:
- Passive Recon — без прямої взаємодії з ціллю;
- Active Recon — активна взаємодія та сканування мережі.
Scanning — частина Active Recon, яка дозволяє дослідити порти, сервіси, операційні системи та конфігурації мережевих хостів.
2. Типи сканування: повне технічне пояснення
2.1. Port Scanning
Порт — це «вхід» до конкретної служби на сервері або пристрої. Відкритий порт означає, що сервіс доступний. Це може бути як нормальна функція (наприклад, 80/443 — вебсервер), так і потенційна точка атаки.
Основні стани портів:
- open — порт відповідає й працює;
- closed — порт закритий, але хост активний;
- filtered — фаєрвол блокує запити;
- unfiltered — відповідає, але стан невідомий;
- open|filtered — порт відкритий або фільтрується (важко визначити).
2.2. Типи сканування портів
– SYN Scan (Half-Open Scan)
Найпопулярніший метод. Використовує лише першу фазу TCP Handshake («SYN»).
Виявляється IDS важче, ніж повне з’єднання.
– TCP Connect Scan
Повний 3-way handshake: SYN → SYN/ACK → ACK.
Найточніший, але найбільш помітний.
– UDP Scan
Сканує UDP порти (53, 161, 500 тощо).
Проблема: UDP не відповідає без даних → повільне і важке.
– ACK Scan
Використовується для обходу фаєрволів.
ACK пакети дозволяють визначити наявність фільтрації.
– FIN, XMAS, NULL Scan
Тихі методи, що використовують нестандартні TCP-пакети.
Старе обладнання реагує на них некоректно, що дозволяє виявляти порти.
3. Host Discovery — як визначити активні хости
3.1. ICMP Sweep
Перевірка мережі через ICMP Echo (ping).
Проблема: багато фаєрволів блокують ICMP.
3.2. ARP Scan
Найнадійніший спосіб в локальній мережі.
ARP не фільтрується → розкриває всі пристрої.
3.3. TCP SYN Ping
Виявлення активних хостів через SYN на популярні порти.
3.4. UDP Ping
Рідкісний метод, але іноді працює для нестандартних пристроїв.
4. Banner Grabbing — як визначити версію сервісу
Banner grabbing — це техніка витягування інформації з банерів сервера.
Банери видають дані типу:
- Apache/2.4.57 (Ubuntu)
- OpenSSH_8.9p1 Debian
- FTP server ready
- SMTP Postfix 3.5
4.1. Де банери зустрічаються?
- HTTP-заголовки
- SSH відповідь при з’єднанні
- FTP welcome banner
- SMTP сервер при HELO
- Telnet
- SNMP
4.2. Навіщо банерна розвідка?
- ідентифікація версій сервісів;
- пошук CVE та експлойтів під конкретні версії;
- виявлення помилкових конфігурацій;
- розуміння структури інфраструктури;
- виявлення вразливих протоколів.
Приклад: якщо сервер повідомляє “Apache 2.4.49”, це вже вказує на CVE-2021-41773 — критичну RCE у Linux-середовищі.
5. Service Detection & OS Fingerprinting
5.1. Service Detection
Це процес ідентифікації сервісів на портах: HTTP, SSH, DNS, RDP, SMB тощо.
Сучасні інструменти можуть не просто визначити «порт відкритий», а:
- який сервіс працює;
- яка версія ПЗ;
- які модулі увімкнені;
- яка ОС на сервері;
- яка конфігурація сервера.
5.2. OS Fingerprinting
Визначення ОС працює через:
- аналіз TTL;
- вікно TCP Window Size;
- поведінку протоколів;
- ICMP відповіді;
- специфічні особливості TCP stack.
Passivе fingerprinting — визначення ОС лише за трафіком (без сканування).
6. Техніки Recon у реальних атаках
Цей етап визначає всі наступні дії.
Хакер чи пентестер виконує recon у певній послідовності:
Крок 1: Виявлення доменів і піддоменів
- Subfinder
- Amass
- crt.sh
- Google Dorks
Крок 2: Сканування діапазону IP
- Nmap
- Masscan
- Zmap
Крок 3: Деталізація відкритих портів
- version detection (-sV)
- default script scan (-sC)
- aggressive scan (-A)
Крок 4: Ідентифікація сервісів
- SSH
- FTP
- SMB
- MySQL / PostgreSQL
- LDAP
- RDP
Крок 5: Пошук уразливостей
- NSE (Nmap Scripts)
- SearchSploit
- Vulners API
- Shodan
Це дозволяє скласти повну карту атак.
7. Інструменти для Scanning & Recon
7.1. Nmap
Головний інструмент у світі сканування.
7.2. Masscan
Сканує весь інтернет за 6 хвилин.
7.3. Zmap
Екстремально швидке масове сканування TCP/UDP.
7.4. RustScan
Швидке сканування великих діапазонів.
7.5. Shodan / Censys / ZoomEye
Пошуковики пристроїв в інтернеті.
8. Як виявляють сканування?
Найчастіші методи захисту:
- IDS/IPS (Snort, Suricata, Wazuh)
- рейт-ліміти на порти
- фаєрволи (iptables, PF, Windows Firewall)
- аномалії TCP-трафіку
- блокування підозрілих IP
Професійний пентестер використовує “stealth scanning” — мінімум трафіку, максимальна непомітність.
9. Реальні приклади атак через Recon
Атака №1: Злам компанії через відкритий RDP
Порт 3389 був відкритим для всіх. Через Recon знайшли слабкий пароль → повний доступ.
Атака №2: Уразливий SSH банер
Banner grabbing показав стару версію OpenSSH. Атакер застосував відповідний CVE.
Атака №3: Витік MySQL через відкритий інтернет-порт
Сканування знайшло 3306 → MySQL без пароля → повний дамп бази.
10. Висновок
Scanning & Recon — основа всієї кібербезпеки.
Це перший крок як для захисників, так і для атакуючих.
Грамотно виконане сканування дозволяє:
- виявити слабкі місця;
- оцінити поверхню атаки;
- деанонімізувати хости й сервіси;
- знайти уразливості ще до того, як ними скористаються хакери.
Без якісного Recon неможливий жоден ефективний пентест чи атака.