Como sempre, começamos rodando nmap com -sV para alcançar as versões dos serviços e -sC para os scripts. Com isso, temos o host da aplicação e um virtual host, sendo eles exodo.hc, e master.exodo.hc respectivamente.
Como uma boa pratica de enumeração em AD, utilizamos o kerbrute para enumerar possíveis usuários, e com isso, encontramos os usuários master, administrator e juanluna.
Realizamos então um ataque de força bruta na senha do usuário juanluna para talvez descobrir sua senha, e de fato conseguimos. Porém, a senha do usuário está expirada e precisa ser mudada.
juanluna:P@$$w0rd
Podemos utilizar a tool changepasswd.py do impacket para realizar a troca de senha do usuário. Essa tool utiliza o smb para realizar a mudança da senha e, com isso, podemos ver que agora conseguimos nos autenticar e enumerar o smb. No entanto, após um longo processo de recon, não foi descoberto nada de interessante.
Vamos então enumerar o ldap, para isso usei a tool bloodhound.py para formatar o output em .zip e assim conseguir usar o próprio bloodhound para fazer a visualização do resultado.
Ao fazer o upload do arquivo .zip para o bloodhound, quando vemos as informações do usuário juanluna, na description temos a primeira flag da máquina.
Além disso, nas informações Outbound Object Control, vemos que o usuário juanluna tem a permissão GenericAll sobre o usuário svc_spot, ou seja, temos controle total ao objeto do usuário svc_spot. Podemos adicionar o usuário a um grupo ou redefinir a senha a dele.
Vamos tentar então mudar a senha do svc_spot e começar a enumerar as permissões dele também. Após mudar a senha, vemos que conseguimos nos autenticar com ele.
Ao abrir no bloodhound, vemos que o usuário svc_spot também tem Oubound Object Control sobre o grupo localadmin. O que podemos fazer com isso? Adicionar nosso usuário ao grupo localadmin.
O grupo localadmin é membro do grupo de Domain Admins.
Com essa informação em mãos, podemos então adicionar nosso usuário no grupo localadmin, e então ele fará parte do grupo de domain admins.
Com o usuário adicionado com sucesso, podemos utilizar a tecnica de dcsync para extrair as hashes das senhas de outros usuários pois nosso usuário agora faz parte do grupo de usuários administradores do sistema.