Сканирование сети с помощью nmap

Завершён перевод документации по опциям Nmap

В системах Linux документацию по Nmap можно посмотреть командой:

man nmap

Там содержится полный перечень опций с их подробным описанием, причём на русском языке.

Но проблема в том, что русскоязычный вариант не обновлялся как минимум 10 лет!

В 2016 было решено актуализировать русскоязычную справку по опциям Nmap на странице . За основу была взята актуальная справка на английском. Была сделана сверка с русской версией и она использовалась для уже переведённых фрагментов.

Был начат перевод отсутствующих в русской версии фрагментов, одновременно отслеживался чейнджлог Nmap для добавления информации о новых опциях.

В результате:

— по сравнению с оригинальной русской версией дополнена информация по уже присутствующим опциям

— добавлены новые опции с описанием, которые полностью отсутствуют в русскоязычной справке, в частности:

  • —discovery-ignore-rst
  • —defeat-icmp-ratelimit
  • —resolve-all
  • —script-timeout
  • —data
  • —data-string
  • —exclude-ports
  • —disable-arp-ping
  • —nsock-engine
  • —script-args-file

Теперь полную, актуальную справку по опциям Nmap на русском языке вы можете прочитать на странице:

7. Сбор названий (title) веб-страниц

Не составит большого труда узнать названия веб-страницы с веб-сервера, скрипт http-title просто облегчает задачу по сбору имён в один набор с диапазона IP адресов.

Имея в результатах сканирования Nmap заголовок страницы, можно лучше понять контекст хоста, это может помочь идентифицировать главную цель веб-сервера и определить, является ли сервер потенциальной целью для атак.

Вот пример сканирования по подсети с VPS:

sudo nmap --script "http-title" -sV -p 80 185.117.153.0/24

Результатов очень много, к сожалению, не-латинские символы выводятся в формате \xXX, т. е. мы видим что-то вроде:

\xD0\xA5\xD0\xBE\xD1\x81\xD1\x82\xD0\xB8\xD0\xBD\xD0\xB3 \xD0\xB8\xD0\xB3\xD1\x80\xD0\xBE\xD0\xB2\xD1\x8B\xD1\x85 \xD1\x81\xD0\xB5\xD1\x80\xD0\xB2\xD0\xB5\xD1\x80\xD0\xBE\xD0\xB2

Это не является серьёзной проблемой. Вариантов постобработки достаточно, например, можно сделать так:

echo -e "$(sudo nmap --script "http-title" -sV -p 80 185.117.153.0/24)"

Пример вывода:

….................................
….................................
Nmap scan report for madecoffee.in (185.117.153.9)
Host is up (0.018s latency).
PORT   STATE SERVICE VERSION
80/tcp open  http    nginx
|_http-server-header: nginx
|_http-title: КОФЕ*IN | Кофейня | Волгодонск — Е...

Nmap scan report for alecs7910.myihor.ru (185.117.153.10)
Host is up (0.018s latency).
PORT   STATE  SERVICE VERSION
80/tcp closed http

Nmap scan report for lifemedia18.ru (185.117.153.11)
Host is up (0.018s latency).
PORT   STATE SERVICE VERSION
80/tcp open  http    nginx 1.10.2
|_http-server-header: nginx/1.10.2
|_http-title: LifeMedia18.ru | Издательство "Лайф-Медиа"

Nmap scan report for gdepokupatt.com (185.117.153.13)
Host is up (0.018s latency).
PORT   STATE SERVICE VERSION
80/tcp open  http    nginx 1.8.0
|_http-server-header: nginx/1.8.0
|_http-title: Поиск по интернет магазинам

Nmap scan report for trapeznikoff.myihor.ru (185.117.153.14)
Host is up (0.018s latency).
PORT   STATE  SERVICE VERSION
80/tcp closed http

Nmap scan report for airomart.ru (185.117.153.15)
Host is up (0.018s latency).
PORT   STATE SERVICE VERSION
80/tcp open  http    nginx
|_http-server-header: nginx
|_http-title: Автоаксессуары для автомобилей - A...

