TryHack3M: Subscribe

Classificação : Medium
Criadores : ar33zy, Dex01, 1337rce
Ferramentas : rustscan, nmap, gobuster, burpsuite, sqlmap e splunk
Parte I : Desafio Ofensivo
Enumeração
# rustscan -a 10.10.237.52 -- -A
.----. .-. .-. .----..---. .----. .---. .--. .-. .-.
| {} }| { } |{ {__ {_ _}{ {__ / ___} / {} \ | `| |
| .-. \| {_} |.-._} } | | .-._} }\ }/ /\ \| |\ |
`-' `-'`-----'`----' `-' `----' `---' `-' `-'`-' `-'
The Modern Day Port Scanner.
________________________________________
: http://discord.skerritt.blog :
: https://github.com/RustScan/RustScan :
--------------------------------------
😵 https://admin.tryhackme.com
[~] The config file is expected to be at "/root/.rustscan.toml"
[!] File limit is lower than default batch size. Consider upping with --ulimit. May cause harm to sensitive servers
[!] Your file limit is very small, which negatively impacts RustScan's speed. Use the Docker image, or up the Ulimit with '--ulimit 5000'.
Open 10.10.237.52:22
Open 10.10.237.52:80
Open 10.10.237.52:8000
Open 10.10.237.52:8089
Open 10.10.237.52:8191
Open 10.10.237.52:40009
Começamos com uma varredura do Nmap e encontramos seis portas abertas, das quais apenas as portas 80 e 40009 são relevantes para a parte ofensiva.
# nmap -sV -p22,80,8000,8089,8191,40009 -Pn -T5 10.10.237.52
Starting Nmap 7.93 ( https://nmap.org ) at 2024-05-26 23:22 UTC
Nmap scan report for ip-10-10-237-52.eu-west-1.compute.internal (10.10.237.52)
Host is up (0.00033s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
8000/tcp open http Splunkd httpd
8089/tcp open ssl/http Splunkd httpd
8191/tcp open limnerpressure?
40009/tcp open http Apache httpd 2.4.41
Visitar a porta 40009 por enquanto nos dá apenas 403 respostas em cada recurso, portanto não podemos enumerá-lo ainda mais.

Passamos para o endpoint na porta 80 e visitamos o site e vemos que há uma página de inscrição e login. O registro está desativado no momento e não conseguimos encontrar nenhum outro diretório à primeira vista via Gobuster

Olhando para o código-fonte da página de inscrição, encontramos um pedaço de JavaScript reduzido:

Vamos adicionar o domÃnio capture3millionsubscribers.thm
no arquivo /etc/hosts
do nosso kali
# echo '10.10.237.52 capture3millionsubscribers.thm' >> /etc/hosts
Em seguida alteramos o form action para obter o código de convite inviteCode1337HM.php

Fornecendo o código de convite, obtemos algumas credenciais.

Exploração
E agora podemos fazer login com as credenciais encontradas

E fomos redirecionados para um dashboard, enfrentando salas de treinamento divididas em VIP e free.

Vemos que o status VIP é definido por um parâmetro Cookie, alteramos para true

Definindo como true, podemos chegar à sala Advanced Red Teaming. Aqui deveremos ser capazes de iniciar uma máquina como estamos acostumados no TryHackMe.

Verificando a fonte, vemos um script referenciando um campo oculto para verificar o status VIP

Ele faz uma solicitação para/BBF813FA941496FCE961EBA46D754FF3.php

Depois de adicionar admin1337special.hackme.thm
em /etc/host
entrar em contato com ele, somos redirecionados para /public/html
, mas este site ainda nos dá um 403
.

Usando o gobuster nesse diretório conseguimos localizar a página de login, talvez aqui possamos fazer uso do token.

E temos uma página para fornecer um token. Usamos o token.

Depois de fornecer o token, somos solicitados a fazer login, mas não encontramos nenhum crédito de administrador até agora. Tentar os créditos de inscrição não funciona.

Capturamos uma solicitação de login arbitrária para usar o SQLMap, talvez consigamos despejar o banco de dados atrás do login.

Salvar em um arquivo txt
$ cat myinj
POST /api/login.php HTTP/1.1
Host: admin1337special.hackme.thm:40009
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://admin1337special.hackme.thm:40009/public/html/login
Content-Type: application/json
Origin: http://admin1337special.hackme.thm:40009
Content-Length: 39
Connection: close
Cookie: PHPSESSID=vdcfcvlf88u99gjocfefqj1lpr
{"username":"admin","password":"12345"}
Acionando o SLQMap na solicitação, podemos fazer dump do banco de dados

Após o login, estamos no painel e podemos selecionar uma ação, escolhendo Inscrever-se e depois Definir Opções, nada acontece à primeira vista.

Mas depois de voltar para hackme.thm/ a bandeira final é apresentada.

Parte II : Desafio Defensivo
Vamos para Pesquisa e relatórios e fornecemos a seguinte consulta.
index=*
com um tempo de All time
.

Observamos o user-agent para descobrir quais requisições foram feitas, e descobrimos a ferramenta

Para descobrir o IP de origem do invasor basta filtrar pelo user_agent.

Para filtrar os eventos observados pelo ip filtramos pelo ip:

Tentamos filtrar todas as consultas feitas no bloco de dados bruto para determinar a tabela de destino.

Usamos o cyberchef para decodificar o URI

Last updated