Конфигурации, внедряемые в целевые объекты групповой политики, называются модулями. Ниже представлен список поддерживаемых инструментом модулей:
🔺Scheduled Tasks — добавить/удалить задачу планировщика или выполнить немедленную задачу.
🔺Groups — добавить/удалить пользователя в локальной группе.
🔺Registry — установить значение ключа реестра.
🔺Files — создать/удалить файлы.
🔺Folders — создать/удалить папки.
🔺Установка
git clone https://github.com/synacktiv/GroupPolicyBackdoor
python3 -m venv .venv && source .venv/bin/activate
python3 -m pip install -r requirements.txt
🔺Примеры использования
Одним из распространенных сценариев является эксплуатация GPO, внедряя в него вредоносную конфигурацию. Пример команды gpo inject, которая добавляет в целевую GPO задачу Immediate Task:
python3 gpb.py gpo inject --domain 'corp.com' --dc 'ad01-dc.corp.com' -k --module modules_templates/ImmediateTask_create.ini --gpo-name 'TARGET_GPO'
Immediate Task описывается в INI-файле ImmediateTask_create.ini, в котором необходимо задать ее параметры. Некоторые примеры можно посмотреть в папке modules_templates. Ниже представлен INI-файл, описывающий, чтобы Immediate Task выполнила команду cmd.exe и была развернута только на компьютере ad01-srv.corp.com.
После выполнения Immediate Task на целевом узле, можно удалить внедренную конфигурацию из GPO, выполнив команду gpo clean, которой нужно передать параметр state_folder, созданный предыдущей командой gpo inject.
python3 gpb.py gpo clean --domain 'corp.com' --dc 'ad01-dc.corp.com' -k --state-folder 'state_folders/<value>'
В случае наличия ошибок действия можно отменять. Изменения GPO часто включают несколько шагов, выполняемых через разные протоколы (SMB / LDAP). Если во время выполнения команды что-то пойдёт не так, GPO может оказаться в некорректном состоянии.
State folders позволяют точно узнать, какие действия были выполнены инструментом до момента сбоя. Действия перечислены в файле actions.json. После этого можно исправить ситуацию вручную или воспользоваться командой restore undo. Эта команда отменит любые действия, описанные в actions.json.
python3 gpb.py restore undo -d corp.com -k --state-folder 'state_folders/<value>'
