Nmap основной базис по командам (сканирование IP)

nmap — свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов (сканирование IP).

Nmap использует множество различных методов сканирования, таких как UDP, TCP (connect), TCP SYN (полуоткрытое), FTP-proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, Xmas tree, SYN- и NULL-сканирование. Также поддерживает большой набор дополнительных возможностей, а именно: определение операционной системы удалённого хоста с использованием отпечатков стека TCP/IP, «невидимое» сканирование, динамическое вычисление времени задержки и повтор передачи пакетов, параллельное сканирование, определение неактивных хостов методом параллельного ping-опроса, сканирование с использованием ложных хостов, определение наличия пакетных фильтров, прямое (без использования portmapper) RPC-сканирование, сканирование с использованием IP-фрагментации, быстрый поиск уязвимостей SQL Injection, а также произвольное указание IP-адресов и номеров портов сканируемых сетей. 

В некоторых юрисдикциях зарубежных стран, сканирование портов может быть незаконным(?). Так что, настройте тестирование следующим образом:

                              +---------+
        +---------+           | Network |         +--------+
        | server1 |-----------+ swtich  +---------|server2 |
        +---------+           | (sw0)   |         +--------+
                              +----+----+
                                   | 
                                   |
                         +---------+----------------+
                         | wks01 Linux/macOS/Win    |
                         +--------------------------+
  1. wks01 - это ваш компьютер под управлением Linux/macOS (OS X) или Unix, как операционная система. Он используется для сканирования вашей локальной сети. Команда nmap должна быть установлена на этом компьютере.
  2. server1 - может использовать операционные системы Linux / Unix / MS-Windows. Это тестовый сервер. Желательно установить несколько сервисов, таких как веб-сервер, файловый сервер и так далее.
  3. server2 - может использовать операционные системы Linux / Unix / MS-Windows. Это полностью защищенный сервер с брандмауэром. Желательно установить несколько сервисов, таких как веб-сервер, файловый сервер и так далее.

Все три системы подключены через роутер (switch).

Сканирование одного хоста или IP-адреса (IPv4):

### Scan a single ip address ###

nmap 192.168.1.1

  ## Scan a host name ###

nmap wp.crimea-karro.ru

  ## Scan a host name with more info###

nmap -v wp.crimea-karro.ru

Сканирование нескольких IP-адресов или подсети (IPv4):

nmap 192.168.1.1 192.168.1.2 192.168.1.3

## works with same subnet i.e. 192.168.1.0/24 

nmap 192.168.1.1,2,3

Вы также можете сканировать диапазон IP-адресов:

nmap 192.168.1.1-20

Вы можете сканировать диапазон IP-адресов с помощью шаблона:

nmap 192.168.1.*

Более грубо, сканируем всю подсеть:

nmap 192.168.1.0/24

Прочитать список хостов/сетей из файла (IPv4).

Опция -iL позволяет читать список целевых систем с помощью текстового файла. Это полезно для сканирования большого количества хостов/сетей. Создайте текстовый файл следующим образом (вы используете tmpfs?):

cat > /tmp/test.txt

Добавьте имена следующим образом:

wp.crimea-karro.ru

192.168.1.0/24

192.168.1.1/24

10.1.0.1

localhost

Синтаксис сканирования по списку:

nmap -iL /tmp/test.txt

При сканировании большого количества хостов/сетей можно исключить из сканирования хосты:

nmap 192.168.1.0/24 --exclude 192.168.1.5

nmap 192.168.1.0/24 --exclude 192.168.1.5,192.168.1.254

Или исключить список из файла /tmp/exclude.txt:

nmap -iL /tmp/scanlist.txt --excludefile /tmp/exclude.txt

Использование скрипта сканирования ОС и обнаружения версий (IPv4):

nmap -A 192.168.1.254

nmap -v -A 192.168.1.1

nmap -A -iL /tmp/scanlist.txt 

Узнайте, защищен ли узел/сеть брандмауэром с помощью команд:

## nmap command examples for your host ##

nmap -sA 192.168.1.254

nmap -sA wp.crimea-karro.ru

Сканирование узла, когда он защищен брандмауэром:

nmap -PN 192.168.1.1

nmap -PN wp.crimea-karro.ru

Сканировать IPv6 хост/адрес примеры. Опция -6 разрешает сканирование IPv6. Синтаксис:

nmap -6 IPv6-Address-Here

nmap -6 wp.crimea-karro.ru

nmap -6 2607:f0d0:1002:51::4

nmap -v A -6 2607:f0d0:1002:51::4

Сканируем сеть и смотрим, какие серверы и устройства работают. Это называется обнаружением хоста или пинг-сканированием:

nmap -sP 192.168.1.0/24

Как выполнить быстрое сканирование?

nmap -F 192.168.1.1

Отобразить причину, по которой порт находится в определенном состоянии.

nmap --reason 192.168.1.1

Показывать только открытые (или, возможно, открытые) порты:

nmap --open 192.168.1.1

nmap --open wp.crimea-karro.ru

nmap --open 192.168.2.18

Показать все пакеты отправленные и полученные в процессе сканирования:

nmap --packet-trace 192.168.1.1

nmap --packet-trace wp.crimea-karro.ru

Показать основные интерфейсы и маршруты локального хоста. Это полезно для отладки (команда ip addres или команда маршрута или команда netstat):

nmap --iflist

Как сканировать определенные порты с помощью nmap?

nmap -p [port] hostName

## Scan port 80

nmap -p 80 192.168.1.1   ## Scan TCP port 80

nmap -p T:80 192.168.1.1   ## Scan UDP port 53

nmap -p U:53 192.168.1.1   ## Scan two ports ##

