Разведка — первый этап любого пентеста. Цель: собрать максимум данных о цели до начала активных действий.

nmap

Что делает

Сканирует сети и хосты: определяет открытые порты, запущенные сервисы, версии ПО и операционную систему. Работает через отправку специально сформированных пакетов и анализ ответов. Стандарт де-факто для сетевой разведки.

Установка

# Предустановлен в Kali Linux. Если нет:
sudo apt update && sudo apt install nmap -y

Синтаксис

nmap [тип сканирования] [опции] [цель]

Ключевые флаги и опции

Флаг

Описание

Пример

-sS

SYN-сканирование (стелс, по умолчанию с root)

nmap -sS 192.168.1.1

-sT

TCP connect (без root)

nmap -sT 192.168.1.1

-sU

UDP-сканирование

nmap -sU -p 53,161 192.168.1.1

-sV

Определение версий сервисов

nmap -sV 192.168.1.1

-O

Определение ОС

nmap -O 192.168.1.1

-A

Агрессивное: ОС + версии + скрипты + traceroute

nmap -A 192.168.1.1

-p

Указать порты

-p 22,80,443 или -p 1-1000 или -p- (все)

-T0-T5

Скорость (0=паранойя, 3=по умолч., 5=безумие)

-T4

--open

Показывать только открытые порты

nmap --open 192.168.1.0/24

-oN

Вывод в файл (обычный формат)

-oN scan.txt

-oX

Вывод в XML

-oX scan.xml

-oG

Вывод в greppable-формат

-oG scan.gnmap

-oA

Вывод во все три формата

-oA scan

-v / -vv

Подробный вывод

nmap -vv

-n

Не резолвить DNS

nmap -n 192.168.1.0/24

--script

Запустить NSE-скрипт

--script vuln

-iL

Читать цели из файла

-iL targets.txt

-Pn

Не пинговать хосты перед сканированием

nmap -Pn 192.168.1.1

-sn

Ping sweep (только обнаружение хостов)

nmap -sn 192.168.1.0/24

--min-rate

Минимальная скорость пакетов/сек

--min-rate 1000

Практические примеры

Пример 1: Обнаружение живых хостов в сети

sudo nmap -sn 192.168.1.0/24

Вывод:

Starting Nmap 7.94 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00054s latency).
MAC Address: C8:3A:35:27:4C:01 (Tenda Technology)
Nmap scan report for 192.168.1.105
Host is up (0.0012s latency).
MAC Address: DC:A6:32:5E:2B:17 (Raspberry Pi Trading)
Nmap scan report for 192.168.1.200
Host 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.94
Nmap scan report for 192.168.1.105
Host is up (0.0011s latency).
Not shown: 65528 closed tcp ports (reset)
PORT     STATE SERVICE     VERSION
22/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.54
3306/tcp open  mysql       MySQL 5.7.39
8080/tcp open  http-proxy  Squid http proxy 4.13
MAC Address: DC:A6:32:5E:2B:17 (Raspberry Pi)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Nmap 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.94
Nmap scan report for testphp.vulnweb.com (44.228.249.3)
Host is up (0.18s latency).

PORT     STATE SERVICE VERSION
80/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.200
Host is up (0.00098s latency).

PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host 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.

Комментарии (1)


  1. Granulex
    02.06.2026 16:43

    `-T0` делает сканирование медленным, а не невидимым. SYN без ответа – всё равно аномалия в любом SIEM.