Link da Maquina: https://www.vulnhub.com/entry/skytower-1,96/
Scan/Enumeracao
Host Discovery
Com o arp-scan descobrimos que o nosso alvo esta no ip 192.168.110.4
1
sudo arp-scan -I eth1 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, 3128
1
sudo nmap -n -T5 -p- 192.168.110.4
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,3128 192.168.110.4
- Porta 22: filtered
- Porta 80: Apache httpd 2.2.22 ((Debian))
- Porta 3128: http-proxy Squid http proxy 3.1.20
Enumeracao/Exploracao Web - Porta 80
Inspecao Visual
Primeiramente vamos analisar a pagina web accesando-a pelo browser. Temos na pagina um formulario para login na aplicacao
- No codigo fonte nao ha nada de interessante
Fuzzy de Diretorios - Gobuster
Vamos rodar o gobuster para tentar descobrir arquivos e/ou diretorios da aplicacao.
1
gobuster dir -u http://192.168.110.4/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Encontramos o diretorio /background e /background2 que contem uma imagem, cada
Baixamos a imagem para a nossa maquina e vamos analisar os seus metadados…
- Binwalk
- Exiftool
SQLInjection
Testamos se a aplicacao esta vulneravel a SQLI e obtivemos um resultado positivo…
Passamos o caractere “’” (aspas simples) no campo email e “1=1#” no campo password
BurpSuite
Vamos utilizar o Burp para deixar mais performatica a nossa experiencia com SQLI da aplicacao
Vamos utilizar o modo “Repeater” do Burp, para isso basta clicar em “Actions” -> “Send to Repeater”
Depois de tentar varias tecnicas para bypass de autenticacao obtivemos sucesso. Vale notar que a aplicacao esta filtrando a string “or”, pois so conseguimos bypassar quando utilizamos o “ | ”. A senha pode ser qualquer coisa, pois ja esta comentada pelo nosso payload |
1
admin' || '1'='1'#
Apos ter logado na aplicacao conseguimos algumas informacoes valiosas… O email do usuario john@skytech.com. No recado esta dizendo que todos os contratos internacionais foram encerrados e esta pedindo para o usuario acessar, por motivos de seguranca, via SSH. A credencial para acesso via SSH e: john:hereisjohn
SSH
A porta do SSH esta filtrada… Lembra que no Scan tinha uma porta 3128 de proxy, entao vamos tentar usa-la para entrar
ProxyChains
Para usar o proxy em comando no terminal podemos utilizar o proxychains… Entao vamos adicionar o proxy do alvo no arquivo de configuracao do programa
1
sudo nano /etc/proxychains4.conf
1
http 192.168.110.4 3128
SSH - Proxychains
Nao conseguimos receber o shell do usuario, apesar de ter conseguido autenticar…
1
proxychains ssh john@192.168.110.4
Para contonar esse problema conseguimos receber o shell do usuario utilizando o “/bin/bash” no final do comando ssh
1
proxychains ssh john@192.168.110.4 /bin/bash
Recebemos o shell do usuario
Usuario John
Nao consguimo melhorar o shell. Entao vamos verificar o porque nao estamos conseguindo… Nao e essencial “melhorar” o shell, mas sim uma boa pratica que vai facilitar, e muito, a nossa experiencia na maquina alvo…
Lendo o arquivo “.bashrc” vemos que ele esta nos impedindo o nosso upgrade do shell
Agora vamos renomear o arquivo para a sessao nao “puxar” as configuracoes dele e conseguimos realizar o upgrade do nosso shell!
Linpeas
Agora vamos comecar a enumeracao para escalar privilegio. Para isso vamos usar o script linpeas que pode ser encontrado facilmente no github… Depois de te-lo baixado vamos levantar um servidor http com python em nossa maquina e baixar via wget no alvo…
O proximo passo e dar permissao de execucao para o arquivo e executa-lo
Podemos observar que a porta 3306 esta aberta par o localhost. Provavelmente sera o Banco de Dados
Encontramos alguns usuarios ativos do servidor
Nao encontramos mais nada de interessante com o script
MySQL
Sabemos que o banco de dados esta em operacao… Mas nao temos a credencial para acesso-lo, ainda…
O principal local para procurar a credencial do Bando de Dados e no arquivo de autenticacao da aplicacao web. Pois sabemos que ele faz uma conexao com o banco para poder buscar dados dos usuarios para poder autenticar o login na web…
Conseguimos encontrar a credencial root:root no arquivo /var/www/login.php
Logamos no mysql
Listamos os bancos de dados existentes
Listamos as tabelas do banco SkyTech
Listamos o conteudo da tabela login do banco SkyTech
Encontramos 03 credenciais:
- john@skytech.com:hereisjohn
- sara@skytech.com:ihatethisjob
- william@skytech.com:senseable
Usuario Sara
Tentamos logar com o usuario “William” porem nao conseguimos… O login com o usuario “Sara” deu certo
Repetimos o mesmo processo do usuario John com o arquivo “.bashrc” deste usuario, para conseguirmos melhorar o shell
Escalando Privilegio
Ao verificarmos o que poderiamos executar com o “sudo”, vimos que podemos executar o binario “cat” e “ls” em arquivos que estejam no diretorio “/accounts”, como root
Nao conseguimos escalar privilegio com esses binarios…
Mas conseguimos ler arquivos como root. Entao vamos pegar a flag
Root
A flag e a senha do root
Conseguimos logar via SSH com a credencial root:theskytower