NMAP
Open source приложение для сканирования сети.
Общие флаги
nmap -e eth2 scanme.nmap.org | Конкретный интерфейс |
nmap -A <target> | Агрессивный режим (объединение режимов определения версии ОС, версий сервисов, скрипт сканирования, трассировки) |
-T4 | Время задержки (ожидания) |
nmap -iL targets.txt |
Запуск с источниками из файла. Могут разделяться пробелом, табуляцией или переводом строки. Поддерживает диапазоны 192.168.1.20-30 192.168.* 192.168.0/24 scanme.nmap.org/24 комментарии
|
nmap 192.168.1.1-255 --exclude 192.168.1.1 | Исключение из диапазона |
nmap --exclude-file dontscan.txt 192.168.1.1/24 | Исключение адресов из файла |
nmap -iR 100 |
100 случайных адресов -iR 0 это все адреса. |
http-max-cache-size=0 |
Отключение кэша (по умолчанию включен) |
Поиск хостов
NMAP использует несколько техник пинга с использованием разных протоколов.
-PS/PA/PU/PY [portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
-PO [protocol list]: IP protocol ping
Номера протоколов поверх IP
1 | ICMP |
2 | IGMP |
4 | IP-in-IP |
6 | TCP |
17 | UDP |
132 | SCTP |
Для остальных протоколов только будут установлены IP заголовки.
Все техники по умолчанию отправляют пустые запросы.
Ключ | Описание |
-sn <target> |
Ping-сканирование сети.
Отправляются разные пакеты в зависимости от привилегий пользователя. С опцией traceroute должен показывать дополнительные маршруты, но это не то же самое что traceroute. У меня до всех тестовых адресов получился один шаг
|
nmap -sn -PS <target> | TCP SYN сканирование.
SYN пакет на 80 порт, если порт закрыт - приходит RST, если открыт - SYN/ACK. Потом отправляем RST пакет. Фаер может блокировать RST для закрытых сервисов, поэтому можно донастроить скан
Но SYN пакеты могут блокироваться, поэтому следующий способ
|
nmap -sn -PA <target> |
TCP ACK сканирование. Пустой TCP-пакет с флагом ACK, на порт 80 (по умолчанию).
|
nmap -sn -PU <target> | UDP сканирование. Порт 40125. Аналогично настройка портов |
nmap -sn -PE <target> | Стандартное Echo сканирование. |
nmap -sn -PP <target> | Echo timestamp сканирование. |
nmap -sn -PM <target> | Echo reply сканирование. |
nmap -sn -PY <target> | SCTP INIT сканирование. Аналогичная настройка портов. |
nmap -sn -PO <target> |
IP сканирование.
Здесь 1, 2, 17 - номера протоколов |
nmap -sn -PO --data-length 100 scanme.nmap.org |
--data-length 100 генерация случайных данных |
nmap -sn -PR <target> |
ARP ping |
nmap -sn -PR --spoof-mac <mac address> <target> |
Подмена MAC-адреса может позволить нам подделать источник наших подключений и может быть полезна для обхода систем идентификации. MAC-адрес можно подделать |
-sn --script dns-brute bobrobotirk.ru | Брутфорс по доменным именам |
-sn --script broadcast-ping 192.168.0.1/24 | Броадкастовый пинг |
Можно комбинировать технологии
nmap -sn --send-ip -PS21,22,23,25,80,445,443,3389,8080 -PA80,443,8080 -PO1,2,4,6 -PU631,16
Открытые порты
Без параметров, только адрес. По умолчанию сканирует 1024 первых порта. Статусы портов:
Open | Сервис доступен |
Closed | Запросы были получены, но был сделан вывод, что на этом порту не запущена служба. |
Filtered | Не было признаков того, что запросы были получены, и состояние не удалось установить. Это также указывает на то, что запросы отбрасываются в результате какой-либо фильтрации. |
Unfiltered | Запросы были получены, но состояние не удалось установить. |
Open/Filtered | Запросы отфильтрованы или порт открыт, но не удалось установить состояние. |
Close/Filtered | Запросы отфильтрованы или порт закрыт, и не удалось установить состояние. |
Последовательность задач при сканировании портов:
- Преобразование DNS имени в IP. Можно указать альтернативный dns сервер.
nmap --dns-servers 8.8.8.8,8.8.4.4 scanme.nmap.org
- Проверка, поднят ли хост. Чтобы пропустить:
nmap -Pn scanme.nmap.org
- Обратное преобразование IP в DNS. Чтобы пропустить:
nmap -n scanme.nmap.org
- Затем SYN (привилегированный пользователь) или TCP connect (обычный пользователь) сканирование. SYN быстрее. Однако есть еще способы сканирования портов.
Диапазоны портов:
nmap -p80,443 localhost | Явный список портов |
nmap -p1-100 localhost | Диапазон |
nmap -p- localhost | Все порты |
nmap -pT:25,U:53 <target> | Порты с протоколом |
nmap -p smtp <target> | По имени сервиса |
nmap -p smtp* <target> | По шаблону имени сервиса |
nmap -p[1-65535] <target> | Только порты, указанные в nmap в виде сервиса |
Определение типа сервиса и версии
За счет базы данных "отпечатков" сервисов и ОС. Отправляются пробники, определенные в nmap-service-probes, в список предполагаемых открытых портов. Пробники выбираются в зависимости от того, насколько вероятно, что они могут быть
использованы для идентификации службы.
nmap -sV <target> | Версии сервисов |
nmap -sV --version-intensity 9 <target> | Уровень интенсивности поиска, 0-9 |
nmap -O <target> | Версия ОС. В привилегированном режиме. |
nmap -O --osscan-guess <target> | Попытка угадать ОС |
nmap -O --osscan-limit <target> | Вывод информации об ОС только а случае абсолютной уверенности |
nmap -O -v 192.168.0.1 | Расширенная информация об ОС |
"Отпечатки" могут настраиваться для улучшения производительности.
Дополнительные утилиты
nping модификация ping пакетов. Мощный инструмент для тестирования фаерволов.
--icmp | тип пакета |
-c 1 | количество пакетов |
--icmp-type 0 --icmp-code 0 | тип и код пакета |
--source-ip 192.168.0.5 --dest-ip 192.168.0.10 | источник и приемник |
--icmp-id 520 | идентификатор |
--icmp-seq 0 | номер пакета |
--data-string 'ping' | данные внутри |
Zenmap графическая утилита, удобно хранить настройки параметров nmap
ncat Выполнение внешних команд различными способами после успешного установления соединения. Одним из способов является использование Lua-скриптов, которые действуют как программы и позволяют пользователям выполнять любые задачи.
ncat --lua-exec <path to Lua script> --listen 80
--sh-exec выполняет консольные команды
Ncrack взлом простых паролей
<[service-name]>://<target>:<[port-number]>
ncrack ssh://<target>:<port>
-U | файлы логинов |
-P | файлы паролей |
ncrack --save cracking-session <[service-name]>://<target>:<[port-number]> | сохранить незавершенный процесс |
ncrack --resume cracking-session <[service-name]>://<target>:<[port-number]> | продолжить |
Rainmap Lite запуск сканирования из браузера