Разведка — первый этап любого пентеста. Цель: собрать максимум данных о цели до начала активных действий.
nmap
Что делает
Сканирует сети и хосты: определяет открытые порты, запущенные сервисы, версии ПО и операционную систему. Работает через отправку специально сформированных пакетов и анализ ответов. Стандарт де-факто для сетевой разведки.
Установка
# Предустановлен в Kali Linux. Если нет:sudo apt update && sudo apt install nmap -y
Синтаксис
nmap [тип сканирования] [опции] [цель]
Ключевые флаги и опции
|
Флаг |
Описание |
Пример |
|---|---|---|
|
|
SYN-сканирование (стелс, по умолчанию с root) |
|
|
|
TCP connect (без root) |
|
|
|
UDP-сканирование |
|
|
|
Определение версий сервисов |
|
|
|
Определение ОС |
|
|
|
Агрессивное: ОС + версии + скрипты + traceroute |
|
|
|
Указать порты |
|
|
|
Скорость (0=паранойя, 3=по умолч., 5=безумие) |
|
|
|
Показывать только открытые порты |
|
|
|
Вывод в файл (обычный формат) |
|
|
|
Вывод в XML |
|
|
|
Вывод в greppable-формат |
|
|
|
Вывод во все три формата |
|
|
|
Подробный вывод |
|
|
|
Не резолвить DNS |
|
|
|
Запустить NSE-скрипт |
|
|
|
Читать цели из файла |
|
|
|
Не пинговать хосты перед сканированием |
|
|
|
Ping sweep (только обнаружение хостов) |
|
|
|
Минимальная скорость пакетов/сек |
|
Практические примеры
Пример 1: Обнаружение живых хостов в сети
sudo nmap -sn 192.168.1.0/24
Вывод:
Starting Nmap 7.94 ( https://nmap.org )Nmap scan report for 192.168.1.1Host is up (0.00054s latency).MAC Address: C8:3A:35:27:4C:01 (Tenda Technology)Nmap scan report for 192.168.1.105Host is up (0.0012s latency).MAC Address: DC:A6:32:5E:2B:17 (Raspberry Pi Trading)Nmap scan report for 192.168.1.200Host is up (0.00087s latency).MAC Address: 00:50:56:C0:00:08 (VMware)Nmap done: 256 IP addresses (3 hosts up) scanned in 2.34 seconds
Что произошло: nmap отправил ARP-запросы (в локальной сети) и ICMP-эхо, получил ответы от трёх хостов.
Пример 2: Полное сканирование с определением версий и ОС
sudo nmap -sS -sV -O -p- --min-rate 5000 -T4 -oA full_scan 192.168.1.105
Вывод:
Starting Nmap 7.94Nmap scan report for 192.168.1.105Host is up (0.0011s latency).Not shown: 65528 closed tcp ports (reset)PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)80/tcp open http Apache httpd 2.4.54 ((Debian))111/tcp open rpcbind 2-4 (RPC #100000)443/tcp open ssl/http Apache httpd 2.4.543306/tcp open mysql MySQL 5.7.398080/tcp open http-proxy Squid http proxy 4.13MAC Address: DC:A6:32:5E:2B:17 (Raspberry Pi)Device type: general purposeRunning: Linux 4.X|5.XOS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5OS details: Linux 4.15 - 5.6Network Distance: 1 hopService Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelNmap done: 1 IP address (1 host up) scanned in 24.87 seconds
Что произошло: просканированы все 65535 портов, определены сервисы с версиями и ОС.
Пример 3: Поиск уязвимостей через NSE-скрипты
sudo nmap -sV --script vuln -p 80,443,8080 testphp.vulnweb.com
Вывод:
Starting Nmap 7.94Nmap scan report for testphp.vulnweb.com (44.228.249.3)Host is up (0.18s latency).PORT STATE SERVICE VERSION80/tcp open http Apache httpd 2.4.7 ((Ubuntu))| http-sql-injection:| Possible sqli for queries:| http://testphp.vulnweb.com/artists.php?artist=1%27%20OR%20sqlspider|_ http://testphp.vulnweb.com/listproducts.php?cat=1%27%20OR%20sqlspider| http-csrf:| Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=testphp.vulnweb.com| Found the following possible CSRF vulnerabilities:| Path: http://testphp.vulnweb.com/userinfo.php| Form id: |_ Form action: userinfo.php| http-stored-xss:|_ Couldn't find any stored XSS vulnerabilities.|_http-dombased-xss: Couldn't find any DOM based XSS.
Что произошло: NSE-скрипт vuln запустил набор проверок на веб-уязвимости, обнаружил потенциальные точки SQL-инъек ции.
Пример 4: Сканирование конкретных сервисов + экспорт
sudo nmap -p 445 --script smb-vuln-ms17-010 192.168.1.0/24 -oN eternalblue_scan.txt
Вывод:
Nmap scan report for 192.168.1.200Host is up (0.00098s latency).PORT STATE SERVICE445/tcp open microsoft-dsHost script results:| smb-vuln-ms17-010: | VULNERABLE:| Remote Code Execution vulnerability in Microsoft SMBv1 servers (MS17-010)| State: VULNERABLE| IDs: CVE:CVE-2017-0143| Risk factor: HIGH| A critical remote code execution vulnerability exists in Microsoft SMBv1| servers (named pipe functionality).| References:|_ https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
Что произошло: скрипт smb-vuln-ms17-010 проверил каждый хост сети на уязвимость EternalBlue (использовалась WannaCry).
Частые ошибки
-
Note: Host seems down→ используй-Pn(хост блокирует ICMP, но может быть доступен) -
You requested a scan type which requires root privileges→ запускай сsudo -
Сканирование зависло на UDP → UDP медленный по природе, добавь
--min-rate 1000и ограничь порты-p 53,67,68,69,123,161 -
WARNING: RST from...в большом количестве → файрвол/IDS сбрасывает пакеты, снизь скорость-T2 -
DNS резолвинг замедляет сканирование сети → добавь
-n
Заметки OPSEC
Уровень шума: ВЫСОКИЙ (при
-A,-T4,--script vuln)
SYN-сканирование (
-sS) оставляет записи в файрволе и IDS (Snort, Suricata)
-Aгенерирует десятки тысяч пакетов — легко детектируетсяЛоги на цели:
/var/log/auth.log(SSH), логи Apache/nginx при сканировании вебДля снижения заметности:
-T1 -T2,--scan-delay 2000ms, использовать--source-port 53для обхода простых правил
Связка с другими инструментами
nmap(обнаружение хостов и портов) →nessus/openvas(глубокая проверка уязвимостей) →metasploit(эксплуатация найденных CVE)
nmap -sV(определение сервисов) →searchsploit(поиск эксплойтов по версии) →exploitdb(получение PoC)
Все примеры проверены на Kali Linux 2024.x. Используемые цели:
scanme.nmap.org,192.168.1.0/24,testphp.vulnweb.com,hack.me.
ссылка на оригинал статьи https://habr.com/ru/articles/1042462/