20 Потрясающих Примеров Команды Nmap + анонимное сканирование портов

1. Сканирование Одного Хоста или IP Адреса

Сканировать Отдельный IP Адрес:

$ nmap 192.168.1.1

Сканировать сервер по Имени Хоста:

$ nmap server.shellhacks.com

Увеличить Уровень Детализации результатов сканирования:

$ nmap -v server.shellhacks.com
$ nmap -vv server.shellhacks.com

2. Сканирование Множества IP Адресов

Сканировать Множество IP Адресов:

$ nmap 192.168.1.1 192.168.1.2 192.168.1.3
$ namp 192.168.1.1,2,3

Сканировать Подсеть:

$ nmap 192.168.1.0/24
$ nmap 192.168.1.*

Сканировать Диапазон IP Адресов (192.168.1.0 — 192.168.1.200):

$ nmap 192.168.1.0-200

3. Поиск Активных Компьютеров в Сети

Сканировать сеть в поиске Активных Хостов:

$ nmap -sn 192.168.1.0/24

4. Сканирование Списка Хостов из Файла

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

$ nmap -iL input.txt

Формат файла:

# Записи могут быть представлены в любом из форматов, с которыми работает
# Nmap из командной строки (IP адреса, имена хостов, CIDR, IPv6, или октетные
# диапазоны). Записи должны разделятся одним или более пробелами, табуляциями
# или переходами на новую строку.

$ cat input.txt
server.shellhacks.com
192.168.1.0/24
192.168.2.1,2,3
192.168.3.0-200

5. Исключение IP/Хостов/Сетей из Сканирования

Исключить Цели из сканирования Nmap-ом:

$ nmap 192.168.1.0/24 --exclude 192.168.1.1
$ nmap 192.168.1.0/24 --exclude 192.168.1.1 192.168.1.5
$ nmap 192.168.1.0/24 --exclude 192.168.1.1,2,3

Исключить Список хостов, взятых из файла:

$ nmap 192.168.1.0/24 --excludefile exclude.txt

Формат файла с исключенными хостами аналогичен приведенному выше.

6. Сканирование Определенных Портов

Сканировать Один Порт:

$ nmap -p 80 192.168.1.1

Сканировать Несколько Портов:

$ nmap -p 80,443 192.168.1.1

Сканировать Диапазон Портов:

$ nmap -p 80-1000 192.168.1.1

Сканировать Все Порты:

$ nmap -p "*" 192.168.1.1

Сканировать несколько самых Распространенных Портов:

$ nmap --top-ports 5 192.168.1.1
$ nmap --top-ports 10 192.168.1.1

7. Определение Поддерживаемых IP Протоколов

Определить какие IP Протоколы (TCP, UDP, ICMP, и т.д.) поддерживает сканируемый хост:

$ nmap -sO 192.168.1.1

8. Сканирование TCP/UDP Портов

Сканировать все TCP Порты:

$ nmap -sT 192.168.1.1

Сканировать определенные TCP Порты:

$ nmap -p T:80 192.168.1.1

Сканировать все UDP Порты:

$ nmap -sU 192.168.1.1

Сканировать определенные UDP Порты:

$ nmap -p U:53 192.168.1.1

Объединение сканирования разных портов:

$ nmap -p U:53,79,113,T:21-25,80,443,8080 192.168.1.1

9. Быстрое Сканирование

Активировать Быстрый Режим сканирования:

$ nmap -F 192.168.1.1

Сканирует меньшее кол-во портов, чем при обыкновенном сканировании.

10. Показывать Причину Состояния Порта

Показать Причину, по которой Nmap считает что порт находится в определенном состоянии:

$ nmap --reason 192.168.1.1

11. Показывать Только Открытые Порты

Показать Только Открытые Порты (либо возможно открытые):

$ nmap --open 192.168.1.1

12. Определение ОС

Одна из наиболее известных функциональных возможностей Nmap — это удаленное определение ОС на основе анализа работы стека TCP/IP.

Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает ответы.

После проведения множества тестов, Nmap сравнивает результаты со своей базой данных и, при нахождении соответствий, выводит информацию об ОС.

Включить Определение ОС:

$ nmap -O 192.168.1.1

13. Определение Версии Сервисов

Включить Определение Версии Сервисов:

$ nmap -sV 192.168.1.1

Определяет версии программ, запущенных на удаленном сервере.

14. Обнаружение Фаервола

Узнать, защищен ли компьютер какими-либо Пакетными Фильтрами или Фаерволом:

$ nmap -sA 192.168.1.1

15. Подмена MAC Адреса

Подменить MAC Адреса:

$ nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1

Подменить MAC Адрес Случайным MAC-ом:

$ nmap --spoof-mac 0 192.168.1.1

16. Сканирование Фаервола на Уязвимости

Эти три типа сканирования используют незаметную лазейку в TCP RFC, чтобы разделять порты на открытые и закрытые.

Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт открыт.

Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться правильной.

TCP Null сканирование:

$ nmap -sN 192.168.1.1

Не устанавливаются никакие биты (Флагов в TCP заголовоке 0).

TCP Fin сканирование:

$ nmap -sF 192.168.1.1

Устанавливается только TCP FIN бит.

TCP Xmas сканирование:

$ nmap -sX 192.168.1.1

Устанавливаются FIN, PSH и URG флаги (пакет светится как новогодняя елка).

Хосты, использующие сетевой экран (firewall), могут не отвечать на стандартные ICMP пинги.

Попробуйте следующие методы обнаружения подключенных хостов, если фаервол блокирует стандартные ICMP пинги:

