Сканирование с помощью nmap
`nmap` — мощный инструмент для сетевого сканирования и аудита безопасности.
Установка
Установить `nmap` можно следующей командой:
sudo apt install nmap // для Debian/Ubuntu sudo yum install nmap // для CentOS/RHEL sudo pacman -S nmap // для Arch
Базовое сканирование
Команда | Описание |
---|---|
`nmap 192.168.1.1` | Сканирование одного хоста |
`nmap 192.168.1.1 192.168.1.2` | Сканирование нескольких хостов |
`nmap 192.168.1.0/24` | Сканирование всей подсети |
`nmap -iL список.txt` | Сканирование из файла со списком IP |
Сканирование портов
Команда | Описание |
---|---|
`nmap -p 22 192.168.1.1` | Проверка конкретного порта |
`nmap -p 1-1000 192.168.1.1` | Проверка диапазона портов |
`nmap -p- 192.168.1.1` | Проверка всех 65535 портов |
Расширенные опции
Команда | Описание |
---|---|
`nmap -sS 192.168.1.1` | Полускан SYN (скрытный) |
`nmap -sT 192.168.1.1` | TCP-соединение (обычное) |
`nmap -sU -p 53 192.168.1.1` | UDP-сканирование порта 53 |
`nmap -A 192.168.1.1` | Определение ОС, версии сервисов, трассировка |
`nmap -O 192.168.1.1` | Определение операционной системы |
`nmap -sV 192.168.1.1` | Определение версий служб |
`nmap -Pn 192.168.1.1` | Скан без пинга (если ICMP заблокирован) |
nmap -Pn --script http-headers,http-title -p 80,443 45.82.14.0/24 nmap -p80,443 -Pn -T4 --open --script http-headers,http-title,ssl-cert --script-args http.useragent="A friendly web crawler (http://calderonpale.com)",http-headers.useget -oX random-webservers.xml -iR 0 nmap --script ssl-enum-ciphers -p 636 host.mydomain.ru #Проверка ldap сервера nmap --script ssl-enum-ciphers -p 443 host.mydomain.ru
Вывод в файл
Команда | Описание |
---|---|
`nmap -oN результат.txt 192.168.1.1` | Обычный вывод в файл |
`nmap -oX результат.xml 192.168.1.1` | XML-вывод |
`nmap -oG результат.gnmap 192.168.1.1` | Grep-совместимый вывод |
NSE-скрипты (Nmap Scripting Engine)
nmap поддерживает мощные скрипты для обнаружения уязвимостей, сбора информации, эксплуатации сервисов.
Команда | Описание |
---|---|
nmap –script help | Просмотр всех доступных NSE-скриптов |
nmap –script default 192.168.1.1 | Запуск скриптов по умолчанию |
nmap –script vuln 192.168.1.1 | Проверка на известные уязвимости |
nmap –script safe 192.168.1.1 | Безопасные скрипты, не вносящие изменений |
nmap –script ssh-hostkey -p 22 192.168.1.1 | Получение SSH-ключа сервера |
nmap –script http-title -p 80 192.168.1.1 | Название веб-страницы в заголовке HTML |
nmap –script smb-os-discovery -p 445 192.168.1.1 | Получение ОС по SMB-протоколу |
nmap –script ssl-cert -p 443 192.168.1.1 | Информация о SSL-сертификате |
Поиск скриптов:
ls /usr/share/nmap/scripts/ vim /usr/share/nmap/scripts/ssl-enum-ciphers.nse nmap --script-help scriptname
Примеры использования
nmap -sS -p 22,80,443 -v 192.168.1.10 nmap -A -T4 192.168.1.0/24 nmap -sU -p 161 192.168.1.1 nmap -Pn --script ssh-hostkey 192.168.1.10 nmap --script vuln -T4 192.168.1.1
Полезные NSE-скрипты
Скрипт | Назначение | Протокол/порт |
---|---|---|
`http-title` | Извлекает заголовок веб-страницы | HTTP (80/443) |
`http-enum` | Перечисляет общие файлы и директории на веб-сервере | HTTP |
`http-vuln-cve2017-5638` | Проверка уязвимости Apache Struts 2 (CVE-2017-5638) | HTTP |
`ssl-cert` | Получает информацию о SSL-сертификате | HTTPS (443) |
`ssl-enum-ciphers` | Показывает поддерживаемые шифры SSL/TLS | HTTPS (443) |
`smb-os-discovery` | Определяет ОС по SMB | SMB (445) |
`smb-vuln-ms17-010` | Проверка уязвимости EternalBlue (MS17-010) | SMB (445) |
`ssh-hostkey` | Извлекает SSH-публичные ключи сервера | SSH (22) |
`ftp-anon` | Проверяет возможность анонимного входа на FTP | FTP (21) |
`dns-zone-transfer` | Проверяет возможность получения DNS-зоны | DNS (53) |
Пример использования:
nmap -p 443 --script ssl-cert,ssl-enum-ciphers example.com nmap -p 445 --script smb-os-discovery,smb-vuln-ms17-010 192.168.1.10 nmap -p 21 --script ftp-anon 192.168.1.10 nmap -p 53 --script dns-zone-transfer --script-args dns-zone-transfer.domain=example.com 192.168.1.1
Совет: Чтобы узнать, что делает скрипт:
nmap --script-help ftp-anon
Примечания
- Для некоторых операций требуются права `root`
- Злоупотребление nmap может быть расценено как сканирование враждебных целей. Используйте ответственно!