
Тест на проникновение черного ящика против HackSudo Thor: CVE-2014-6271 Shellshock RCE через Apache mod_cgi, в сочетании с неправильной конфигурацией sudo и инъекцией eval в bash для полного повышения привилегий. Включает пользовательские инструменты для подбора с учетом CSRF и автоматизацию Metasploit RPC.
Цель: HackSudo Thor с VulnHub
Задача: Получить root-доступ и прочитать/root/proof.txt
Среда: Изолированная лаборатория VirtualBox, сегментированная межсетевым экраном pfSense
Этот репозиторий документирует частичное тестирование на проникновение методом «чёрного ящика», проведённое на HackSudo Thor — намеренно уязвимой виртуальной машине, опубликованной на VulnHub Вишалом Вагмаре. Целью было смоделировать реальную атаку, в которой внешний злоумышленник пытается скомпрометировать изолированную внутреннюю систему, с основной задачей получения root-доступа и чтения содержимого /root/proof.txt.
Оценка следует полному жизненному циклу тестирования на проникновение: пассивная разведка, обнаружение сети, перебор, оценка уязвимостей, эксплуатация, повышение привилегий, пост-эксплуатация и сокрытие следов.
Основными используемыми инструментами были Nmap для сканирования сети, Nessus для оценки уязвимостей и Metasploit Framework в качестве основной платформы эксплуатации и пост-эксплуатации. John the Ripper, Hashcat и онлайн-радужные таблицы использовались на этапе взлома паролей, хотя все попытки в конечном итоге оказались безуспешными из-за стойкости используемого алгоритма хеширования.
Виртуальная лаборатория была полностью построена в VirtualBox и спроектирована для имитации реалистичной корпоративной сети с тремя различными зонами безопасности, управляемыми межсетевым экраном pfSense 2.7.2. Три NAT-сети были настроены следующим образом: зона WAN, имитирующая общедоступный интернет, где находится машина атакующего Kali; зона DMZ, размещающая целевую машину; и внутренняя зона LAN, содержащая машины, не входящие в область оценки.``` Internet Zone — NatNetwork (10.0.2.0/24) │ │ Kali Linux 2025.4 [attacker] — 10.0.2.9 │ pfSense WAN interface — 10.0.2.8 │ ├── pfSense Firewall (boundary device) │ ├── DMZ Zone — DMZnat (10.0.4.0/24) │ ├── HackSudo Thor [TARGET] — 10.0.4.3 │ └── DVWA — 10.0.4.4 (out of scope) │ └── LAN Zone — LANnat (10.0.3.0/24) ├── Metasploitable 2 — 10.0.3.5 (out of scope) └── Windows XP Cyberlab — 10.0.3.4 (out of scope)

*Логическая топология сети, зоны безопасности под управлением pfSense*
Интерфейсу WAN был назначен адрес `10.0.2.8/24` по DHCP, интерфейс LAN настроен на `10.0.3.1/24`, а интерфейс OPT1 (DMZ) — на `10.0.4.1/24`. Чтобы внести преднамеренную неверную конфигурацию в лабораторную среду, порт 80 был осознанно оставлен открытым на интерфейсе WAN pfSense, имитируя реальную ситуацию с доступом к панели управления, которая послужила основной точкой входа во внутреннюю сеть.
---
## Сводка цепочки атак```
[Kali Linux — 10.0.2.9]
│
│ CSRF-aware Python brute force → admin / pfsense
▼
[pfSense webConfigurator — 10.0.2.8:80]
│
│ Firewall rules disabled → DMZ and LAN now reachable
▼
[HackSudo Thor — 10.0.4.3]
│
│ Shellshock RCE (CVE-2014-6271)
│ Apache mod_cgi → /cgi-bin/shell.sh
▼
[Meterpreter shell — www-data]
│
│ sudo -u thor /home/thor/hammer.sh
│ Command injection via eval → bash -i payload
▼
[Interactive shell — thor]
│
│ GTFOBins: sudo service ../../bin/bash
▼
[Root shell]
│
├── /root/proof.txt captured ✅
├── /etc/shadow + /etc/passwd exfiltrated
└── SSH RSA backdoor planted
Перед любым контактом с целевой средой информация собиралась исключительно из общедоступных источников. Двумя основными источниками были официальная страница HackSudo Thor на VulnHub и публичный GitHub-профиль автора.
Страница на VulnHub подтвердила, что цель — система на базе Linux, рейтинг сложности «от лёгкой до средней», с задачей найти флаг proof.txt. Просмотр GitHub-профиля автора дал дополнительную информацию. Вишал Вагмаре последовательно создаёт Linux-машины типа «boot-to-root», где основная задача — повышение привилегий, и это относится ко всей серии HackSudo. Это сформировало модель угроз для активных этапов: HTTP и SSH — наиболее вероятная поверхность атаки, а путь повышения привилегий предполагался через неправильную конфигурацию sudo, злоупотребление SUID-бинарниками или эксплуатацию пользовательского сервиса.
Такой анализ паттернов автора важен и в реальных проектах. Понимание того, как, вероятно, спроектирована система и какие категории уязвимостей администратор, скорее всего, повторяет, даёт направление до отправки первого пакета.
| Поле | Детали |
|---|---|
| Цель | HackSudo Thor |
| Автор | Vishal Waghmare (@hacksudo) |
| Релиз | 3 августа 2021 г. |
| Сложность | От лёгкой до средней |
| ОС | Linux (Debian) |
| Формат | VirtualBox OVA |
| DHCP | Включён |
| Предполагаемая поверхность атаки | HTTP, SSH, вероятна неправильная конфигурация sudo |
Этот этап включал прямой активный контакт со средой. Целью было выявить все активные хосты, понять границы сети и составить полную картину поверхности атаки, прежде чем сузить фокус до основной цели.
Сначала был выполнен лёгкий ping-скан Nmap (-sn) по WAN-подсети (10.0.2.0/24) для обнаружения активных хостов с минимальным шумом. Было обнаружено три хоста: 10.0.2.1 и 10.0.2.2 оказались стандартными адресами инфраструктуры VirtualBox, что оставляло 10.0.2.8 единственным хостом, не относящимся к инфраструктуре. Эта машина стала объектом немедленного внимания.
Полный SYN-скрытный скан 10.0.2.8 не дал никаких результатов. Это было ожидаемым поведением, а не ошибкой. Корпоративные межсетевые экраны спроектированы так, чтобы не отвечать на сканирование портов, молча отбрасывая пакеты вместо ответа. Отсутствие результатов само по себе подтверждало, что это граничное устройство сети, активно фильтрующее трафик.
Чтобы подтвердить, какие службы на самом деле работают, не полагаясь на сканирование пакетов, был выполнен прямой HTTP-запрос с помощью curl. Этот подход был выбран, потому что обычный веб-запрос с гораздо меньшей вероятностью будет отфильтрован, чем инструмент сканирования. Ответ пришёл как HTTP/1.1 200 OK с Server: nginx и заголовком страницы pfSense, что подтвердило прямой доступ к webConfigurator через порт 80 с WAN-интерфейса.