Вам поручено провести проверку на проникновение в компанию Puppet Inc. Компания не разрешает передачу данных за пределы внутренней сети, поэтому внутри компании был создан сервер управления и контроля (C2), и сотрудник запустил вредоносную программу для имитации успешной атаки с использованием методов социальной инженерии.
Puppet — это небольшой сценарий Active Directory, в котором вы начинаете с уже работающего маяка Sliver C2 на внутренней системе. Он предназначен для отработки работы в рамках C2-инфраструктуры в современной, сложной гибридной среде.
Puppet разработан для специалистов по тестированию на проникновение и «красных команд», ищущих быструю и сложную лабораторию с уже настроенной C2-инфраструктурой для отработки операций C2.
Эта лаборатория «Оператор красной команды уровня I» познакомит игроков со следующими темами:
Puppet — это цепочка задач средней сложности на HTB, в которой вы используете фреймворк C2 Sliver для взлома небольшой среды AD. Вы начинаете с уже существующего маячка на файловом сервере, повышаете привилегии с помощью функции print nightmare, а затем дампите учетные данные. Затем вы делаете боковое перемещение на систему Linux, которая выступает в роли сервера Puppet, по сути, управляя всей средой. Вы повышаете привилегии на сервере Puppet и используете это для горизонтального перемещения на контроллер домена, где снова извлекаете учетные данные, чтобы получить последний флаг.
Начнём со сканирования портов на единственном доступном компьютере (представьте, что компания предоставляет вам внутренний компьютер для тестирования):
Добавим наш айпи в файлик hosts.
sudo nano /etc/hosts
Проведем начальное сканирование выданного айпи masscan’ом.
sudo masscan -p1-65535,U:1-65535 10.13.38.33 --rate=500 -e tun0 > puppet.ms
У нас открыты 5 портов.
Просканируем их nmap’ом.
nmap -p21,22,8140,8443,31337 -sC -sV -oA nmap/puppet puppet.htb
Помимо FTP и SSH, мы видим порты 8443 и 31337, которые встречаются довольно редко. Давайте сначала проверим FTP, так как Nmap говорит, что к нему разрешен анонимный доступ.
Подключимся к 21 порту.
ftp puppet.htb
Посмотрим файлы и папки.
ls
У нас есть два файла, загрузим их себе на машину.
get red_127.0.0.1.cfg
get sliver-client_linux
Посмотрим скачанные файлы.
cat red_127.0.0.1.cfg
Это конфиг для подключения к С2 серверу.
file sliver-client_linux
Сам клиент для С2 сервера.
FTP-ресурс содержит конфигурацию Sliver, а также клиент Sliver для удобства. Эта компания уже настроила для вас C2-сервер, но не хочет предоставлять вам доступ к
командной оболочке на сервере. Давайте попробуем подключиться. Проверив конфигурацию, мы видим, что по умолчанию подключение осуществляется к localhost:
Но так как порт для подключения находится на удаленной машине, то сделаем переадресацию портов.
sudo socat TCP-LISTEN:31337,reuseaddr,fork TCP:puppet.htb:31337
Сделаем файл клиента исполняемым.
chmod +x sliver-client_linux
Импортируем конфиг для С2 сервера.
./sliver-client_linux import red_127.0.0.1.cfg
Теперь запускаем сам клиент и подключаемся к серверу.
./sliver-client_linux
Выполнение команды beacons показывает, что к этому серверу уже подключен маяк:
beacons
Теперь мы можем либо взаимодействовать с маяком, либо переключиться на более быструю интерактивную сессию. В этой лабораторной работе я буду работать с сессией, но отмечу, что в реальных боевых действиях работа с маяком обычно предпочтительнее для целей уклонения. Маяки находятся в режиме ожидания между выполнением команд, и большинство C2-фреймворков применяют обфускацию во время этих задержек. При переключении на интерактивную сессию задержки больше не происходят, поэтому этот компонент уклонения теряется.
Будем использовать маячок fe2a6189.
use fe2a6189
Перейдем в интерактивный режим взаимодействия с маячком.
interactive
Нам открылась сессия — 9d4ae392.
Переключимся на сессию 9d4ae392.
use 9d4ae392
Теперь можем выполнять команды в системе.
Перейдем на рабочий стол Брюса Смита и заберет первый флаг.
cd C:\\Users\\bruce.smith\\Desktop
ls
cat flag.txt
Теперь перейдём к локальному перечислению. Прежде всего, просмотрев файловую систему, мы заметим, что Puppet установлен:
cd c:\\programdata
Puppet — это небольшой сценарий Active Directory, в котором вы начинаете с уже работающего маяка Sliver C2 на внутренней системе. Он предназначен для отработки работы в рамках C2-инфраструктуры в современной, сложной гибридной среде.
Puppet разработан для специалистов по тестированию на проникновение и «красных команд», ищущих быструю и сложную лабораторию с уже настроенной C2-инфраструктурой для отработки операций C2.
Эта лаборатория «Оператор красной команды уровня I» познакомит игроков со следующими темами:
- Перечисление
- Перечисление и атаки на Active Directory
- Эксплуатация инфраструктуры DevOps
- Боковое перемещение
- Локальное повышение привилегий
- Ситуационная осведомленность
- Операции C2
Puppet — это цепочка задач средней сложности на HTB, в которой вы используете фреймворк C2 Sliver для взлома небольшой среды AD. Вы начинаете с уже существующего маячка на файловом сервере, повышаете привилегии с помощью функции print nightmare, а затем дампите учетные данные. Затем вы делаете боковое перемещение на систему Linux, которая выступает в роли сервера Puppet, по сути, управляя всей средой. Вы повышаете привилегии на сервере Puppet и используете это для горизонтального перемещения на контроллер домена, где снова извлекаете учетные данные, чтобы получить последний флаг.
Начнём со сканирования портов на единственном доступном компьютере (представьте, что компания предоставляет вам внутренний компьютер для тестирования):
Добавим наш айпи в файлик hosts.
sudo nano /etc/hosts
Не удалось прогрузить медиа
Проведем начальное сканирование выданного айпи masscan’ом.
sudo masscan -p1-65535,U:1-65535 10.13.38.33 --rate=500 -e tun0 > puppet.ms
У нас открыты 5 портов.
Не удалось прогрузить медиа
Просканируем их nmap’ом.
nmap -p21,22,8140,8443,31337 -sC -sV -oA nmap/puppet puppet.htb
Не удалось прогрузить медиа
Помимо FTP и SSH, мы видим порты 8443 и 31337, которые встречаются довольно редко. Давайте сначала проверим FTP, так как Nmap говорит, что к нему разрешен анонимный доступ.
Подключимся к 21 порту.
ftp puppet.htb
Не удалось прогрузить медиа
Посмотрим файлы и папки.
ls
Не удалось прогрузить медиа
У нас есть два файла, загрузим их себе на машину.
get red_127.0.0.1.cfg
get sliver-client_linux
Не удалось прогрузить медиа
Посмотрим скачанные файлы.
cat red_127.0.0.1.cfg
Это конфиг для подключения к С2 серверу.
Не удалось прогрузить медиа
file sliver-client_linux
Сам клиент для С2 сервера.
Не удалось прогрузить медиа
FTP-ресурс содержит конфигурацию Sliver, а также клиент Sliver для удобства. Эта компания уже настроила для вас C2-сервер, но не хочет предоставлять вам доступ к
командной оболочке на сервере. Давайте попробуем подключиться. Проверив конфигурацию, мы видим, что по умолчанию подключение осуществляется к localhost:
Но так как порт для подключения находится на удаленной машине, то сделаем переадресацию портов.
sudo socat TCP-LISTEN:31337,reuseaddr,fork TCP:puppet.htb:31337
Не удалось прогрузить медиа
Сделаем файл клиента исполняемым.
chmod +x sliver-client_linux
Не удалось прогрузить медиа
Импортируем конфиг для С2 сервера.
./sliver-client_linux import red_127.0.0.1.cfg
Не удалось прогрузить медиа
Теперь запускаем сам клиент и подключаемся к серверу.
./sliver-client_linux
Не удалось прогрузить медиа
Выполнение команды beacons показывает, что к этому серверу уже подключен маяк:
beacons
Не удалось прогрузить медиа
Теперь мы можем либо взаимодействовать с маяком, либо переключиться на более быструю интерактивную сессию. В этой лабораторной работе я буду работать с сессией, но отмечу, что в реальных боевых действиях работа с маяком обычно предпочтительнее для целей уклонения. Маяки находятся в режиме ожидания между выполнением команд, и большинство C2-фреймворков применяют обфускацию во время этих задержек. При переключении на интерактивную сессию задержки больше не происходят, поэтому этот компонент уклонения теряется.
Будем использовать маячок fe2a6189.
use fe2a6189
Не удалось прогрузить медиа
Перейдем в интерактивный режим взаимодействия с маячком.
interactive
Не удалось прогрузить медиа
Нам открылась сессия — 9d4ae392.
Переключимся на сессию 9d4ae392.
use 9d4ae392
Не удалось прогрузить медиа
Теперь можем выполнять команды в системе.
Перейдем на рабочий стол Брюса Смита и заберет первый флаг.
cd C:\\Users\\bruce.smith\\Desktop
Не удалось прогрузить медиа
ls
Не удалось прогрузить медиа
cat flag.txt
Не удалось прогрузить медиа
Теперь перейдём к локальному перечислению. Прежде всего, просмотрев файловую систему, мы заметим, что Puppet установлен:
cd c:\\programdata
Не удалось прогрузить медиа
👍58
❤️16
😮13
🤔8
LIMB