O desafio nos mostra que precisamos encontrar qual a forma de persistência que o invasor deixou.
Eu fiz o download do arquivo e extrai ele na minha máquina
Vamos lá
Inicio
O arquivo é NTUSER.DAT, procurar ele rapidamente no Google mostra que esse arquivo contém alterações feitas em configurações de contas e customização (Registros)
Ok, então agora eu preciso analisar esse arquivo e encontrar a persistência
Uma ótima ferramenta para analisar esse tipo de arquivo é o RegShell, utilizando ele podemos abrir um Shell bem familiar com os comandos que conhecemos mas dentro do arquivo.
Análise
regshell -F NTUSER.DAT
Agora estamos com a ferramenta rodando, hora de voltarmos a atenção para persistência
Novamente eu vou procurar esse arquivo no Google e encontrei um artigo muito útil
https://pentestlab.blog/2019/10/01/persistence-registry-run-keys/
Ele mostra que existem alguns caminhos comuns para esse tipo de persistência
Vamos começar pelo primeiro e caso não tenha nada, vamos para o próximo
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v Pentestlab /t REG_SZ /d "C:\Users\pentestlab\pentestlab.exe"
Dentro do nosso RegShell vamos navegar até o diretório “Run” assim como mostra o artigo
Já me parece muito promissor!
Encontramos um código em Base64, vamos decodificar isso e descobrir o que é isso
Vou salvar o código em um arquivo e encaminhar o base64 -d
O código me parece um script para PowerShell, após analisar ele acredito que precisamos rodar o script para descobrir a Flag.
Sempre muito cuidado ao rodar scripts, sempre faça isso em um ambiente controlado.
Eu vou iniciar uma VM Windows e copiar o código para arquivo .ps1 para rodar no PowerShell
Eu gosto de separar todas as funções em arquivos .ps1 separados, assim fica mais organizado (É só lembrar de invocar todos eles)
Dando uma olhada no script, ele puxa algumas informações de arquivos dentro do registro.
No momento não possuímos o valor desses arquivos, vamos voltar para o RegShell e navegar até o local que o script mostra
Nós temos os valores para colocar no script, agora é só copiar e colar isso em cada uma das linhas(encrypted de 1 até 5)
Hora de rodar o script e descobrir se está tudo ok
Vamos invocar as funções e depois rodar o main script
Encontramos um erro no valor de “key”
Going back to the main script where we set the key value
Vou abrir o main script e analisar as linhas que envolvem “key”
Look at that, the value of key depends on another value of “enc” that don’t exist!
O Valor de “key” depende de outro valor “enc” que está definido depois dele
Vou apenas recortar o “enc” e colocar acima do valor de “key”
Hora de rodar novamente o script
Flag
E ai está! Conseguimos a flag
Espero que você tenha gostado e um grande abraço de urso!