
Внимание!!!
В статье показано пошаговое решение модуля Network Enumeration with Nmap. Я настоятельно рекомендую сначала попробовать решить задачу самостоятельно, а в случае затруднений обратиться к подробному пошаговому руководству. Это позволит вам лучше понять процесс и развить собственные навыки. Также вы можете изучить различные подходы к решению и логику мышления.
Будем останавливаться на темах, в которых есть задачи и будем их решать.
Host Discovery
Задание:
На основе последнего результата выясните, к какой операционной системе он относится. Введите название операционной системы в качестве результата.

Решение:
При проведении ICMP-сканирования целевой узел возвращает пакеты с TTL=128. Учитывая, что:
Windows использует начальное значение TTL=128
Unix-системы обычно используют TTL=64
можно с высокой вероятностью предположить, что целевая система работает под управлением Windows.
Ответ: Windows
Host and Port Scanning
Задание 1:
Найдите все TCP-порты на вашем целевом объекте. Отправьте общее количество найденных TCP-портов в качестве ответа.
Решение:
Выполним сканирование с помощью Nmap:

-sS - Используем для поиска открытых портов из топ 1000;
-n - Отключаем разрешения DNS;
-Pn - Отключаем запросы ICMP Echo.
В результате сканирования мы нашли 7 открытых портов.
Ответ: 7
Задание 2:
Перечислите имя хоста вашей цели и отправьте его в качестве ответа (с учетом регистра).
Решение:
Имя хоста можно получить, сканируя SMB-порт (445/TCP). Выполним команду:

-sV - Используем для определения названия и версии ПО на открытом порте.
Получаем ответ: Service Info: Host: NIX-NMAP-DEFAULT
Ответ: NIX-NMAP-DEFAULT
Saving the Results
Задание:
Выполните полное сканирование TCP-портов на вашем целевом компьютере и создайте HTML-отчет. Отправьте номер самого высокого порта в качестве ответа.
Решение:
Нам нужно отсканировать целевую машину и сохранить результаты сканирования в XML формате. Приступим:

После выполнения сканирования в папке появится файл с результатами сканирования под названием target. Далее мы должны преобразовать его в HTML формат:

Эта команда преобразует XML-отчет в HTML-формат.
Теперь у нас есть отчет о результатах сканирования в удобном виде. Откроем отчет в браузере:

Ответ: 31337
Service Enumeration
Задание:
Перечислите все порты и их службы. Одна из служб содержит флаг, который вы должны предоставить в качестве ответа.
Решение:
Для получения флага просканируем все открытые порты подробно:

На порту 31337 во время сканирования был обнаружен флаг:

Nmap Scripting Engine
Задание:
Используйте NSE и его скрипты, чтобы найти флаг, содержащийся в одной из служб, и отправить его в качестве ответа.
Решение:
Запустим стандартное сканирование, для выявления открытых портов:

Открытые порты: 22, 80, 110, 139, 143, 445, 31337. Запустим сканирование на открытые порты со стандартными скриптами (-sC):

Стандартные скрипты не выявили флага, но мы знаем, что на 80 порту развернут Apache. Можем за это зацепиться и попробовать построить карту сайта с помощью NSE из категории discovery:

В ходе сканирования мы наткнулись на подкаталог robots.txt, где хранится информация о сайте. Посмотрим, что в нем находится:

Ответ: флаг находился в каталоге /robots.txt.
Firewall and IDS/IPS Evasion - Easy Lab
Задание:
Наш клиент хочет знать, можем ли мы определить, на какой операционной системе работает его предоставленная машина. Отправьте название ОС в качестве ответа.
Решение:
Попробуем для начала обычное сканирование с определением ОС (-O):

Результаты сканирования ничего не дали, нашли открытые порты (22, 80, 10001). ОС выявить не удалось. Можно попробовать ACK сканирование, если наше сканирование блокируется брандмауэром:

Мы получили список возможных ОС, но точную не нашли. Попробуем захватить баннеры на открытых портах:

В результате захвата мы получаем информацию, где среди версии указана ОС целевой системы.
Ответ: Ubuntu
Firewall and IDS/IPS Evasion - Medium Lab
Задание:
После того, как конфигурации будут переданы в систему, наш клиент хочет узнать, возможно ли узнать версию DNS-сервера нашей цели. Отправьте версию DNS-сервера цели в качестве ответа.
Решение:
Начнем по классике с поиска открытых портов:

В ходе сканирования находим открытые порты TCP: 21, 22, 80, 110, 139, 143, 445. И отфильтрованный 53 порт TCP (DNS). Мы знаем, что протокол DNS работает и на TCP, и на UDP. Давайте попробуем запустить UDP-сканирование на 53 порту:

В итоге получаем, что брандмауэр не фильтрует 53 UDP порт и спокойно выдаёт версию DNS-сервера.
Firewall and IDS/IPS Evasion - Hard Lab
Задание:
Теперь наш клиент хочет узнать, возможно ли узнать версию запущенных служб. Определите версию службы, о которой говорил наш клиент, и отправьте флаг в качестве ответа.
Решение:
Начнем со сканирования портов:

Было найдено 2 открытых порта: 22 и 80. Попробуем запустить сканирование, используя 53 порт в качестве исходного порта:

Мы находим еще один открытый порт - 50000. И мы узнали, что брандмауэр плохо настроен и принимает соединения с 53 TCP порта. Попробуем захватить баннер с этого порта:

Немного подождав, мы получили флаг.
Примечание! Не повторяйте моих ошибок. Если что-то не работает, попробуйте запустить от sudo!
Заключение
Этот модуль представляет собой важный этап в освоении навыков сетевой разведки с помощью Nmap. Он учит нас основам, которые являются краеугольным камнем любого успешного тестирования на проникновение. В процессе работы мы узнали, как эффективно сканировать порты и выявлять уязвимости, что открывает перед нами двери в мир кибербезопасности.
Каждое успешное сканирование — это шаг к пониманию структуры системы и выявлению возможных точек доступа. Умение правильно использовать инструменты, такие как Nmap, позволяет нам не только находить открытые порты, но и глубже анализировать их. Это, в свою очередь, помогает строить надежные стратегии для защиты информации.