NMAP
Open source приложение для сканирования сети.
Общие флаги
| nmap -e eth2 scanme.nmap.org | Конкретный интерфейс |
| nmap -A <target> | Агрессивный режим (объединение режимов определения версии ОС, версий сервисов, скрипт сканирования, трассировки) |
| -n | отключить обратное разрешение IP в DNS |
| --data-length <length> | Добавка случайных байтов информации к каждому пакету |
| 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 | Исключение адресов из файла |
| --randomize-hosts | перемешивание последовательности узлов |
| nmap -iR 100 |
100 случайных адресов -iR 0 это все адреса. |
| http-max-cache-size=0 |
Отключение кэша (по умолчанию включен) |
| -sL |
имя сетевого узла |
Таймауты
| --max-rtt-timeout |
Максимальное время ожидания ответа. По умолчанию несколько секунд.
|
| --host-timeout | Ограничение времени сканирования всего хоста.
|
| --max-retries | Максимальное количество повторных попыток.
|
| -T4 | Время задержки (ожидания) между запросами, 0 - очень много, 3 - по умолчанию, 5 - очень быстро |
Поиск хостов
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 | Брутфорс по доменным именам |
| -sW | Похож на ACK, определяет статус порта анализируя поле TCP Window в RST ответе. Открытые больше 0, закрытые - 0. |
| -sI |
Сканирование от лица другого узла. Старые системы увеличивают IP-ID на 1 с каждым новым исходящим пакетом. Это ключевая уязвимость. Хост должен мало использоваться и иметь предсказуемый IP-ID.
Процесс сканирования одного порта:
Чтобы отличить открытый порт от закрытого, сканер анализирует, на какой именно пакет отреагировал "зомби".
Причины использования: анонимность и обход правил фильтрации (если "зомби" доверенный)
Поиск зомби:
Скрипт ipidseq.
По умолчанию 6 пакетов. Параметр --script-args ipidseq.probes=10 улучшает качество проверки.
Результат:
Проверил роутеры DIR-650 и ASUS RT-N18U. На первом Incremental, на втором - All zeros. Пакеты, идущие сквозь, не влияют. При сканировании на целевом хосте в качестве порта источника видится http или https порт зомби.
|
| -sn --script broadcast-ping 192.168.0.1/24 |
Броадкастовый пинг. Отправляется броадкастовый запрос и ждем результат. broadcast-ping.num_probes=5 количество пингов
broadcast-ping.timeout=10000 таймаут broadcast-ping.interface=wlan3 интерфейс --script-args=newtargets позволяет просканировать хосты, от которых получен ответ --script-args max-newtargets=3 ограничивает кол-во сканируемых хостов |
| nmap --script broadcast |
Запускает все скрипты категории broadcast |
Можно комбинировать технологии
nmap -sn --send-ip -PS21,22,23,25,80,445,443,3389,8080 -PA80,443,8080 -PO1,2,4,6 -PU631,16
Эффективность технологий сканирования (оригинал)
Интересная статья. Проба эффективности различных комбинаций технологий на основании 1000 случайных сетей. Был сформирован список и приведены результаты различных технологий и комбинаций с процентом результативности. 100% результат - найденные любой технологией хосты. А затем - поиск комбинации технологий с наибольшим процентом попадания и времени на каждую вариацию.
Вывод, который я для себя сделал на основе данных:
- Стартовый поиск адресов и портов важная процедура. Однако только один из компонентов.
- Психология и поставленные задачи критичны. Направленные и ненаправленные взломы происходят по разным алгоритмам.
- Ненаправленные взломы были, есть и будут. Оно дает шум в логах, за которым может прятаться направленный хакер.
- Время жизни важно. Сервис "на месяц" отличается от "на год".
- Одна технология дает в лучшем случае 50-60% результат. Однако непопулярные технологии могут показать защищенные от явного сканирования хосты, хотя не справиться с простыми. Поэтому либо тьма времени + высокая вероятность обнаружения, либо результат в 70-80 процентов.
- Эти данные масштабного сканирования. Эффективность от затраченного времени растет нелинейно. В районе 90% каждый дополнительный процент стоит дней.
- В случае направленного теста каждый фактор, предоставляющий дополнительную информацию (например ОС, возможные сервисы, ожидаемая степень защиты) увеличивает шансы и скорость. Возможно, нужен некий справочник/сервис, агрегирующий данные по удачным вариантам в зависимости от дополнительных условий.
- Нестандартные порты рулят, но их нужно правильно прятать. Это ограничивает ненаправленных хакеров.
- Логирование + проактивная защита как минимум поможет увидеть попытки. Однако необходим баланс между стоимостью защиты (фильтрации) и ценностью информации
- Тупое сканирование будет незаметно только в системах с отсутствием защиты.
- Данные 2009 года, сейчас рулят облака и ситуация думаю слегка поменялась.
- Возможно общедоступные сервисы стоит выносить в отдельный пул
Открытые порты
Без параметров, только адрес. По умолчанию сканирует 1024 первых порта. Статусы портов:
| Open | Сервис доступен |
| Closed | Запросы были получены, но был сделан вывод, что на этом порту не запущена служба. |
| Filtered | Не было признаков того, что запросы были получены, и состояние не удалось установить. Это также указывает на то, что запросы отбрасываются в результате какой-либо фильтрации. |
| Unfiltered | Запросы были получены, но состояние не удалось установить. Это состояние возможно только при ACK сканировании. |
| 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 быстрее. Однако есть еще способы сканирования портов.
Диапазоны портов:
| --top-ports N | Заданное количество портов по рейтингу популярности. |
| 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 запуск сканирования из браузера
No comments to display
No comments to display