Home Vulnhub - TommyBoy-1
Post
Cancel

Vulnhub - TommyBoy-1

Link da Maquina: https://www.vulnhub.com/entry/tommy-boy-1,157/

Scan/Enumeracao

Host Discovery

  • Com o arp-scan descobrimos que o nosso alvo esta no ip 192.168.150.118
1
sudo arp-scan -I eth1 192.168.56.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, 8008
1
sudo nmap -n -T5 -p- 192.168.56.106

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,8008 192.168.56.106

  • Porta 22: OpenSSH 7.2p2 Ubuntu 4ubuntu1 (Ubuntu Linux; protocol 2.0)
  • Porta 80: Apache httpd 2.4.18 ((Ubuntu))
  • Porta 8008: Apache httpd 2.4.18 ((Ubuntu))

Enumeracao/Exploracao Web - Porta 80

Browser

  • O primeiro passo quando temos uma aplicacao web e verifica-la no browser

Codigo Fonte

  • Quando temos uma pagina web e nosso DEVER olhar o codigo fonte!

  • Nos comentarios do codigo fonte tem uma conversa entre o Nick e o Richard sobre o acesso a algum blog. O Nick disse que escondeu o blog no lugar que aparece em um video do youtube

Fuzzy de diretorios - Gobuster

  • No primeiro gobuster ele retornou varios diretorios com o codigo 301, que significa redirecionamento
1
gobuster dir -u http://192.168.56.106 -w /usr/share/wordlists/dirb/big.txt 

  • Para contornar isso vamos utilizar o grep para retirar o que nao queremos ver
1
gobuster dir -u http://192.168.56.106 -w /usr/share/wordlists/dirb/big.txt | fgrep -v 301

/robots.txt

  • Quando fizemos o port scan da maquina o nmap ja tinha nos retornado o robots.txt, e agora com o gobuster confirmamos a existencia dele. Acessando ele temos algumas paginas…

  • /6packsofb…soda
  • /lukeiamyourfather
  • /lookalivelowbridge
  • /flag-numero-uno.txt

/6packsofb…soda

  • Acessando a pagina so temos uma foto que, a principio, nao tem nada de interessante

/lukeiamyourfather

  • Temos somento uma imagem inutil nessa pagina

/lookalivelowbridge

  • Mais uma imagem inutil

/flag-numero-uno.txt

  • No texto esta dizendo que essa e a primeira de cinco flags da maquina: B34rcl4ws

Wordpress - 192.168.56.106/prehistoricforest

  • Seguindo a dica do comentario o lugar do que aparece no video do youtube e o PREHISTORIC FOREST

  • Conseguimos acessar o blog pelo browser

Posts Blog

  • Conseguimos achar algumas informacoes importantes nos posts do blog

  • Achamos o caminho da segunda flag no comentario do primeiro post do blog. Conseguimo pega-la

  • O quarto post esta protegido por senha

  • No ultimo post um dos usuarios pede a senha para ver o post protegido que encontramos anteriormente. O dono do post com senha diz que a senha esta no diretorio /richard

/richard

  • No diretorio informado tem somente uma imagem

Analisando a imagem

  • Baixamos a imagem para a kali para verificar o que ela vai nos fornecer…

  • O comando “binwalk” nao retornou nada de interessante

  • Com o comando “strings” conseguimos verificar que foram modificados alguns metadados da imagem

  • Agora com o comando “exif” conseguimos verificar a dica de uma forma mais performatica

Comentario Bloqueado

  • Tentamos jogar o o comentario que encontramos na foto como senha mas nao deu certo

  • Entao jogamos no google o comentario e observamos que se trata de um hash MD5

  • A ferramente conseguiu decodificar o hash que passamos: spanky

  • Lendo o comantario temos algumas informacoes importantes, mas resumindo, o importante e que temos FTP rodando na maquina, com um usuario nickburns com senha fraca, em uma porta que nao e a padrao (21) e que e sobe e cai de 15 em 15 minutos

FTP - Porta 65534

  • Rodamos o nmap e nao retornou nada, entao esperamos aproximadamente 15 min e rodamos novamente o nmap e conseguimos achar a porta aberta que esta o FTP

Hydra FTP

  • Ja que conseguimos a dica que o usuario possui uma senha fraca, entao vamos tentar quebrar com o hydra

  • Uma boa pratica para utilizar o hydra e utilizar o parametro “-e nsr” que fara com que o hydra teste a senha com o mesmo nome do usuario, senha nula e o nome do usuario de tras pra frente. Conseguimos achar a credencial nickburns:nickburns

1
hydra -l nickburns -P /usr/share/wordlists/rockyou.txt ftp://192.168.56.106 -s 65534 -f -e nsr -vV -I

Login FTP

  • Agora vamos logar no FTP e baixar o arquivo “readme.txt” que ta la dentro
