Сканирование с помощью 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 может быть расценено как сканирование враждебных целей. Используйте ответственно!