Êxodo - Hard

Criador: Tris0n Dificuldade: Hard OS: Windows

Enumeração

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.

Com essa informação, podemos utilizar a própria hash do usuário administrador para rodar comandos.

Dessa forma, conseguimos nossa flag de root, completando a máquina.

Last updated