Nmap scan report for ns1.photodns.com (185.117.153.16)
Host is up (0.018s latency).
PORT   STATE    SERVICE VERSION
80/tcp filtered http

Nmap scan report for free.marosnet.net (185.117.153.17)
Host is up (0.018s latency).
PORT   STATE SERVICE VERSION
80/tcp open  http    nginx
|_http-server-header: nginx
|_http-title: 502 Bad Gateway

Nmap scan report for autosecurity.ru (185.117.153.18)
Host is up (0.018s latency).
PORT   STATE SERVICE VERSION
80/tcp open  http    nginx 1.6.2
|_http-server-header: nginx/1.6.2
| http-title: Услуги автотехцентра в Москве, пр�...
|_Requested resource was http://www.autosecurity.ru/

Nmap scan report for fastread.club (185.117.153.19)
Host is up (0.018s latency).
PORT   STATE SERVICE VERSION
80/tcp open  http?
|_http-title: fastread.club

Nmap scan report for q.temaremonta.ru (185.117.153.21)
Host is up (0.018s latency).
PORT   STATE SERVICE VERSION
80/tcp open  http    nginx
|_http-server-header: nginx
|_http-title: Пчеловодство.РУ - пчеловодство в Р...

….................................
….................................

Увеличение многословия

При запуске любого сканирования через Nmap вам может потребоваться дополнительная информация. Ввод подробной команды -v предоставит вам дополнительную информацию о том, что делает Nmap. На Nmap доступно девять уровней многословия, от -4 до 4:

  • Уровень -4 — Не выводит (например, вы не увидите ответные пакеты)
  • Уровень 3 — Аналогично -4, но также предоставляет вам сообщения об ошибках, чтобы показать вам, если команда Nmap не удалась
  • Уровень 2 — Есть ли выше, но также есть предупреждения и дополнительные сообщения об ошибках
  • 1-й уровень — Показывает информацию во время выполнения, такую ​​как версия, время запуска и статистика
  • Уровень 0 — Уровень детализации по умолчанию, который отображает отправленные и полученные пакеты, а также другую информацию
  • 1-й уровень — То же, что уровень 0, но также предоставляет подробную информацию о деталях протокола, флагах и времени.
  • Уровень 2 — Показывает более обширную информацию об отправленных и полученных пакетах
  • Уровень 3 — Показать полную необработанную передачу отправленного и полученного пакета
  • Уровень 4 — То же, что 3-й уровень с дополнительной информацией

Увеличение детализации отлично подходит для поиска способов оптимизации ваших сканов. Вы увеличиваете объем информации, к которой имеете доступ, и предоставляете себе больше информации для целенаправленного улучшения своей сетевой инфраструктуры..

Nmap NSE: что это такое и для чего

Поисковая система Nmap или также известная как Nmap NSE — это большая база данных с тысячами скриптов, которые позволят нам автоматизировать пентестинг в системах и сетях. Этот набор скриптов позволит нам автоматизировать многие действия, такие как проведение атак методом грубой силы на серверы Samba, FTP-серверы, SSH-серверы, проверка наличия известной уязвимости на веб-сервере и многое другое.

Например, если мы хотим провести атаку методом грубой силы на основе списка пользователей (с файлом с именем users.txt) и списка паролей для тестирования (с файлом с именем keys.txt) на SSH-сервер определенный компьютер с IP 99.99.99.99, мы можем ввести следующую команду:

Настройка PostgreSQL

  1. Установка и запуск. PostgreSQL должен быть в репозиториях (если нет — качаем и устанавливаем по инструкциям):
    • Проверим состояние сервиса:
    • Если сервис не запущен:
  2. Добавим Linux-пользователя. Пусть у нас будет postgresql:qwerty. Последовательность действий:
    • (попросит ввод пароля, вводим qwerty)
  3. Далее подключимся к базе данных и добавим пользователя postgresql:
$ su - postgres
$ psql template1
template1=# CREATE USER postgresql WITH PASSWORD ‘qwerty’;
template1=# CREATE DATABASE test_db;
template1=# GRANT ALL PRIVILEGES ON DATABASE test_db to postgresql;
template1=# q

