skip to content
Gabi Security

CTF - Mr. Robot

/ 6 min read

It's a medium capture the flag and a very fun one.


Mr. Robot

The capture of the flag in this post is from an exploitable virtual machine called Mr. Robot. It is available for download and there is also the possibility of doing it within the TryHackme platform for free.


Machine for ours Capture the Flag

Name: Mr. Robot

Operational system: Linux

Source: https://www.vulnhub.com/entry/mr-robot-1,151/


Lab Setup

For this CTF, two virtual machines will be used: Kali Linux and the Mr. Robot virtual machine. Below I will put the link to download VirtualBox that must be installed to later be able to install the virtual machines. It’s interesting to comment the virtual machines network settings come by default in NAT mode and should be changed to Self hosted.

VirtualBox: https://www.virtualbox.org/

Kali: https://www.kali.org/get-kali/#kali-virtual-machines

This image should be displayed at screen when Mr. Robot virtual machine is running. Let’s go hack! A pug in the woods, wrapped in a blanket


nmap

The virtual machines have the network in bridge mode and share the same IP range, with a simple nmap on my IP range with the mask “/24” it was possible to find the IP of Mr. Robot’s machine, in addition to finding my cell phone and other IoT connected to the network (which i deleted from the image for safety).

nmap

Very similar to Pickle Rick’s CTF which had port 80 for an open HTTP connection, by intuition i copied and pasted the IP into Firefox and voilá!

nmap

I have to point out that, this is a very well made machine, with lots of images and interactions. Realizing that it was a web application, i already prepared gobuster to search for existing pages. When I put gobuster to search, i tried some possibilities manually and found “/robots.txt”

nmap

1º Flag

With robots.txt our first flag appeared, i copied the file name along with the IP in the browser and saved the flag in a notepad.

nmap

As the name “fsociety.dic” appeared, i also copied and pasted it into the browser and it started downloading a file, i tested the file on virustotal to check if there were any problems (you can never be too careful). Virustotal warned that the file was safe, so i opened it and it was a wordlist, which we will probably use later to log in with admin or password.

nmap

gobuster

With the result of the gobuster:

nmap

We discovered that there is a page to log into WordPress!

nmap

Enquanto uma possibilidade era executada, eu tentava outra, como por exemplo tentar nomes como admin e nomes da série do Mr. Robot (que eu sou fã) e acabei achando o nome do elliot para a parte do login.

Antes que era dois campos para encontrar (login e senha), diminuimos pela metade, sendo necessário encontrar a senha agora.

nmap

Sabendo que o nome para login era elliot, busquei elliot na wordlist e achei este nome repetido varias vezes. Então entendi que o arquivo baixado tinha várias linhas repetidas e pensei em eliminar as linhas repetidas com o comando sort.

nmap

WPScan

Eu só utilizava o hydra e comecei a imaginar que o wordpress deve ter modos de busca mais facéis de quebra de senha. Pesquisando acabei chegando em uma ferramenta chamada wpscan, li o estudo manual e fiz algumas tentantivas de como usa-lo, sabendo o usuário, ficou mais facil e acabou funcionando muito bem.

O que facilitou é que a ferramenta wpscan é muito parecida com a utilização do hydra.

Na imagem abaixo é possível ver que achamos a senha para o usuário elliot!

nmap

ER28-0652 Enfim conseguimos a ardua tarefa de logar, pode ver na printscrren abaixo que eu estava fazendo um trabalho de OSINT para buscar mais informações sobre quem estavamos atacando

nmap

Agora vamos procurar algum modo para conseguir uma brecha para fazer uma reverse shell, fiz uma pesquisa no google e cheguei nesse site:

https://www.golinuxcloud.com/set-up-wordpress-reverse-shell/

vou tentar essa primeira a partir da instalação de um plugin com vulnerabilidades, para depois podermos explora-la!

nmap

Exploit Database

Durante a instalação, percebi que a versão era muito atual e possivelmente ela já tinha corrigido este problema, então procurei entender o CVE da versão antiga e vi que era possível baixar o plugin antigo no próprio site que comentava sobre a CVE.

nmap

Msfconsole (Metasploit)

Agora com a instalação completa, vou começar a utilizar o msfconsole e ele tem um pequeno coelho branco quando você inicia ele.

nmap

Agora vou seguir as recomendações e configurações indicadas e deu que o alvo não era exploitable, não sei onde falhei, acho que fiz a instalação correta do plugin exploitable e também a configuração correta das informações, porém decidi continuar em frente para tentar uma nova forma e aprender um novo modo de invasão.

nmap

A forma seguinte seria colocar um código malicioso na página 404, o que eu achei bastante interessante e quis muito fazer, seguindo o passo a passo, coloquei o exploit e o meu ip para liberar o acesso pela porta 8888.

nmap

Netcat

Fiz a utilização do netcat para verificar se o caminho estava aberto e sim estava, então coloquei no navegador o endereço errado para aparecer a página 404 do wordpress e ativar a conexão, nisso deu tudo certo, estamos dentro!

nmap

Fiquei navegando pelo diretório, dei alguns comenados básicos como ‘whoami’ pwd e fui pra home, na home tinha um usuário chamado robot e lá estava a nossa segunda bandeira, porém recebemos um clássico: Permissão denied. Então precisamos escalar privilégio dentro da shell e também apareceu o arquivo password.raw-md5, porém com o ls -la aparece que este nós temos permissão de leitura e bem provavelment está é a senha pro usuário robot para conseguirmos ler a segunda bandeira.

nmap

MD5

No google facilmente tu acha links para decryptar md5 e obtivemos o nosso resultado relativamwnte rapido!

nmap

2 flag

Spaw Shell

Quando tenta mudar o usuário para o robot, aparece que deve ser escrito de um terminal, então para isso precisamos fazer uma técnica chamada spaw shell que pode acontecer através de python, então pesquisei na internet e achei neste site.

https://ed4m4s.blog/spawning-a-shell

Então foi possivel utilizar o comando su robot, colocando a senha que tinhamos conseguido, foi possivel logar e com este login tinhamos permissao de leitura na segunda bandeira.

nmap

3 flag

Bypass with nmap

Após achar a segunda bandeira fiquei pensando que ainda nao tinha acessado a root e que provavlemente estaria na pasta root, porém me peguei em um beco sem saida, sem ter ideia de como acessar a root, comecei a pesquisar as formas possiveis de escalar privilegio, no meio dessas pesquisas acabei achando uma forma sendo executar programas que estão com pregilegio elevado e vi uma forma de pesquisa-los digitando o comando e o resultado apareceu algumas coisas bem interessantes, a mais familiarizado qe eu tenho é o nmap da lista e nao sei se é conincidencia mas só ele esta na pasta local, tanto que tenho ate um post aqui so pra ele.

https://gtfobins.github.io/gtfobins/nmap/

nmap

Tentei essa possibilidade de estar dentro do nmap interativo para ganhar a shell e funcionou!

nmap

Como desde que achamos a primeira bandeira, sabiamos que seria somente tres e após conseguir a segunda e perceber que ainda nao tinhamos ganho o root, foi mais fácil a percepção para chegar na resposta, com a utilização do nmap interactive, foi muito fácil conseguir uma shell com as permissões de administrador e ir para a pasta /root para conseguirmos a nossa terceira bandeira!

nmap

Conclusion