# TCP SYN Пинг
$ nmap -sn -PS 192.168.1.0/24

# TCP ACK Пинг
$ nmap -sn -PA 192.168.1.0/24

# UDP Пинг
$ nmap -sn -PU 192.168.1.0/24

# Пинг по IP Протоколу
$ nmap -sn -PO 192.168.1.0/24

# ARP Пинг
$ nmap -sn -PR 192.168.1.0/24

Последние три команды должны выполняться с правами пользователя root.

17. Скрытое Сканирование

TCP SYN сканирование:

$ nmap -sS 192.168.0.1

Известное как сканированием с использованием полуоткрытых соединений, так как не отрывает полных TCP соединений.

18. Отключение Обнаружения Хостов (No Ping)

Не пинговать хосты перед сканированием:

$ nmap -Pn 192.168.1.1

19. Отключение Использования DNS

Никогда не производить обратное преобразование DNS имен для каждого обнаруженного активного IP адреса:

$ nmap -n 192.168.1.1

20. Сохранение Результатов Сканирования Nmap в Файл

Сохранить результат сканирования Nmap в Текстовый Файл:

$ nmap 192.168.1.1 > output.txt
$ nmap -oN output.txt 192.168.1.1

Сохранить результат сканирования Nmap в XML Файл:

$ nmap -oX output.xml 192.168.1.1

Анонимное Сканирование Портов: Nmap + Tor + ProxyChains

Установка Tor + Nmap + ProxyChains

Для осуществления анонимного сканирования портов нам необходимо установить следующие программы:

ПрограммаОписание
torАнонимизирующая сеть для TCP
nmapСетевой сканер портов
proxychainsПеренаправляет соединения через прокси-сервера

Tor

Установите Tor клиент из стандартных репозиториев:

$ sudo apt-get install tor

Nmap

Установите Nmap:

$ sudo apt-get install nmap

ProxyChains

Установите ProxyChains:

$ sudo apt-get install proxychains

ProxyChains по умолчанию уже настроен на работу с Tor.

В этом можно убедиться заглянув в /etc/proxychains.conf.

Последние строки конфига должны выглядеть следующим образом:

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4 127.0.0.1 9050

Анонимное Сканирование Портов Через Tor

Выполните следующую команду для анонимного сканирования Nmap-ом через cеть Tor:

$ proxychains nmap -sT -PN -n -sV -p 80,443,21,22 217.xx.xx.xx
ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 6.00 ( http://nmap.org ) at 2014-03-24 17:34 EET
|S-chain|-<>-127.0.0.1:9050-<><>-217.xx.xx.xx:443-<><>-OK
|S-chain|-<>-127.0.0.1:9050-<><>-217.xx.xx.xx:21-<><>-OK
|S-chain|-<>-127.0.0.1:9050-<><>-217.xx.xx.xx:80-<><>-OK
|S-chain|-<>-127.0.0.1:9050-<><>-217.xx.xx.xx:22-<--denied

Nmap scan report for 217.xx.xx.xx
Host is up (0.14s latency).
PORT    STATE  SERVICE  VERSION
21/tcp  open   ftp      Pure-FTPd
22/tcp  closed ssh
80/tcp  open   http     Apache httpd 2.2.26 ((CentOS))
443/tcp open   ssl/http Apache httpd 2.2.26 ((CentOS))

В логах сканирования мы можем увидеть ‘цепочку’, которая идет от Tor-прокси (127.0.0.1:9050) к сканируемому хосту (217.xx.xx.xx).

Nmap через Tor: Обходим Блокировку Нод

Мы можем столкнуться с ситуацией когда сканирование не удается из-за того, что выходные ноды Tor-а попадают под блокировку (банятся сканируемым хостом).

Выходом из этой ситуации может быть добавление в ‘цепочку’ обыкновенного публичного прокси-сервера.

Это делается путем редактирования /etc/proxychains.conf и добавления новой записи в конце [ProxyList] (также убедитесь что опция random_chain отключена).

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4  127.0.0.1 9050
socks4 115.71.237.212 1080

Новая ‘цепочка’ идет через Tor-прокси (127.0.0.1:9050) к указанному нами публичному прокси-серверу (115.71.237.212:1080), а затем к сканируемому хосту (217.xx.xx.xx).

$ proxychains nmap -sT -PN -n -sV -p 21 217.xx.xx.xx
ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 6.00 ( http://nmap.org ) at 2014-03-25 11:05 EET
|S-chain|-<>-127.0.0.1:9050-<>-115.71.237.212:1080-<><>-217.xx.xx.xx:21-<><>-OK
|S-chain|-<>-127.0.0.1:9050-<>-115.71.237.212:1080-<><>-217.xx.xx.xx:21-<><>-OK
Nmap scan report for 217.xx.xx.xx
Host is up (1.2s latency).
PORT   STATE SERVICE VERSION
21/tcp open  ftp     Pure-FTPd

В примерах выше, я запускаю Nmap со следующими опциями:

ОпцияОписание
-sTполное TCP сканирование
-PNпропустить обнаружение хостов
-nникогда не резолвить DNS (во избежание утечки через DNS)
-sVопределять версию сервиса
-pкакие порты сканировать

Сканирование через Tor очень медленное. Поэтому, в примерах выше, я сканировал только определенные порты.

Списки Бесплатных Публичных Прокси-Серверов

Даже если Вы используете прокси, все Ваши DNS запроси все равно направляются на DNS сервера Вашего Интернет-Провайдера.

Во избежание утечек через DNS, используйте команду tor-resolve, для преобразования имени хоста в IP-адрес, через сеть Tor:

$ tor-resolve google.com
173.194.34.174