Теперь сервис запущен и настроен и мы добавили юзера с логином и паролем.

Описание

Nmap использует множество различных методов сканирования, таких как UDP, TCP (connect), TCP SYN (полуоткрытое), FTP-proxy (прорыв через ftp), Reverse-ident, ICMP(ping), FIN, ACK, Xmas tree, SYN- и NULL-сканирование. Nmap также поддерживает большой набор дополнительных возможностей, а именно: определение операционной системы удалённого хоста с использованием отпечатков стека TCP/IP, «невидимое» сканирование, динамическое вычисление времени задержки и повтор передачи пакетов, параллельное сканирование, определение неактивных хостов методом параллельного ping-опроса, сканирование с использованием ложных хостов, определение наличия пакетных фильтров, прямое (без использования portmapper) RPC-сканирование, сканирование с использованием IP-фрагментации, а также произвольное указание IP-адресов и номеров портов сканируемых сетей.
В последних версиях добавлена возможность написания произвольных сценариев (скриптов) на языке программирования Lua.
Существуют графические интерфейсы, упрощающие выполнение задач сканирования:

  • Nmap Front End (Qt);
  • zenmap (GTK, Linux).

Особенности

Функции Nmap включают:

  1. Обнаружение сети и узлов в сети. Например, перечисление узлов, которые отвечают на запросы TCP (Transmission Control Protocol) и/или ICMP (Internet Control Messaging Protocol) или имеют определенный открытый порт.
  2. Сканирование портов, перечисление открытых портов на целевых узлах.
  3. Обнаружение версий, опрос сетевых служб на удаленных устройствах для определения имени приложения и номера его версии.
  4. Обнаружение ОС, определение операционной системы и аппаратных характеристик сетевых устройств.
  5. Взаимодействие с целевой программой с помощью Nmap Scripting Engine (NSE) и языка программированияLua.
  6. Nmap может предоставить дополнительную информацию о целевых объектах, включая обратные DNS-имена, типы устройств и MAC-адреса.

Типичные области применения:

  1. Аудит безопасности устройства или брандмауэра путем определения сетевых подключений, которые могут быть сделаны, или через него.
  2. Определение открытых портов на целевом узле при подготовке к аудиту.
  3. Инвентаризация сети, составление карты сети (картирование сети), обслуживание и управление активами.
  4. Аудит безопасности сети путем выявления новых серверов.
  5. Создание трафика для хостов в сети, анализ ответов и измерение времени отклика.
  6. Поиск и использование уязвимостей в сети.

Графический интерфейс

Программное обеспечение предоставляет ряд функций для проверки компьютерных сетей, включая обнаружение хостов и сервис обнаружения операционных систем. Эти функции расширяются скриптами, обеспечивающими более совершенное обнаружение службы, обнаружение уязвимостей, и другими функциями. Nmap может адаптироваться к условиям сети, включая задержки и перегрузки во время сканирования. Сообщество пользователей Nmap продолжает разрабатывать и совершенствовать этот инструмент.

Netcat как простой веб-сервер

Утилита netcat уже была использована для передачи сообщений и файлов.

Этот же подход
поможет использовать netcat как простой веб-сервер. Это может пригодиться для тестирования готовых страниц.

Для начала нужно создать HTML-файл на одном сервере:

touch index.html

vi index.html

В данном файле можно разместить следующий простой код:

Сохраните и закройте файл.

Данный файл нельзя обслуживать на порту веб-сервера по умолчанию (80) без привилегий root.
Потому как обычный пользователь установите порт 8888.

Чтобы протестировать одну страницу и проверить, как она отображается, наберите что-то вроде:

netcat -l 8888 < index.html

Теперь контент можно просмотреть в браузере, посетив:

Эта команда выведет страницу, после чего соединение netcat закроется. При попытке
обновить страницу она исчезнет.

Netcat может обслуживать страницу на продолжении неопределенного срока; для этого
нужно сделать последнюю команду цикличной при помощи строки:

while true; do nc -l 8888 < index.html; done

Тогда страница будет продолжать получать соединения после того, как первое соединение
было прекращено.

Чтобы остановить цикл, наберите CTRL-C.

