Home Vulnhub - MrRobot
Post
Cancel

Vulnhub - MrRobot

Scan/Enumeracao

Host Discovery

Com a opcao -sn escaneamos os possiveis IPs da rede sem escanear as portas, sendo uma boa alternativa para realizar um host-discovery. Descobrimos que o nosso alvo esta no ip 192.168.110.6

1
sudo nmap -n -sn -T5 192.168.110.0/24

Port Discovery

Com o parametro “-p-“ do nmap varremos todas as portas possiveis do nosso alvo e encontramos 03 delas abertas. 22, 80, 443

1
sudo nmap -n -T5 -p- 192.168.110.6

Port Scan

Agora com o parametro “-A” do nmap vamos descobrir mais informacoes sobre essas portas abertas do nosso alvo

1
sudo nmap -n -T5 -A -p 22,80,443 192.168.110.6 

  • Porta 22: closed ssh
  • Porta 80: http Apache httpd
  • Porta 443: ssl/http Apache httpd

Enumeracao/Exploracao Web - Porta 80

Inspecao Visual

Vamos analisar a pagina pelo browser. A pagina permite interacao com o usuario… Mas nao temos nada demais

Analisando o codigo fonte nao encontramos nada de interessante

Fuzzy de diretorios - Gobuster

Ja que nao encontramos nada na pagina principal vamos rodar o gobuster para descobrir arquivos e/ou diretorios da aplicacao. Encontramos varios diretorios… vamos analisa-los

Temos um phpMyAdmin na maquina, porem so esta acessivel no localhost

Conseguimos encontrar paginas de um blog que foi feito em WordPress: /0 e /0000

Na pagina /Image encontramos uma imagem. Baixamos a imagem e analisamos com o binwalk e exiftool porem nao tem anda demais na imagem…

Na pagina /intro temos um video

Na pagina /license temos uma mensagem, porem nada de util

Na pagina /readme temos outra mensagem, mas nada de relevante ate agora

Na pagina /robots encotramos algo interessante… Direcionamento para dois arquivos: fsocity.dic e key-1-of-3.txt

Baixamos para nossa maquina o arquivo fsocity.dic

Acessamos o conteudo do arquivo key-1-of-3.txt

key-1-of-3.txt

O conteudo do arquivo parece ser um hash, porem nao conseguimos decodifi-lo, ainda…

  • 073403c8a58a1f80d943455fb30724b9

fsocity.dic

Abrindo o arquivo temos uma wordlist especifica da maquina.

Tentei rodar o gobuster com essa wordlist e percebi que estava retornando varios resultados repetidos… Entao vamos elimina-los para performatizar o nosso trabalho

Eliminamos as strings repetidas. Agora vamos trabalhar com uma wordlist que tem 1.33% do tamanho da original…

1
2
3
wc -l fsocity.dic 
cat fsocity.dic | sort | uniq > fsocity_performatica.txt
wc -l fsocity_performatica.txt 

Bruteforce WordPress - WFUZZ

Ja que conseguimos uma wordlist direcionada para a maquina, vamos tentar um bruteforce no unico sistema de autenticacao que temos no momento

BurpSuite

Vamos jogar para o burp para pegar o formulario de autenticacao da pagina. Nesse caso temos alguns cookies que devem ser passados na hora do bruteforce…

WFUZZ

Agora vamos montar o nosso comando e realizar o bruteforce na pagina de login. Nao precisa ser bom de matematica para saber que se usarmos a wordlist que simplificamos para o login e senha simultaneamente teremos centenas de milhoes de combinacoes possiveis, o que seria inviavel…

Entao, primeiramente, vamos descobrir o login… Para isso vamos realizar o fuzzy na variavel do login (log) e na variavel da senha (pwd) vamos deixar qlqr string, pois nao e a nossa intecao acha-la agora.

  • Obs: Note que passamos todos os cookies que estavam presentes na requisicao que interceptamos com o burp. Eles sao essenciais para o correto funcionamento do bruteforce
1
wfuzz -c --hl 59 -w fsocity_performatica.txt -b "s_fid=5C8C0DA9C46FAD2D-0CC0910B66C5EE08" -b "s_nr=1619060883629" -b "s_cc=true" -b "s_sq=%5B%5BB%5D%5D" -b "wordpress_test_cookie=WP+Cookie+check" -d "log=FUZZ&pwd=admin&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.110.6%2Fwp-admin%2F&testcookie=1" http://192.168.110.6/wp-login

Agora que encontramos 03 opcoes possiveis para o login vamos descobrir a senha. Podemos aproveitar o mesmo comando anterior, alterando o filtro e a variavel que vamos realizar o fuzzy (pwd)

