time

nmap: сканер сети

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

Установка под Ubuntu

sudo apt-get install nmap

nmap имеет богатый набор опций для сканирования как отдельного хоста так и диапазона хостов на предмет сбора разной информации. Ниже приведен список наиболее использованных мной сочетаний ключей.

Для работы большинства возможностей nmap требуется права root.

Разработчики nmap предлагают хост scanme.nmap.org для тестового сканирования.

Получение информации об портах удаленного хоста и определение операционной системы

sudo nmap -sS -P0 -sV -O scanme.nmap.org

scanme.nmap.org – сканируемый хост, может быть: IP, имя хоста или подсеть

-sS – TCP SYN сканирование (полуоткрытое)

-P0 – отключение ICMP сканирования

-sV – определение сервисов, запущенных на открытых портах

-O – определение версии операционной системы

Пропинговать диапазон адресов

sudo nmap -sP -v "192.168.1.*"
# или
sudo nmap -sP -v 192.168.1.0/24
# или
sudo nmap -sP -v 192.168.1.1-20

-sP - ping-сканирование

Проверка одного порта или диапазона

sudo nmap -sT -p 22 scanme.nmap.org
# диапазон
sudo nmap -sT -p 20-110 scanme.nmap.org

-sT - TCP-сканирование

При сканировании можно скрыть свой IP адрес

sudo nmap -sS scanme.nmap.org -D 8.8.8.8

Сканирование списка хостов из файла

nmap -iL list.txt

Для определения открытых портов на локальной машине нужно выполнить

nmap localhost

Для принудительного закрытия определенного порта можно воспользоваться fuser

fuser -k 80/tcp

Определение разницы между двумя сканами

sudo nmap -n -PN 192.168.1.1/24 -O > scan1
sudo nmap -n -PN 192.168.1.1/24 -O > scan2
ndiff -b scan1 -o scan2

Подсчет Linux/Windows машин в сети (источник)

sudo nmap -F -O 192.168.0.1-255 | \ grep "Running: " > /tmp/os; \ echo "$(cat /tmp/os | grep Linux | wc -l) Linux device(s)"; \ echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) devices"

Графический интерфейс для nmap - Zenmap, умеет визуализировать топологию сети, сохранять параметры поиска в виде профиля, находить разницу (diff) между двумя результатами поиска.

Для linux-систем можно отключить ответы на ping-запросы (ICMP echo), для этого нужно добавить в /etc/sysctl.conf следующие строки

net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_echo_ignore_all = 1

и приминить изменения

sysctl -p

Дополнительное чтиво

blog comments powered by Disqus