Этот сервер позволит увидеть, как страница отображается в браузере, но не предоставляет более широкой
функциональности
. Никогда не используйте такой веб-сервер для обслуживания реальных сайтов: он небезопасен, кроме того, такие
простые вещи, как ссылки, не всегда работают правильно.

Подключение библиотек

Отвлечемся на секунду от структуры скрипта и рассмотрим, как происходит подключение внешних библиотек, к функциональности которых нам потребуется обращаться.

Как и в любом языке, для того чтобы использовать переменные, нужно их сначала объявить и проинициализировать. В Lua все просто: все переменные объявляются через :

local <имя_переменной>

Но прежде всего нам необходимо подключить библиотеки. В Lua такая возможность реализуется с помощью ключевого слова . Добавим в самое начало нашего скрипта:

local nmap = require "nmap"
local shortport = require "shortport"
local stdnse = require "stdnse"
local string = require "string"
local table = require "table"
local tab = require "tab"

Таким образом мы подключили следующие библиотеки:

  • — библиотека NSE, содержит внешние функции и структуры данных Nmap;
  • — библиотека NSE, содержит функции для указания сервисов, портов и так далее, для которых будет запускаться скрипт;
  • — библиотека NSE, содержит стандартные NSE-функции;
  • — библиотека Lua, содержит функции для работы со строками;
  • — библиотека Lua для создания и модификации таблиц (ассоциативных массивов);
  • — библиотека NSE для работы с таблицей Nmap для вывода результата.

Обращаясь к этим глобальным переменным, мы будем иметь доступ к функциональности библиотек.

Использование Netcat для сканирования портов

Чаще всего netcat используют как сканер портов.

Хотя Netcat, вероятно, не самый умный инструмент для выполнения этой задачи
(в большинстве случаев для этого больше подойдет nmap), он может выполнять
простое сканирование портов, чтобы быстро определить открытые порты.

Для этого укажите диапазон портов для сканирования (как показано выше),
а также используйте опцию -z, которая выполняет сканирование вместо установления соединений.

К примеру, чтобы просканировать все порты до порта 1000, выполните:

netcat -z -v domain.com 1-1000

Просканировать все порты от порта 4847 до порта 4899 и вывести
результат в файл ports.txt

nc -z -v domain.com 4847-4899 > ports.txt 2>&1

Как видите, кроме опции -z в данной команде использована опция -v, благодаря которой
netcat выводит более подробную информацию.

Результат имеет такой вид:

nc: connect to domain.com port 1 (tcp) failed: Connection refused
nc: connect to domain.com port 2 (tcp) failed: Connection refused
nc: connect to domain.com port 3 (tcp) failed: Connection refused
nc: connect to domain.com port 4 (tcp) failed: Connection refused
nc: connect to domain.com port 5 (tcp) failed: Connection refused
nc: connect to domain.com port 6 (tcp) failed: Connection refused
nc: connect to domain.com port 7 (tcp) failed: Connection refused

Connection to domain.com 22 port [tcp/ssh] succeeded!

Как видите, эта команда выводит достаточно подробный результат, а также сообщает, было ли сканирование
каждого отдельного порта успешным или нет.

Это удобно при использовании доменного имени.

Тем не менее, указывая нужные IP-адреса, можно значительно ускорить сканирование.
Затем можно использовать флаг -n, чтобы указать, что не нужно разрешать IP-адрес с помощью DNS:

netcat -z -n -v 111.111.111.111 1-1000

Возвращаемые сообщения отправляются в стандартный поток ошибок. Сообщения о стандартных ошибках можно
отправлять в стандартный вывод, чтобы фильтровать результаты.

Для перенаправления стандартной ошибки в стандартный вывод используется bash-синтаксис 2>&1;
полученные результаты фильтруются с помощью grep:

