Лаборатория DanderSpritz
Назначение
Цель лаборатории DanderSpritz — позволить исследователям и защитникам быстро развернуть полнофункциональную версию DanderSpritz — набора инструментов постэксплуатации Equation Group — а также контроллер домена Windows Server 2008 и клиент в качестве целей. На целевой машине Windows установлены некоторые инструменты реверс-инжиниринга, которые оказались полезными при изучении DanderSpritz и его возможностей.
Немного о лаборатории DanderSpritz можно прочитать здесь: https://medium.com/@francisck/introducing-danderspritz-lab-461912313d7c
Веб-сайт, созданный для документирования возможностей и инструментов DanderSpritz: https://danderspritz.com
ПРИМЕЧАНИЕ: Эта лаборатория никак не защищена (она намеренно уязвима) и работает с учётными данными vagrant по умолчанию. Пожалуйста, не подключайте и не мостите её к сетям, которые для вас важны.
Требования
- 20+ ГБ свободного места на диске
- 8+ ГБ ОЗУ
- 20 ГБ трафика (для загрузки ISO, обновлений, сервис-паков и т.д.)
- Packer версии 1.2.3 или новее
- Vagrant версии 2.1.1 или новее
- Плагин Vagrant-Reload
- Virtualbox (VMWare Fusion/Workstation будут доступны позже)
Запуск лаборатории DanderSpritz
DanderSpritz использует Packer, Vagrant и плагин Vagrant-reload для установки и настройки лаборатории с нуля. Packer загрузит ISO-образы Windows непосредственно с сайта Microsoft и установит пробные версии программного обеспечения для использования в исследованиях.
- Клонируйте этот репозиторий на свою машину
git clone [email protected]:francisck/DanderSpritz_lab.git
- Убедитесь, что у вас установлен плагин Vagrant-reload
vagrant plugin install vagrant-reload
- Чтобы загрузить ISO и выполнить сборку Vagrant-боксов, выполните следующую команду:
packer build danderspritz_lab.json
- После сборки Vagrant-боксов запустите виртуальные машины и позвольте им завершить дополнительную настройку:
vagrant up
Создание проекта FuzzBunch
- Запустите командную строку Windows (cmd) и выполните следующее:
D:\
python fb.py
- Установите адрес цели по умолчанию: 192.168.40.3
- Установите адрес обратного вызова по умолчанию: 192.168.40.4
- Не используйте перенаправление (на первых порах)
- Оставьте каталог журналов по умолчанию
- Создайте новый проект (вариант 0)
- Дайте имя новому проекту
- Оставьте каталог журналов по умолчанию

Эксплуатация целевой машины
- Выполните следующую команду для эксплуатации машины с помощью EternalBlue
use eternalblue
- Выберите все параметры по умолчанию, кроме механизма доставки. Используйте "FB" (традиционное развёртывание) в качестве механизма доставки
- После успешного выполнения EternalBlue настройте danderspritz и peddlecheap
Настройка и запуск DanderSpritz
- Запустите ещё одну командную строку Windows (cmd) и выполните следующее:
D:\
python configure_lp
- Разрешите Java через брандмауэр
- Выберите
browse рядом с "Лог-директория" и выберите имя проекта FuzzBunch, который вы создали

- Нажмите "Go"
Подготовка PeddleCheap (настройка импланта)
- В консоли DanderSpritz выполните следующую команду:
pc_prep
- Выберите стандартный payload sharedlib для x64-winnt уровня 3
5
- Не выбирайте расширенные настройки
- Выберите немедленный обратный вызов
- Используйте ID PC по умолчанию (0)
- Выберите "Да" на вопрос "Хотите ли вы слушать?"
- Не изменяйте порты прослушивания
- Оставьте адрес обратного вызова по умолчанию (127.0.0.1)
- Не изменяйте имя исполняемого файла
- Используйте ключ по умолчанию (вариант 2)
- Проверьте корректность конфигурации PeddleCheap
- Не настраивайте с помощью FC (felonycrowbar)
- Скопируйте путь к сконфигурированному бинарному файлу:

Доставка импланта (peddlecheap) через бэкдор DoublePulsar:
- В исходном окне Fuzzbunch введите:
use doublepulsar
- Выберите "да", когда вас спросят, хотите ли вы получать запросы на ввод переменных
- Выберите все параметры переменных по умолчанию, кроме архитектуры цели (выберите вариант 1)
1) x64 x64 64-bit
- Выберите функцию "RunDLL" (вариант 2)
2) RunDLL Использовать APC для внедрения DLL в пользовательский процесс.

