Sploitus

Exploit for docker-lab

kitploit · 2026-08-27

Exploit Code

MARKDOWN112 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-KOUF320-DOCKER-LAB-CVE-2017-5638-CVE-2021-41773
# Лаборатория атакующего: CVE-2017-5638 и CVE-2021-41773

Лаборатория имитации атак на базе Docker из 7 хостов, предназначенная для демонстрации многоэтапной цепочки поражения (kill chain), горизонтального перемещения и многоточечного обнаружения IDS.

## Обзор

Лаборатория моделирует реалистичную сетевую среду, в которой атакующий проходит путь от первоначальной разведки до закрепления (foothold) и, наконец, до цели высокой ценности через pivoting (переход через промежуточные узлы). Она включает два независимых экземпляра Suricata IDS, работающих как сайдкары к критически важным хостам и предоставляющих «взгляд защитника» на весь жизненный цикл атаки.

### Цепочка поражения (Kill Chain)

  1. **Разведка** : Атакующий выполняет сканирование сети (ICMP, TCP SYN, снятие баннеров HTTP) в подсети `172.28.0.0/24`.
  2. **Закрепление (CVE-2017-5638)** : Атакующий эксплуатирует уязвимый сервер Apache Struts 2 (`web-struts`) с помощью OGNL-инъекции в заголовке `Content-Type`.
  3. **Перемещение (горизонтальное перемещение)** : Используя скомпрометированный хост `web-struts`, атакующий запускает вторичную эксплуатацию против внутренней цели.
  4. **Конечная цель (CVE-2021-41773)** : Атакующий эксплуатирует уязвимости обхода пути и удалённого выполнения кода в Apache HTTP Server 2.4.49 (`web-vuln`) для получения root-доступа.



## Архитектура лаборатории

Лаборатория состоит из 10 контейнеров:

  * **Атакующий (172.28.0.100)** : Окружение, подобное Kali, с предварительно подготовленными эксплойт-скриптами.
  * **Целевые хосты** : 
    * `web-struts` (172.28.0.11): Apache Struts 2.3.28 (уязвим к S2-045).
    * `web-vuln` (172.28.0.10): Apache httpd 2.4.49 (уязвим к обходу пути / RCE).
    * `db-mysql` (172.28.0.12): вспомогательная база данных.
    * `ssh-server` (172.28.0.13): устаревшая цель для закрепления.
    * `ftp-server`, `smb-server`, `dns-server`: инфраструктурные сервисы для реалистичности.
  * **Сайдкары IDS** : 
    * `ids-suricata-struts`: отслеживает сетевое пространство имён `web-struts`.
    * `ids-suricata-web`: отслеживает сетевое пространство имён `web-vuln`.



## Начало работы

### Предварительные требования

  * Docker и Docker Compose v2.
  * Shell, совместимый с Bash.



### Установка

Запустите скрипт установки для сборки и запуска окружения:

root@kitploit:~
    
    
    ./scripts/setup.sh
    

Это инициализирует сеть, загрузит/соберёт образы и запустит все 10 контейнеров.

## Использование

Лаборатория предоставляет скрипт-диспетчер для запуска различных фаз атаки.

### Запуск полной цепочки атак

root@kitploit:~
    
    
    ./scripts/attack.sh full
    

### Запуск отдельных фаз

  * **Только разведка** : `./scripts/attack.sh recon`
  * **Закрепление через Struts** : `./scripts/attack.sh struts-foothold`
  * **Переход Struts → Web** : `./scripts/attack.sh struts-pivot`
  * **Прямая эксплуатация (без перехода)** : `./scripts/attack.sh direct`



### Пользовательские команды

Вы можете передать пользовательскую команду для выполнения на конечной цели:

root@kitploit:~
    
    
    ./scripts/attack.sh full "whoami; cat /etc/os-release"
    

## Мониторинг срабатываний

Срабатывания записываются в отдельные файлы `eve.json` для каждого экземпляра IDS:

  * `./alerts/web-struts/eve.json`
  * `./alerts/web-vuln/eve.json`



Вы можете просматривать оба потока в реальном времени с помощью:

root@kitploit:~
    
    
    ./scripts/tail-alerts.sh
    

## Очистка

Чтобы остановить и удалить все компоненты лаборатории:

root@kitploit:~
    
    
    ./scripts/teardown.sh