Сканирование с помощью 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-совместимый вывод

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
Скрипт Назначение Протокол/порт
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 может быть расценено как сканирование враждебных целей.