nmap -p 80,443 192.168.1.1   ## Scan port ranges ##

nmap -p 80-200 192.168.1.1   ## Combine all options ##

nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.1.1

nmap -p U:53,111,137,T:21-25,80,139,8080 wp.crimea-karro.ru

nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 192.168.1.254   ## Scan all ports with * wildcard ##

nmap -p "*" 192.168.1.1   ## Scan top ports i.e. scan $number most common ports ##

nmap --top-ports 5 192.168.1.1

nmap --top-ports 10 192.168.1.1

Самый быстрый способ сканировать все ваши устройства/компьютеры на открытые порты:

nmap -T5 192.168.1.0/24

nmap -T5 {sub/net}

Как обнаружить удаленную операционную систему с помощью nmap? Вы можете определить приложения и операционную систему удаленного хоста с помощью опции -O:

nmap -O 192.168.1.1

nmap -O  --osscan-guess 192.168.1.1

nmap -v -O --osscan-guess 192.168.1.1

Также смотрите раздел "Fingerprinting" инструментов командной строки веб-сервера и dns-сервера для получения дополнительной информации.

Как определить номера версий удаленных служб (сервер / демон)?

nmap -sV 192.168.1.1

Сканирование хоста с помощью TCP ACK (PA) и TCP Syn (PS) ping. Если брандмауэр блокирует стандартные ICMP пинги, попробуйте следующие методы обнаружения узлов:

nmap -PS 192.168.1.1

nmap -PS 80,21,443 192.168.1.1

nmap -PA 192.168.1.1

nmap -PA 80,21,200-512 192.168.1.1

Сканирование хоста с помощью ping IP-протокола:

nmap -PO 192.168.1.1

Сканирование хоста с помощью UDP ping. Это сканирование обходит брандмауэры и фильтры, которые отображают только TCP:

nmap -PU 192.168.1.1

nmap -PU 2000.2001 192.168.1.1

Выяснить наиболее часто используемые TCP порты с помощью TCP SYN сканирования:

### Stealthy scan ###

nmap -sS 192.168.1.1   ### Find out the most commonly used TCP ports using  TCP connect scan (warning: no stealth scan)

###  OS Fingerprinting ###

nmap -sT 192.168.1.1   ### Find out the most commonly used TCP ports using TCP ACK scan

nmap -sA 192.168.1.1   ### Find out the most commonly used TCP ports using TCP Window scan

nmap -sW 192.168.1.1   ### Find out the most commonly used TCP ports using TCP Maimon scan

nmap -sM 192.168.1.1

Сканирование хоста для получения UDP (UDP-сканирование). Большинство популярных сервисов в Интернете работают по протоколу TCP. DNS, SNMP и DHCP - это три наиболее распространенных UDP сервиса. Используйте следующий синтаксис, чтобы узнать о UDP службах:

nmap -sU nas03

nmap -sU 192.168.1.1

Сканирование на наличие IP-протокола. Данный тип сканирования позволяет определить, какие IP-протоколы (TCP, ICMP, IGMP и т.д.) поддерживаются целевыми машинами:

nmap -sO 192.168.1.1

Сканируйте брандмауэр на предмет уязвимости системы безопасности. Следующие типы сканирования используют тонкую лазейку в TCP и хороши для тестирования  распространенных атак:

## TCP Null Scan to fool a firewall to generate a response ##

## Does not set any bits (TCP flag header is 0) ##

nmap -sN 192.168.1.254   ## TCP Fin scan to check firewall ##

## Sets just the TCP FIN bit ##

nmap -sF 192.168.1.254   ## TCP Xmas scan to check firewall ##

## Sets the FIN, PSH, and URG flags, lighting the packet up like a Christmas tree ##

nmap -sX 192.168.1.254

Сканирование брандмауэра на наличие фрагментов пакетов. Опция -f, позволяет (включая ping-сканирование) использовать крошечные фрагментированные IP-пакеты. Идея состоит в том, чтобы разделить TCP-заголовок по следующим параметрам несколько пакетов, чтобы затруднить работу пакетных фильтров, систем обнаружения вторжений.

nmap -f 192.168.1.1

nmap -f wp.crimea-karro.ru

nmap -f 15 wp.crimea-karro.ru

 

## Set your own offset size with the --mtu option ##

nmap --mtu 32 192.168.1.1

Маскируйте сканирование, приманки:

nmap -n -D192.168.1.5,10.5.1.2,172.1.2.4,3.4.2.1 192.168.1.5

Сканирование брандмауэра на предмет подмены MAC-адресов:

### Spoof your MAC address ##

nmap --spoof-mac MAC-ADDRESS-HERE 192.168.1.1   ### Add other options ###

nmap -v -sT -PN --spoof-mac MAC-ADDRESS-HERE 192.168.1.1     ### Use a random MAC address ###

### The number 0, means nmap chooses a completely random MAC address ###

nmap -v -sT -PN --spoof-mac 0 192.168.1.1

Как сохранить вывод в текстовый файл?

nmap 192.168.1.1 > output.txt

nmap -oN /path/to/filename 192.168.1.1

nmap -oN output.txt 192.168.1.1

Сканирование для веб-серверов в связке с Nikto:

nmap -p80 192.168.1.2/24 -oG - | /path/to/nikto.pl -h -

nmap -p80,443 192.168.1.2/24 -oG - | /path/to/nikto.pl -h -

Ускорение сканирования в nmap (-T):

nmap -v -sS -A -T4 192.168.1.1

От автора, не позорьтесь использованием zenmap.


Есть возможность написания произвольных сценариев (скриптов) на языке программирования Lua - Nmap Scripting Engine (NSE).