1
wfuzz -c --hl 58 -w fsocity_performatica.txt -b "s_fid=5C8C0DA9C46FAD2D-0CC0910B66C5EE08" -b "s_nr=1619060883629" -b "s_cc=true" -b "s_sq=%5B%5BB%5D%5D" -b "wordpress_test_cookie=WP+Cookie+check" -d "log=Elliot&pwd=FUZZ&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.110.6%2Fwp-admin%2F&testcookie=1" http://192.168.110.6/wp-login

WordPress

WPScan

Rodamos o WPScan mas nao obtivemos nenhum resultado interessante

1
wpscan --url http://192.168.110.6 -e ap,at,u

Login

Com o bruteforce e algumas tentativas encontramos a credencial elliot:ER28-0652

Com a credencial conseguimos acesso ao painel de administracao do WordPress

Exploracao WordPress

Com base na nossa experiencia vamos dar uma olhada nos plugins e temas da apicacao. Vamos realizar um teste na aba de edicao de Temas para ver se conseguimos edita-lo…

Vamos acessar o painel de edicao de temas

Escolhemos um tema aleatoriamente e escrevemos um comentario

Enviamos o tema editado clicando em “Update FIle” e constatamos que conseguimos editar

Agora o proximo passo e pegar um daqueles “php do mal” que tem no Kali para enviar prar o servidor. Vamos copiar para o diretorio corrente

Vamos editar o Ip e a Porta do arquivo e copia-lo (todo o conteudo)

Apagamos o conteudo do Tema e colamos o nosso payload no lugar. Depois subimos o payload para o servidor

Shell Reverso

Vamos deixar a mesma porta, que configuramos no nosso payload, escutando para receber o shell e acessar a pagina que contem o nosso webshell…

1
nc -lnvp 7777

1
http://192.168.110.6/wp-content/themes/twentyfifteen/404.php

Shell Interativo

Para melhorar o shell que recebemos temos que seguir os seguinte passos

  • Depois de muita luta descobri que nao e bizu utilizar o rlwrap para receber o shell de linux

  • Depois de ter recebido o shell importamos o TTY com o seguinte comando

1
python -c 'import pty;pty.spawn("/bin/bash");'
  • Depois de importar o TTY apertar as teclas CTRL+Z

  • Retornaremos para o terminal da maquina kali. Nele digitaremos

1
stty raw -echo
  • Depois disso digitamos fg e apertamos duas vezes o enter

  • Agora no shell do alvo digitamos export TERM=xterm e PRONTO!

Usuario “daemon”

Arquivos

Seguindo a metodologia verificamos as pastas do diretorio /home, pra verificar os usuarios da maquina

Encontramos o diretorio /home/robot. Temos permissao para acessa-lo. Dentro desse diretorio existem dois arquivos key-2-of-3.txt e password.raw-md5. Conseguimos ler somente o password.raw-md5. O conteudo, aparentemente, e uma credencial, porem a senha e um hash, que possivelmente esta em raw-md5

  • robot:c3fcd3d76192e4007dfb496cca67e13b

hashes.com

Conseguimos decodificar o hash no site hashes.com

  • c3fcd3d76192e4007dfb496cca67e13b:abcdefghijklmnopqrstuvwxyz

Usuario “robot”

Conseguimos logar com o usuario com a credencial robot:abcdefghijklmnopqrstuvwxyz

key-2-of-3.txt

Agora conseguimos ler o arquivo key-2-of-3.txt

  • 822c73956184f694993bede3eb39f959

Escalando privilegio

Seguindo os passos da metodologia, nao encontramos nenhum binarios que podemos executar como sudo. nao encontramos nada de interessante no historico. Conseguimos encontrar algo muito interessante que nao e padrao… Listando os arquivos com permissao SETUID percebemos que o nmap esta com permissao especial para ser executado como se o dono fosse.

1
find / -perm -4000 2> /dev/null

NMAP –interactive

Conseguimos escalar privilelgio com o comando nmap –interactive

1
2
nmap --interactive
> !sh

Usuario “root”

Conseguimos pegar a ultima flag

key-3-of-3.txt

  • 04787ddef27c3dee1ee161b21670b4e4

Bonus

Seja meticuloso!

Na pagina /license olhamos somente a parte superior, porem se rolarmos a barra da pagina para baixo encontraremos mais coisas… Ele nos da um hash

  • ZWxsaW90OkVSMjgtMDY1Mgo=

Decodificando o hash em base64 temos as credencias que conseguimos atrave do bruteforce

1
echo -n "ZWxsaW90OkVSMjgtMDY1Mgo=" | base64 -d

  • elliot:ER28-0652

Metasploit

E possivel explorar o wordpress usando metasploit

This post is licensed under CC BY 4.0 by the author.
Contents