netcat -z -n -v 111.111.111.111 1-1000 2>&1 | grep succeeded
Connection to 111.111.111.111 22 port [tcp/*] succeeded!

Итак, теперь можно видеть, что единственный открытый порт на удаленной машине в диапазоне 1-1000 —
это порт 22, стандартный порт SSH.

Просканируем порты 4847-4899 и сохраним только успешные результаты в файл openports.txt

nc -z -v askqa.ru 4847-4899 2>&1 | grep succeeded > openports.txt

Общий синтаксис

По умолчанию netcat работает путем инициации соединения TCP с удаленным хостом.

Базовый синтаксис:

netcat хост порт

Такая команда инициирует TCP-соединение с указанным хостом через заданный порт.

В основном, она функционирует аналогично старой команде Linux — telnet.
Имейте в виду, что ваше соединение будет установлено в незашифрованном виде.

Чтобы вместо установления TCP-соединения отправить UDP-пакет,
используйте опцию -u:

netcat -u хост порт

Чтобы задать диапазон портов, укажите первый и последний порт диапазона через тире:

netcat хост первый_порт-последний_порт

Обычно данная команда используется с дополнительными флагами.

На большинстве систем можно использовать netcat или nc. Они взаимозаменяемы, поскольку
являются псевдонимами для одной команды.

Еще о технике предсказания IPID

В этой статье описано использование техники IdleScan для сканирования портов. Тем не менее, существует множество других вещей, где можно использовать эту технику. Вот лишь некоторые из них:

Анализ трафика. Последовательные значения IPID определяют число пакетов, отправленных хостом за данный период времени. Таким образом, IPID может использоваться для вычисления веб-трафика и т.д.

Определение алиасов хоста. Иногда один хост имеет несколько IP-адресов или сетевых интерфейсов. Вы можете определить, какой IP-адрес соответствует данному хосту путем поиска идентичных значений IPID.

Демультиплексирование балансирующего канального оборудования. Это почти что реверсивная к IdleScan техника. Большие сайты часто используют оборудование балансировки загрузки, так что один адрес соответствует небольшому числу серверов. При помощи IPID Вы можете определить, сколько машин входят в группу балансировки и к какой из них Вы подключены. Например, поле ID в следующем листинге программы hping2 отчетливо показывает, что beta.search.microsoft.com поддерживается двумя машинами под балансировщиком (207.46.197.115):

# hping2 -c 10 -i 1 -p 80 -S beta.search.microsoft.com.
HPING beta.search.microsoft.com. (eth0 207.46.197.115): S set, 40 headers + 0 data bytes
46 bytes from 207.46.197.115: flags=SA seq=0 ttl=56 id=57645 win=16616 rtt=21.2 ms
46 bytes from 207.46.197.115: flags=SA seq=1 ttl=56 id=57650 win=16616 rtt=21.4 ms
46 bytes from 207.46.197.115: flags=RA seq=2 ttl=56 id=18574 win=0 rtt=21.3 ms
46 bytes from 207.46.197.115: flags=RA seq=3 ttl=56 id=18587 win=0 rtt=21.1 ms
46 bytes from 207.46.197.115: flags=RA seq=4 ttl=56 id=18588 win=0 rtt=21.2 ms
46 bytes from 207.46.197.115: flags=SA seq=5 ttl=56 id=57741 win=16616 rtt=21.2 ms
46 bytes from 207.46.197.115: flags=RA seq=6 ttl=56 id=18589 win=0 rtt=21.2 ms
46 bytes from 207.46.197.115: flags=SA seq=7 ttl=56 id=57742 win=16616 rtt=21.7 ms
46 bytes from 207.46.197.115: flags=SA seq=8 ttl=56 id=57743 win=16616 rtt=21.6 ms
46 bytes from 207.46.197.115: flags=SA seq=9 ttl=56 id=57744 win=16616 rtt=21.3 ms

— beta.search.microsoft.com. hping statistic —
10 packets tramitted, 10 packets received, 0% packet loss
round-trip min/avg/max = 21.1/21.3/21.7 ms

Определение ОС. Как уже говорилось ранее, операционные системы совершенно по-разному генерируют последовательность IPID. Nmap использует эту информацию для определения, какая из версий ОС работает на сканируемой машине. Детальное описание приведено здесь.

Определение правил файрволла. IPID может оказать существенную помощь в определении набора правил файрволла. Вот простой пример:

  1. Получаем IPID «жертвы», находящейся под защитой файрволла.
  2. Отправляем PING-пакет «от хоста» той же сети на эту же «жертву».
  3. Снова проверяем IPID. Если увеличился на 2 (один для ответа на PING и один для второго теста IPID), наш поддельный PING благополучно прошел. Внешний трафик может пересекаться с внутренним, однако повторное тестирование дает более точный результат.

Эта техника может быть расширена поистине до неограниченных пределов. Заметим, что все эти действия могут выполнены при помощи Hping.

Общение с помощью netcat

Команда netcat не ограничивается отправкой пакетов TCP и UDP. Она также может прослушивать порт

на соединения и пакеты, что дает возможность подключить два экземпляра netcat в отношении
«клиент-сервер».

Какой компьютер является сервером, а какой — клиентом,
существенно только во время
начальной настройки.

После того, как соединение установлено, связь одинакова в обоих направлениях.

На одной машине нужно сказать netcat прослушивать определенный порт на подключения. Это
делается с помощью параметра -l, после которого указывается номер порта:

netcat -l 4444

Выполнив эту команду, netcat прослушивает соединения TCP на порту 4444. Теперь обычный
пользователь (не root) не сможет открывать какие-либо порты до 1000 (для безопасности сервера).

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

netcat domain.com 4444

После установления соединения может показаться, что ничего не произошло. Но теперь можно
отправлять сообщения по обе стороны соединения и они будут видны на обоих серверах.

Введите сообщение и нажмите ENTER. Сообщение появится как на локальном, так и на
удаленном сервере. Это работает и в обратном направлении.

Завершив передачу сообщений, нажмите CTRL-D, чтобы прервать TCP-соединение.

3. Брутфорс DNS

Скрипт dns-brute пытается перечислить DNS имён хостов, делая запросы по распространённым поддоменам. Обнаружение поддоменов, связанных с доменом организации, во время оценки безопасности может раскрыть новые цели. Обнаруженные хосты могут быть виртуальными веб-хостами на одном веб-сервере или могут являться отдельными хостами на своих собственных IP адресах, разбросанными в мире по различным датацентрам.

Скрипт dns-brute найдёт действительные DNS (A) записи, перебирая список распространённых поддоменов и находя те, которые успешно преобразовываются.

sudo nmap -p 80 --script "dns-brute" digitalocean.com

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-23 10:25 MSK
Nmap scan report for digitalocean.com (104.16.77.125)
Host is up (0.017s latency).
Other addresses for digitalocean.com (not scanned): 104.16.78.125 104.16.79.125 104.16.80.125 104.16.81.125
PORT   STATE SERVICE
80/tcp open  http

Host script results:
| dns-brute: 
|   DNS Brute-force hostnames: 
|     info.digitalocean.com - 192.28.144.201
|     news.digitalocean.com - 192.28.144.201
|     ns1.digitalocean.com - 173.245.58.51
|     ns1.digitalocean.com - 2400:cb00:2049:1:0:0:adf5:3a33
|     ns2.digitalocean.com - 173.245.59.41
|     ns2.digitalocean.com - 2400:cb00:2049:1:0:0:adf5:3b29
|     ns3.digitalocean.com - 198.41.222.173
|     ns3.digitalocean.com - 2400:cb00:2049:1:0:0:c629:dead
|     beta.digitalocean.com - 104.16.79.125
|     beta.digitalocean.com - 104.16.77.125
|     beta.digitalocean.com - 104.16.78.125
|     beta.digitalocean.com - 104.16.81.125
|     beta.digitalocean.com - 104.16.80.125
|     blog.digitalocean.com - 104.16.79.125
|     blog.digitalocean.com - 104.16.80.125
|     blog.digitalocean.com - 104.16.81.125
|     blog.digitalocean.com - 104.16.78.125
|     blog.digitalocean.com - 104.16.77.125
|     mail.digitalocean.com - 69.55.54.152
|     www.digitalocean.com - 104.16.25.4
|     www.digitalocean.com - 104.16.24.4
|_    stage.digitalocean.com - 198.211.104.187

Nmap done: 1 IP address (1 host up) scanned in 16.83 seconds

6. Поиск интересных файлов на веб-сервере (веб-сайте)

Это более агрессивный тест. Он пытается найти интересные файлы и каталоги на веб-сервере. Поскольку это осуществляется обычным перебором популярных названий, то он оставляет много следов в веб-логах сервера. Они выглядят как сообщения об ошибках при попытке доступа к несуществующим файлам и каталогам (HTTP 404 not found).

sudo nmap --script "http-enum" spryt.ru

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-23 11:18 MSK
Nmap scan report for spryt.ru (62.113.208.234)
Host is up (0.076s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
| http-enum: 
|   /wp-login.php: Possible admin folder
|   /robots.txt: Robots file
|   /phpinfo.php: Possible information file
|_  /phpmyadmin/: phpMyAdmin
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 192.82 seconds
$ sudo nmap --script "http-enum" alexblack.wtf

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-23 11:21 MSK

Ещё один пример, в нём видны как интересные результаты (директория с phpmyadmin, директории с листингами upload и news), так и ложные срабатывания (net является частью ЧПУ, а не реальной директорией):

sudo nmap --script "http-enum" prostolinux.ru

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-23 11:29 MSK
Nmap scan report for prostolinux.ru (185.58.207.192)
Host is up (0.021s latency).
Not shown: 989 closed ports
PORT     STATE    SERVICE
19/tcp   filtered chargen
22/tcp   open     ssh
25/tcp   open     smtp
53/tcp   open     domain
80/tcp   open     http
| http-enum: 
|   /login.php: Possible admin folder
|   /robots.txt: Robots file
|   /phpmyadmin/: phpMyAdmin
|   /0/: Potentially interesting folder
|   /foto/: Potentially interesting folder
|   /links/: Potentially interesting folder
|   /net/: Potentially interesting folder
|   /news/: Potentially interesting directory w/ listing on 'apache/2.4.10 (debian)'
|   /robot/: Potentially interesting folder
|   /upload/: Potentially interesting directory w/ listing on 'apache/2.4.10 (debian)'
|_  /win/: Potentially interesting folder
110/tcp  open     pop3
143/tcp  open     imap
465/tcp  open     smtps
587/tcp  open     submission
1500/tcp open     vlsi-lm
1900/tcp filtered upnp

Nmap done: 1 IP address (1 host up) scanned in 393.59 seconds

Скрипт имеет дополнительные опции:

http-enum.basepath. Указывает начальный (базовый) путь, от которого будет производиться сканирование.

sudo nmap --script "http-enum" --script-args http-enum.basepath='pub/' 192.168.10.55

Nmap scan report for xbmc (192.168.1.5)
Host is up (0.0012s latency).
PORT   STATE SERVICE
80/tcp open  http
| http-enum: 
|   /pub/: Root directory w/ listing on 'apache/2.2.22 (ubuntu)'
|   /pub/images/: Potentially interesting directory w/ listing on 'apache/2.2.22 (ubuntu)'
|_  /pub/js/: Potentially interesting directory w/ listing on 'apache/2.2.22 (ubuntu)'

Nmap done: 1 IP address (1 host up) scanned in 1.03 seconds
  • http-fingerprints.nikto-db-path. Берёт пути из баз данных nikto и добавляет их к текущим отпечаткам, если таких ещё нет. К сожалению, имеются некоторые ограничения, конвертация данных возможна не в полном объёме.
  • http-enum.displayall. Установите этот аргумент, если вы хотите чтобы отображались все коды статусов, которые могут говорить о действительной странице, а не только страницы 200 OK и 401 Authentication Required. Хотя это даёт дополнительные шансы найти скрытые каталоги, при этом генерируется больше ложных срабатываний.
  • http-enum.category. Установить категорию (как они указаны в файле отпечатков). Несколько вариантов ‘attacks’, ‘database’, ‘general’, ‘microsoft’, ‘printer’ и т.д.
  • http-enum.fingerprintfile. Указывает другой файл, из которого считывать отпечатки.
  • http.max-cache-size, http.max-pipeline, http.pipeline, http.useragent
  • smbdomain, smbhash, smbnoguest, smbpassword, smbtype, smbusername
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: