Cicada
Resumo
Essa é uma máquina Windows classificada de dificuldade fácil que envolve a exploração básica de um Active Directory. De início, foi necessário identificar o serviço SMB em execução, e então obter uma pasta compartilhada disponível publicamente que continha uma senha. Após isso, foi necessário enumerar usuários por meio de RID brute-force e então realizar um ataque de password spraying para obter credenciais válidas. Com isso, foi possível utilizar o ldapdomaindump
para extrair informações sobre o Active Directory, possibilitando encontrar outras credenciais válidas. A partir dessas credenciais, foi possível listar outra pasta compartilhada no SMB, dessa vez com as credenciais do usuário emily.oscars
, o qual permitia acesso via WinRM
, possibilitando acesso remoto e encontrar a primeira flag. Para escalar privilégio, foi possível explorar o privilégio SeBackupPrivilege
do usuário autenticado para extrair o hash do usuário administrador do sistema.
Reconhecimento
Realizei uma varredura de portas TCP com o nmap
para identificar os serviços em execução, o que possibilitou encontrar as seguintes portas respondendo:
Analisando a resposta, esses são serviços comuns de se encontrar em um servidor Windows e estão relacionados ao Active Directory. Dentre os serviços disponíveis, as portas 139 e 445 indicam a presença de um servidor SMB. Acessando como usuário convidado (guest
), os seguintes compartilhamentos são listados:

Perceba que o usuário convidado tem permissão de leitura à pasta compartilhada HR
. Listando o conteúdo compartilhado, é possível encontrar um arquivo Notice from HR.txt
:

É possível baixar esse arquivo com o seguinte comando:
Listando o conteúdo do arquivo, é possível encontrar a seguinte mensagem informando a senha padrão de um usuário não identificado:

Com a senha de um usuário ainda não identificado, foi necessário varrer o Active Directory em busca de possíveis usuários para tentar combinar com a senha. Utilizando o crackmapexec
por meio do seguinte comando:
Foi possível obter os seguintes resultados:
Exploração
Usuário michael.wrightson
Com uma lista de usuários, agora basta realizar um ataque de password spraying em busca de uma combinação de usuário e senha válidos. Desenvolvi um breve script em BASH para automatizar essa tarefa, utilizando os usuários obtidos e o crackmapexec
para validar as credenciais:
Mesmo filtrando apenas os resultados válidos, o script retornou diversos falsos positivos:
Observe que dentre os resultados obtidos, o usuário michael.wrightson
se destaca por ser dentre os únicos da lista que foi adicionado por um administrador, não sendo um usuário padrão. Por conta disso, utilizei ele para tentar fazer login em outros serviços (nesse caso, o LDAP) e tive sucesso.
Usuário david.orelious
Realizei uma varredura utilizando a ferramenta ldapdomaindump
, e analisando resultados foi possível encontrar a senha do usuário david.orelious:

Usuário emily.oscars
Novamente utilizando o SMBMap, mas dessa vez com as credenciais do usuário David, é possível identificar uma permissão de leitura da pasta compartilhada DEV
.

Nela, está contido um script PowerShell com o seguinte conteúdo:
Com as credenciais do usuário emily.oscars
, é possível se autenticar remotamente por meio do protocolo WinRM
. Utilizando a ferramenta evil-winrm
, acessei a máquina e obtive a flag de usuário:

Escalação de Privilégios
Listando as informações sobre o usuário emily.oscars
por meio do comando whoami /all
, é possível encontrar os seguintes privilégios:
É possível escalar privilégio utilizando a permissão SeBackupPrivilege. Utilizando os seguintes comandos, é possível criar um diretório C:\Temp
e copiar os arquivos SAM
e SYSTEM
utilizando o robocopy
:
Com isso, é possível baixar os arquivos na máquina local por meio do comando download
do evil-winrm
, e extrair os hashes por meio do secretsdump.py
, script disponível por meio do ImPacket
.

Por fim, basta se autenticar por meio do evil-winrm
como usuário administrador utilizando a técnica de Pass The Hash.
