V-zlom.ru » Kali Linux » Что такое сканер NMAP

Что такое сканер NMAP

Всем привет. Разбирался со всей мощью такого сканера, как nmap и решил написать несколько строк о нем.

Статья https://nmap.org/book/man.html из разряда бесполезных и не очень, но в целом выйдет небольшой И НЕ ПОЛНЫЙ мануальчик.

 

 

Как читать?

Новичкам взглянуть по первому абзацу, а потом обращаться при практике.

Опытным можно пробежаться в скольз по интересующим разделам.

Совсем опытным сразу в конец.

 

Для начала рассмотрим в каких форматах можно задавать цели.

 

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.101.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- -sIwww.proxy.ruwww.hack.com

 

nmap -b <имя_пользователя>:<пароль>@<сервер>:<порт> - Сканирование портов, используя протокол FTP. Минусы: почти не осталось FTP серверов поддерживающих FTP bounce. Плюсы: Обход брандмауэра.

 

nmap --allports смотреть все порты (по умолчанию nmap пропускает некоторые порты, например, 9100)

 

nmap -sV - определение версий и служб на открытых портах. Сервисы хранятся в базе данных nmap <nmap-services>.

 

nmap -A - Что описано выше, но плюс обнаружение версии ОС

 

nmap --version-intensity от 1 до 9 - всё просто, чем ниже уровень, тем быстрее, но тем меньше вероятность правильного обнаружения Пример: nmap --version-intensity 9 <target>

 

nmap --version-light как (nmap --version- intensity 2 <target>)

 

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 <target>

 

1)auth сценарии для обнаружения учетных данных или обход авторизации

Перебор пользователей веб сервера с включенным модулем mod_userdir

nmap -sV --script=http-userdir-enum <host>

 

2) broadcast - здесь различные приемы обнаружения хостов.

Пример:

Обнаружение хостов с помощью DNS Service Discovery протокола

nmap --script=broadcast-dns-service-discovery

 

3) brute - очевидно по названию

Пример: nmap --script http-form-brute -p 80 <host> Брутит форму по указанному адресу.

 

4) default - здесь собранные различные скрипты

Попробуем прочекать наш хост на гит репозиторий

nmap --script=http-git <target>

 

5) discovery - различные скрипты для сбора информации

nmap --script dns-brute www.foo.com

Найдет домены и субдомены данного хоста

 

6) dos - Очевидно проверка на dos уязвимости

nmap --script http-slowloris --max-parallelism 400 <target>

Тестирует сервер на Slowloris DoS

 

7) exploit советую её поизучать по подробней , например как можно создать бэкдор в proftpd 1.3.3c

nmap --script ftp-proftpd-backdoor -p 21 <host>

 

8) external - использует внешние ресурсы для сканирования.

Например посмотреть по хэшсумме какой то файл на вирус тотал (никогда не заливайте туда свои малвари)

nmap --script http-virustotal --script-args='http-virustotal.apikey="<key>",http-virustotal.checksum="275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f"'

 

9) fuzzer - как видно из названия здесь краулеры и чекеры на различные клевые штуки

Пример. соберем php файлы и прочекаем их на XSS

nmap --script=http-phpself-xss -p80 <target>

 

10) intrusive - здесь самые "шумящие" сценарии из всех категорий;

 

11) malware - эти сценарии для нахождения вредносов или бэкдоров;

 

12) safe противоположное intrusive - самые тихие сценарии

 

13) vuln сценарии определяют некоторые уязвимости

 

Пример:

nmap --script ftp-vuln-cve2010-4221 -p 21 <host>

 

Вывод:

 

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 address> — использование чужого IP-адреса в посылаемых компьютеру пакетах. В этом случае сервер вернет ответ по указанному адресу;

 

-e <interface> — применение только определенного сетевого интерфейса, например, Nmap –e eth0;

 

-v; -d [level] — вывод текущего состояния сканирования в режиме онлайн. Директива -d включает режим debug, где показывается вся возможная информация о текущем состоянии работы, а также ошибки и их коды;

 

-g <port> (альтернатива --source-port <port>) — позволяет выбрать порт-источник, с которого будут посылаться пакеты при сканировании;

 

-data-length <number> — дает возможность задать размер пакета в байтах. По умолчанию используются значения 40 и 28 для TCP- и ICMP-запросов соответственно;

 

-ttl <value> — позволяет задать время для IP-пакета в поле time-to-live;

 

-spoof-mac <mac address, prefix, or vendor name> — позволяет задать другой 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 <путь/URL> Устанавливает XSL таблицу стилей для преобразования XML вывода в HTML

 

--webxml Загружает таблицу стилей с Nmap.Org

 

Пожалуй, на этом всё. Постарался не тупо переписывать вкратце мануал, а дать оценку тем или иным методам, в каких ситуациях что было бы интереснее. Любая адекватная критика есть гуд. Всем спасибо. ;)

  • Автор: makar
  • Комментарии: 0
  • Просмотры: 1262
2

Добавить комментарий

Вы не авторизованы и вам запрещено писать комментарии. Для расширенных возможностей зарегистрируйтесь!