TryHackMe – Mr Robot – CTF

Salva rapaziada, tudo beleza?

Hoje vou trazer a resolução do CTF Mr Robot do Try Hack Me.

Para concluir o CTF, é preciso capiturar 3 flags. Então marcha e boa!

Enumeração

Com o nmap fiz o scanner das portas abertas, e encontrei as portas 80 e 443, rodando um serviço web.

nmap -v -sSV -p- 10.10.36.60

Navegando pela página não encontro nada relevante.
Na aplicação web é possivel utilizar alguns comandos como prepare, fsociety, inform… etc… Os comandos apresentam alguns cenários diferentes sobre a série Mr. Robot, mas nada relevante para invasão da máquina.

Com o gobuster fiz uma busca por diretórios e encontrei alguns diretórios relevantes.
Acessei um por um para procurar por algum vetor de ataque.

Exploração

No diretório robots.txt encontrei 2 arquivos.

http://10.10.36.60/robots.txt

key-1-of-3.txt é a primeira key do desafio.

http://10.10.36.60/key-1-of-3.txt

fsocity.dic é uma wordlist, normalmente as wordlists são utilizadas para ataques de Brute Force (Força Bruta), então o arquivo será util.

http://10.10.36.60/fsocity.dic

O diretório wp-login é a página de login de um wordpress. Com a wordlist encontrada posso tentar um ataque de Brute Force nele.

http://10.10.36.60/wp-login

Para realizar o ataque de força bruta, irei utilizar o hydra. Para utilização do hydra primeiro preciso coletar os parâmetros de login.

Então primeiro utilizei o Burp Suite para coletar as informações necessárias para realizar o brute force pelo hydra.
log – Campo que coleta o usuário de login
pwd – Campo que coleta a senha
Invalid username – Erro que retorna ao tentar fazer login com um usuário invalido

Então primeiro irei realizar o brute force apenas no campo do usuário, pois se eu utilizar a wordlist no campo de Usuário e senha em uma única vez, o tempo que terei que esperar para conclusão será bem maior.

hydra -V -L fsocity.dic -p teste 10.10.36.60 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log:Invalid username."

No comando acima estou informando que o campo de login será a wordlist fsocity.dic, o password será teste, e que quero que o hydra me retorne qualquer resposta que seja diferente de “Invalid username“, assim quando ela encontrar um usuário válido a mensagem de erro irá mudar.

Usuário: Elliot

Agora que descobri o usuário, irei fazer o brute force na senha.

hydra -V -l Elliot -P  fsocity.dic 10.10.36.60 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log:The password you entered for the username"

Agora estou informando que meu login será Elliot e que minha senha será a wordlist fsocity.dic. Também alterei a mensagem de erro, então qualquer coisa que seja diferente de “The password you entered for the username” confirmará a senha válida.

Senha: ER28-0652

E assim consegui me autenticar no wordpress.

De cara vejo que a versão dele é a 4.3.1, isso vai me ajudar a procurar por vulnerabilidades conhecidas nele. Com uma pesquisa rápida no google, encontro o site com algumas formas de invasão.

Resolvi utilizar a edição de uma página já existente para inserir um shell reverso. Em appearence > Editor > 404 Template, eu insiro o código de shell reverse php com as informações do ip do meu host e porta que irá receber o shell reverse.

Após a edição do código da pagina, abro a porta em meu host local e acesso a página através da web. Assim consigo acesso ao shell do servidor.

nc -vnlp 443
http://10.10.36.60/wp-content/themes/twentyfifteen/404.php

No diretório /home/robot, encontrei o arquivo key-2-of-3.txt que aparenta ser a segunda key. Porém apenas o usuário robot tem permissão de leitura da chave.
No mesmo diretório existe um arquivo chamado password.raw-md5, que tudo indica ser a senha do usuário robot criptografada em md5.

Então utilizei o site CrackStation para quebra do hash, e assim consegui me autenticar no usuário robot e descobrir a segunda key.
User: robot
Pass: abcdefghijklmnopqrstuvwxyz

Escalação de Privilégio

Fiz uma pesquisa por arquivos com permissões de SUID, que permite a utilização do meu usuário atual com execução de root. Na pesquisa encontrei o nmap.

find / -user root -perm /4000 2>/dev/null

Em uma breve pesquisa do google, procuro como utilizar o nmap para escalação do privilégio, e assim consigo utilizar o nmap para abrir uma shell com permissões de root, assim conseguindo acesso a terceira e ultima key.

/usr/local/bin/nmap --interactive
!sh

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.


*