1
ftp 192.168.56.106 65534

  • Obs: Sempre que temos uma aplicacao e nao temos a senha e uma boa praticar testar as senhas obvias e a senha padrao da aplicacao

  • O arquivo fala algo sobre um diretorio chamado “/NickIzL33t que esta em algum lugar da maquina, que a principio temos permissao de escrita nele e la tem um arquivo compactado e criptografado das senhas do Diretor da Empresa (Big Tom). Parece que tem uma dica da senha para descriptografar o arquivo…

  • Depois de varias tentativas nao encontramos esse diretorio na porta 80

Enumeracao/Exploracao Web - Porta 8008

Browser

  • Acessando pelo browser, temos uma mensagem do usuario. A pagina diz que e apenas para as coisas secretas do usuario Nick… Bom, pode ser que aquele diretorio dos arquivos pessoais do Nick esteja aqui

/NickIzL33t

  • Conseguimos achar o diretorio, porem, a principio nao tem nada. Apenas uma mensagem dizendo que somente o usuario Nick e Steve Jobs podem ver o conteudo…

User Agent

  • Parece que temos uma pegadinha aqui… Para conseguir acessar o conteudo temos que mudar o useragent do navegador para um da apple, na verdade tem que ser um useragent de um Iphone. Utilizamos a extensao do Firefox “User-Agent Switcher and Manager para mudar o user agent e conseguimos avancar essa etapa…

  • Agora conseguimos ter acesso ao diretorio, porem para acessar o conteudo temos que passar o nome corretamente do arquivo .html

Gobuster - Procurando o arquivo html

  • Para descobrir qual e o nome do arquivo utilizamos o gobuster para testar os possiveis nomes do arquivo. Ele nos retornour falsos positivos, mas conseguimos achar o nome do arquivo: /fallon1.html . Lembrando que temos que passar o user agent correto para conseguirmos acessar.
1
gobuster dir -a "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/80.0.3987.95 Mobile/15E148 Safari/604.1" -u http://192.168.56.106:8008/NickIzL33t -w /usr/share/wordlists/rockyou.txt -x html | grep 200

/fallon1.html

  • Conseguimo entrar na pagina web

Dica (hint.txt)

  • No primeiro link que aparece na pagina temos algumas dicas para formar a senha para descriptografar o arquivo de senhar do Big Tom

  • “bev”
  • 01 caractere maiusculo
  • 02 numeros
  • 02 caracteres minusculos
  • 01 simbolo (caractere especial)
  • Por ultimo, o ano que Tommy Boy estreou nos cinemas

Flag (flagtres.txt)

  • Achamos mais uma flag no segundo link da pagina

Backup de Senhas (t0msp4ssw0rdz.zip)

  • No terceiro link conseguimos baixar o arquivo de backup de senhas do Big Tom

Criando a Wordlist

  • Sabemos que a senha comeca com “bev” e termina com o ano que Tommy Boy estreiou nos cinemas (1995). E no meio tem 01 caractere maiusculo, dois numeros, 02 minusculos e 01 especial. Entao vamos fazer um script para poder gerar a wordlist

Crunch

  • Vamos criar uma wordlist com o crunch, propragam especifico para criar wordlists…

  • Aqui esta a sintaxe utilizada para o comando crunch

  • Formato da nossa senha: “bev[A-Z][1–9][1–9][a-z][a-z][symbol]1955”

  • Chega de teoria e vamos criar a nossa senha…

1
crunch 13 13 -t bev,%%@@^1995 -o bigtom_wordlist.txt

Script python

  • Para fins didaticos vamos demonstrar tambem um script em python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/python
import string
import itertools
prefix = 'bev'
suffix = '1995'
uppercase = list(string.ascii_uppercase)
lowercase = list(string.ascii_lowercase)
numbers = list(string.digits)
symbols = list('$%^&*()-_+=|\<>[]{}#@/~')
part1 = uppercase
part2 = [''.join(s) for s in itertools.product(numbers, repeat=2)]
part3 = [''.join(s) for s in itertools.product(lowercase, repeat=2)]
part4 = symbols
candidates = reduce(lambda a,b: [i+j for i in a for j in b], [part1, part2, part3, part4])
for candidate in candidates:
  print prefix + candidate + suffix

![](/assets/img/Vulnhub/TommyBoy-1/script-python-wordlist.png)
  • Agora e so salvar, dar permissao e executa-lo jogando a saida para um arquivo…

Fcrackzip - t0msp4ssw0rdz.zip

  • Vamos quebrar a senha do arquivo .zip com o fcrackzip… Caso nao tenha na maquina e so baixar, ele ja esta no repositorio da kali
1
fcrackzip -v -D -u -p bigtom_wordlist.txt t0msp4ssw0rdz.zip 

  • Conseguimos achar a senha: bevH00tr$1995