- Оставьте все остальные параметры по умолчанию и выберите "Да", когда вас спросят, хотите ли вы выполнить плагин
- Вы должны увидеть "Doublepulsar succeeded"
Подключение к импланту PeddleCheap с помощью DanderSpritz
- В DanderSpritz выберите "PeddleCheap" в верхней части экрана
- Выберите ключ "default" из выпадающего меню ключей
- Введите адрес целевой машины (192.168.40.3)
- Нажмите "Connect to target"

- Выберите имя вашего проекта Fuzzbunch
- Дождитесь завершения исследования DanderSpritz Survey (это займет некоторое время) и ответьте на несколько вопросов по ходу
- Profit!
Используйте во благо, а не во зло!
Цель этого проекта — позволить исследователям безопасности легко построить и настроить полнофункциональную лабораторию DanderSpritz для реверс-инжиниринга и тестирования.
- Не запускайте это против каких-либо целей за пределами этой лаборатории.
- Не используйте это для "красных командных учений"
- Делайте вносите свой вклад в сообщество, публикуя результаты исследований
- Делайте обращайтесь ко мне с любыми вопросами :)
Повседневное использование
После того как вы один раз запустили packer, повторно запускать его не нужно. Vagrant-боксы будут доступны для перестроения, уничтожения и перезапуска вашей лаборатории.
Ниже приведены некоторые полезные команды, которые могут пригодиться при работе с лабораторией:
Основы Vagrant
- Запустить все хосты лаборатории DanderSprotz:
vagrant up
- Запустить конкретный хост:
vagrant up <имя_хоста>
- Перезапустить конкретный хост:
vagrant reload <имя_хоста>
- Перезапустить конкретный хост и повторно выполнить процесс настройки:
vagrant reload <имя_хоста> --provision
- Уничтожить конкретный хост:
vagrant destroy <имя_хоста>
- Уничтожить всю среду лаборатории Danderspritz:
vagrant destroy
- Сделать снимок машины:
vagrant snapshot save <имя_хоста> <имя_снимка>
- Восстановить снимок машины:
vagrant snapshot restore <имя_хоста> <имя_снимка>
- Проверить статус каждого хоста:
vagrant status
- Приостановить среду лаборатории:
vagrant suspend
- Возобновить среду лаборатории:
vagrant resume
Продление срока действия истекших лицензий Windows
Если вы столкнулись с проблемой истечения пробной лицензии, вы можете продлить её до 3 раз (получив 90 дней Windows-лицензии), выполнив следующую команду в командной строке с правами администратора:
После этого потребуется перезагрузка машины.
Информация о лаборатории
Схема лаборатории

Дополнительная информация о лаборатории
- Имя домена: windomain.local
- Учётные данные администратора (все машины): vagrant:vagrant
- DC (контроллер домена): 192.168.40.2/24
- Цель: 192.168.40.3/24
- DanderSpritz: 192.168.40.4/24
Хосты лаборатории
- DC — контроллер домена Windows 2008 R2
- Контроллер домена Windows для Windomain.local
- GPO конфигурации WEF-сервера
- GPO ведения журналов PowerShell
- Расширенная политика аудита Windows GPO
- Target — рабочая станция Windows 7
- Имитирует целевую рабочую станцию / машину
- Присоединена к домену Windows AD Windomain.local
- Предустановлены некоторые инструменты реверсинга / визуализации
- Доступен Chocolatey (с репозиторием FireEye Flare REPO) для дальнейшей установки инструментов
- DanderSpritz Box — Windows 10
- Предустановлены DanderSpritz и Fuzzbunch
Установленные инструменты на целевой машине (Windows 7 SP1)
- Sysmon
- Sysinternal Tools (Procmon, TCPview и др.)
- API Monitor
- InfoPe
- HxD
- PEView
- Windbg
- WireShark
- Binary Ninja
- HashCalc
- IDA 7 Free
- Ollydbg
- Расширенный аудит GPO
- Ведение журналов PowerShell GPO
- События Windows пересылаются на контроллер домена (WEC)
Авторы / Ресурсы
Значительная часть этого кода заимствована и адаптирована из проекта Chris Long DetectionLab, а также из packer-windows и adfs2 от Stefan Scherer на Github. Огромное спасибо всем, кто внес свой код, сделав такие проекты проще (или даже возможными).
Благодарности