Home Vulnhub - SkyTower-1
Post
Cancel

Vulnhub - SkyTower-1

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

This post is licensed under CC BY 4.0 by the author.
Contents