Hack The Box – Grandpa (passo a passo)

Só salve rapa!
Hoje vou trazer o passo a passo de como invadir a máquina Grandpa do HTB.
Para invadir essa máquina são necessárias as habildades:

  • Conhecimentos Básicos em Windows
  • Enumeração
  • Uso do Metasploit
  • Identificar processos estáveis
  • Conhecimento básico em escalação de privilégio no Windows

Só vamos!

Enumeração

Começei com aquele scanner de portas de lei.
Encontrei apenas a porta 80 rodando o serviço Microsoft IIS httpd 6.0.

A primeira coisa que faço sempre que me deparo com um pentest Web, é a enumeração, que envolve dar uma olhada na página, seu código fonte, scanner de diretórios e tecnologias utilizadas na aplicação.
Dessa vez ao fazer todo esse processo, não encontrei nada relevante para prosseguir com a invasão.

Como não encontrei nada, então resolvi procurar por exploits da versão do IIS 6.0.
Com uma breve pesquisa já encontrei resultados interessantes, como o exploit ScStoragePathFromUrl Overflow que faz um buffer overflow no Webdav.

Ao realizar uma pesquisa no metasploit, vi que lá já tinha o exploit pronto para ser executado, o que facilitou meu processo de exploração. Então apenas realizei as configurações do RHOST e do LHOST e consegui obter acesso ao alvo.

Ao tentar obter a flag user.txt, vi que ainda não tinha permissão de acesso. Acredito que seja algum problema de estruturamento do lab… Mas sem problemas, vamos partir para a escalação de privilégio, e assim que obtermos acesso privilegiado no host vamos adquirir as 2 flags.

Escalação de Privilégio

O metesploit tem um módulo que facilita bastante nossa pesquisa por vulnerabilidades no sistema, que é o local_exploit_suggester. Ao rodar ele em cima da sessão criada, ele me trouxe as possiveis vulnerabilidades no host para escalação do privilégio.
Então ao rodar o suggester, se atente no status, que informará se o host é vulnerável ou não a tal exploit.
Nesse caso, filtrando o resultado, temos as seguintes vulnerábilidades/exploits:


exploit/windows/local/ms10_015_kitrap0d: The service is running, but could not be validated. exploit/windows/local/ms14_058_track_popup_menu: The target appears to be vulnerable. exploit/windows/local/ms14_070_tcpip_ioctl: The target appears to be vulnerable. exploit/windows/local/ms15_051_client_copy_image: The target appears to be vulnerable. exploit/windows/local/ppr_flatten_rec: The target appears to be vulnerable.

Teóricamente o host é vulnerável a todos a esses exploits, então resolvi utilizar o ms10_015_kitrap0d.
Eu acho de extrema importância tentar entender o que o exploit faz, e não apenas utilizá-lo. Então sempre uso o show info e vejo as refêrencias sobre o exploit.

"quando o acesso a 16 bits aplicativos está habilitado em uma plataforma x86 de 32 bits, não valida corretamente determinadas chamadas do BIOS, o que permite que usuários locais obtenham privilégios criando uma estrutura de dados VDM_TIB no Thread Environment Block (TEB) e, em seguida, chamando a função NtVdmControl para iniciar o Subsistema Windows Virtual DOS Machine (também conhecido como NTVDM), levando a exceções tratadas incorretamente envolvendo o manipulador de trap #GP (nt!KiTrap0D), também conhecido como "Vulnerabilidade do manipulador de exceção do kernel do Windows"

Ao configurar os parâmetros e excutar o exploit, me deparo com a falha de Acesso Negado.
Obs: A lport (porta local) deve ser diferente da utilizada na sessão criada (por um motivos óbvio, a porta utilizada na primeira sessão já está em uso para a primeira sessão). No meu exemplo usei a porta 4444 no primeira sessão, e estou usando a 4445 nessa.

Então volto para a sessão da shell da máquina invadida para tentar entender sobre as permissões que tenho.
Com o comando whoami consigo ver em qual usuário estou logado, que no caso é p nt authority\network service

Com o comando ps no meterpreter, consigo filtrar todos os processos em execução no alvo, como id, pid, usuário que executa tal processo…etc.

Ao invadir a máquina com o exploit ScStorage, nosso acesso a máquina utilizou rundll32.exe (pid 2224) para a invasão. Ao utilizar o comando ps vejo que o usuário network service não está executando esse processo, o que provavelmente está impactando no problema de permissão.

Nesse caso, utilizei o comando migrate. O comando migrate simplismente irá migrar meu acesso para outro processo que eu escolher. Nesse caso escolhi o processo wmiprvse.exe (pid 1872), o qual nosso usuário network services está executando.

Após migrar o processo, consigo executar com sucesso o exploit ms10_015_kitrap0d e obter acesso privilegiado, assim obtendo as 2 flags user.txt e root.txt

Sobre Vitor Prado 42 Artigos
Nascido e criado nas periferias de Diadema-SP, encontrei no estudo e no conhecimento uma forma alternativa de enfrentar os desafios da vida, apesar das muitas barreiras colocadas no caminho.

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*