![]() |
Всем привет. Разбирался со всей мощью такого сканера, как nmap и решил написать несколько строк о нем.
Статьяhttps://nmap.org/book/man.html из разряда бесполезных и не очень, но в целом выйдет небольшой И НЕ ПОЛНЫЙ мануальчик. Полный же мануальчик (которым и не только которым я пользовался при написании этой статьи) можно глянуть здесь. EN RU Как читать? Новичкам взглянуть по первому абзацу, а потом обращаться при практике. Опытным можно пробежаться в скольз по интересующим разделам. Совсем опытным сразу в конец. Для начала рассмотрим в каких форматах можно задавать цели. nmap -iL nmap -iR 4 - где номер означает количество РАНДОМНЫХ хостов, то есть два раза выполнив эту команду выполнится сканирование разных хостов. Зачем? Можно поискать уязвимые хосты с помощью скриптов, или просто с открытым портом во всём интернете(Пример nmap -iR 100000 -PN -p 80). -PN опция очень удобная, когда сканируем два три порта у диапазона адресов. Отключает определение доступности хоста, т.е. мы не спрашиваем у хоста: «А доступен ли ты?» -, мы сразу спрашиваем: «А открыт ли у тебя такой порт?». nmap 192.168.101.1,192.168.101.2 nmap 192.168.1-101.1 Просканирует 192.168.2.1,192.168.3.1....192.168.100.1,192.168.1 01.1 nmap 192.168.1.1/24 по 24 маске 0.0.0.255 (Другие маски можно глянуть тут http://www.networkcenter.info/inform/netmask) nmap 192.168.0.101,102,103 Определение Хостов nmap -n -sL megahacker.ru - Быстрое определение хоста. Это штука ничего никуда не посылает, а просто выводит список всего того что ВЫ собирались сканировать. -sP - Ping запрос, спрашиваем, а работает вообще наш хост (Обратное Pn)? -PN - не определять хост на работоспособность (уменьшает время работы при сканировании 1 - 2 портов) --dns-servers- если надо можно задать собственные сервера (например если у Вас свой dnsсервер) Посмотрим на флаги -sS/sT/sA/sW/sM nmap -sSСТЕЛС - СКАНИРОВАНИЕ. Как видно из названия скрытое сканирование методом (TCP CYN). Отправляется SYN - пакет на нужный порт и анализируя пакет определяется его состояние. Наиболее быстрый и более незаметный поэтому на первом месте. nmap -sT - Бывают ситуации, когда полномочия суперпользователя отсутствуют обычное сканирование с помощью вызова функции системной функции connect. Менее приоритетный режим, работает дольше, так как устанавливается полное соединение, и даже простенькая IDS сможет его словить. nmap -sA Определение фильтрованныхине фильтрованных портов НО НЕ ОПРЕДЕЛЯЕТ НА ОТКРЫТЫЕ И ЗАКРЫТЫЕ. nmap–unprivileges/ privileges– считаем по дефолту что у нас нет/есть права root. nmap -sW – Windows сканирование. Тоже что и -sA, но в некоторых сборках может возвращать и открытые порты. nmap -sN; -sF; -sX (TCP NULL, FIN и Xmas сканирования) - Еще больше стелс чем SYN. Суть этих трех методов заключается в установке некоторых (или ничего не устанавливать) флагов. (с)Работает в режиме обнаружения портов, удобно использовать на UNIX системах, хотя есть и недостатки, неспособность разделять порты на открытые и фильтруемые. (с) И работать может не на всех системах. RFC 793 - наше всё nmap -sM тоже что и (TCP NULL, FIN и Xmas), с той лишь разницей что RST пакет тупо отбрасывается если порт закрыт. Нам это дает обход некоторых уникальных IDS. И может работать там, где не работает способ выше. Эти методы по сути проверяют фаервол на уязвимости nmap --scanflags URGACKPSHRSTSYNFIN – Устанавливать указанные флаги по стандарту RFC каждый из методов по-своему проверяет открытие закрытие порта. По сути это альтернатива некоторых других режимов, но так же и позволяет обойти IDS. nmap -sI- ещё один стел режим. Запросы идут с Вашей зомби машины. Пример: nmap -Pn -p- -sI www.proxy.ruwww.hack.com nmap -b :@: - Сканирование портов, используя протокол FTP. Минусы: почти не осталось FTP серверов поддерживающих FTP bounce. Плюсы: Обход брандмауэра. nmap --allports смотреть все порты (по умолчанию nmap пропускает некоторые порты, например, 9100) nmap -sV - определение версий и служб на открытых портах. Сервисы хранятся в базе данных nmap . nmap -A - Что описано выше, но плюс обнаружение версии ОС nmap --version-intensityот 1 до 9 - всё просто, чем ниже уровень, тем быстрее, но тем меньше вероятность правильного обнаружения Пример: nmap --version-intensity 9 nmap --version-lightкак (nmap --version- intensity 2 ) nmap --version-all как (nmap --version-intensit 9 host) nmap -O - определение ОС Итак, скрипты. Пожалуй, мы подошли к более-менее интересной части статьи. Мало для кого секрет что nmap не был бы таким мощным инструментом без поддержки nse сркиптов. Скрипты же эти разделяются на следующие категории: auth, default, discovery, external, fuzzer, intrusive, malware, safe, version, vuln …. Каждая категория определенный спектр. Рассмотрим их с примерами. (полный список скриптов здесь) Напоминаю запустить скрипты определённой категории можно так nmap --scripts=auth,default 1)auth сценарии для обнаружения учетных данных или обход авторизации Перебор пользователей веб сервера с включенным модулем mod_userdir nmap -sV --script=http-userdir-enum 2) broadcast- здесь различные приемы обнаружения хостов. Пример: Обнаружение хостов с помощью DNS Service Discovery протокола nmap --script=broadcast-dns-service-discovery 3) brute- очевидно по названию Пример: nmap --script http-form-brute -p 80 Брутит форму по указанному адресу. 4) default- здесь собранные различные скрипты Попробуем прочекать наш хост на гит репозиторий nmap --script=http-git 5) discovery -различные скрипты для сбора информации nmap --script dns-brute www.foo.com Найдет домены и субдомены данного хоста 6) dos- Очевидно проверка на dos уязвимости nmap --script http-slowloris --max-parallelism 400 Тестирует сервер на Slowloris DoS 7) exploit советую её поизучать по подробней , например как можно создать бэкдор в proftpd 1.3.3c nmap --script ftp-proftpd-backdoor -p 21 8) external- использует внешние ресурсы для сканирования. Например посмотреть по хэшсумме какой то файл на вирус тотал (никогда не заливайте туда свои малвари) nmap --script http-virustotal --script-args='http-virustotal.apikey="",http-virustotal.checksum="275a021bbfb6489e54d471899f7db 9d1663fc695ec2fe2a2c4538aabf651fd0f"' 9) fuzzer- как видно из названия здесь краулеры и чекеры на различные клевые штуки Пример. соберем php файлы и прочекаем их на XSS nmap --script=http-phpself-xss -p80 10) intrusive- здесь самые "шумящие" сценарии из всех категорий; 11) malware- эти сценарии для нахождения вредносов или бэкдоров; 12) safeпротивоположное intrusive - самые тихие сценарии 13) vulnсценарии определяют некоторые уязвимости Пример: nmap --script ftp-vuln-cve2010-4221 -p 21 Вывод: 1/tcp open ftp | ftp-vuln-cve2010-4221: | VULNERABLE: | ProFTPD server TELNET IAC stack overflow | State: VULNERABLE | IDs: CVE:CVE-2010-4221 BID:44562 OSVDB:68985 | Risk factor: High CVSSv2: 10.0 (HIGH) (AV:N/AC:L/Au:N/C:C/I:C/A:C) | Description: ..... Некоторые приколюшные опции не описанные ранее (ниже копипаст с nmap.org) --traceroute: Отслеживать путь к хосту --reason: Выводить причину нахождения порта в определенном состоянии -S — использование чужого IP-адреса в посылаемых компьютеру пакетах. В этом случае сервер вернет ответ по указанному адресу; -e — применение только определенного сетевого интерфейса, например, Nmap –e eth0; -v; -d [level] — вывод текущего состояния сканирования в режиме онлайн. Директива -d включает режим debug, где показывается вся возможная информация о текущем состоянии работы, а также ошибки и их коды; -g (альтернатива --source-port ) — позволяет выбрать порт-источник, с которого будут посылаться пакеты при сканировании; -data-length — дает возможность задать размер пакета в байтах. По умолчанию используются значения 40 и 28 для TCP- и ICMP-запросов соответственно; -ttl — позволяет задать время для IP-пакета в поле time-to-live; -spoof-mac — позволяет задать другой MAC-адрес (физический) для фреймов. Пример применения: Dlink, 0, 01:02:03:04:05:06; -badsum — посылает пакеты TCP и ICMP с искаженной проверочной суммой. Брандмауэры или системы безопасности, как правило, отвечают на такой пакет; -6 — использование сканирования для IPv6-сетей. В этом случае следует задать IPv6-адрес или название хоста; -log-errors — все ошибки записываются в лог-файл; -oN - Вывести в нормальном виде в файл -oX - Вывести в xml формате -oS - Формат называется ScriptKidd - Типа хакерский язык Пример: 139/Tcp F|LtEr3d NEtbIos-$$n Никакой пользы от него я не увидел. -oG - Grepable format как ясно из названия очень удобно искать утилитой grep --append-outputДобавлять в конец, а не перезаписывать выходные файлы --resume Продолжить прерванное сканирование одна из клевых штук по файлам --stylesheet Устанавливает XSL таблицу стилей для преобразования XML вывода в HTML --webxml Загружает таблицу стилей с Nmap.Org Пожалуй, на этом всё. Постарался не тупо переписывать вкратце мануал, а дать оценку тем или иным методам, в каких ситуациях что было бы интереснее. Любая адекватная критика есть гуд. Всем спасибо. |
| Время: 17:14 |