Unzip - t0msp4ssw0rdz.zip

  • Descompactamos o arquivo com a senha encontrada

t0msp4ssw0rdz.zip - passwords.txt

  • Lendo o arquivo descompactado conseguimos observar algumas credenciais do Big Tommy

Blog Callahan - WordPress

  • Tentamos logar com alguma das credenciais que encontramos no arquivo porem nao conseguimos nada de interessante

WPSCAN

  • Ja que e um wordpress vamos rodar o wpscan procurando por plugins, temas e usuarios
1
wpscan --url http://192.168.56.106/prehistoricforest -e ap,at,u 

  • Conseguimos achar alguns usuarios
    • tommy
    • richard
    • tom
    • Tom Jr.
    • Big Tom
    • michelle

Brute Force

  • Depois de varias tentativas, sem sucesso, com as senhas que tinhamos encontrado vamos fazer um bruteforce na pagina de login da aplicacao. Vou demonstrar de duas formas para fins de registro

WPScan

1
sudo wpscan --url http://192.168.56.106/prehistoricforest -U usuarios-wp.txt -P /usr/share/wordlists/SecLists/Passwords/darkweb2017-top10000.txt

  • Conseguimos achar a credencial: tom:tomtom1
  • Utilizamos essa wordlist para ser um pouco mais rapido, poderia ser a rockyou tbm

WFUZZ

1
wfuzz -c --hl 71,72 -w usuarios-wp.txt -w password_wp.txt -d "log=FUZZ&pwd=FUZ2Z" http://192.168.56.106/prehistoricforest/wp-login.php

  • Conseguimos obter o mesmo resultado: tom:tomtom1
  • Utilizamos uma wordlist que criamos para fins didaticos
  • Para verificar como e o formulario de envia (POST) podemos utilizar o BurpSuite ou entao usar a ferramente de desenvolvedor do navegador clicando em Network -> Request

Login WordPress

  • Conseguimos realizar o login com a credencial encontrada.

  • Nao conseguimos encontrar nada exploravel que nos retornasse um shell do alvo

  • Lembrando da dica que tinha no arquivo das senhas… Dizia algo sobre o complemento da senha de um dos usuarios escrito no rascunho do blog

  • Tem algo nos rascunhos desse ususario…

  • O rascunho diz que a parte numerica, do usuario bigtommysenior, que falatava da senha e 1938!!. A senha completa e: fatguyinalittlecoat1938!!

SSH

  • No arquivo passwords.txt diz que o usuario bigtommysenior e do servidor Callahan.

  • Conseguimo logar na servidor via ssh

1
ssh bigtommysenior@192.168.56.106  

Usuario Bigtommysenior

  • Conseguimos encontrar a quarta flag

Quinta e ultima flag

  • Na quarta flag tinha uma dica dizendo que a ultima flag esta no arquivo “5.txt”

  • Com o find procuramos onde esta o arquivo e realmente ele esta no /, so que esta oculto

  • Verificamos que nao conseguimos ler o arquivo, pois o mesmo pertence ao usuario “www-data” e somente o dono pode ler

  • Entao vamos escalar privilegio para o ususario “www-data” para conseguir a ultima flag

  • Vamos procurar por diretorios que temos permissar de escrita. Achamos um interessante…

1
find / -type d -writable 2> /dev/null | grep -v sys

  • Achamos um interessante: /var/thatsg0nnaleaveamark/NickIzL33t/P4TCH_4D4MS/uploads

P4TCH_4D4MS

  • Achamos a pagina web para upload no endereco: http://192.168.56.106:8008/NickIzL33t/P4TCH_4D4MS/

  • No arquivo index.html diz que so esta aceitando subir imagens para o servidor

  • Lendo o .htaccess podemos ver que esta aceitando arquivos do tipo “.gif”

Shell Reverso - www-data

  • Copiamos o /usr/share/webshells/php/php-reverse-shell.php e alteramos o IP e a PORTA para conseguir o shell reverso

  • Agora vamos mudar o magic number do arquivo para ele ser reconhecido como GIF e mudar tambem a extensao do arquivo para .gif

  • Conseguimos subir o arquivo que contem o nosso payload

  • Agora e so deixar a porta escutando na kali e chamar o nosso backdoor para conseguir o shell

  • Conseguimos o Shell do usuario www-data

Flag 5

  • Conseguimos pegar a ultima flag

LOOT.ZIP

  • Na quinta flag ele diz que se juntarmos o conteudo das 5 flags formara a senha para descompactar o arquivo LOOT.zip… Entao vamos la

  • Juntando o conteudo de todas as flags temos: B34rcl4wsZ4l1nskyTinyHeadEditButtonButtcrack

  • Conseguimos descompactar e terminar a maquina!

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