Skip to content

Latest commit

 

History

History
290 lines (210 loc) · 12.3 KB

EscapeTheHack.md

File metadata and controls

290 lines (210 loc) · 12.3 KB

[CTF_EscapeTheHack]

CTF - BesidesSP 2022 17th edition



Iniciando o CTF rodei o nmap para enumerar portas e também uma enumeração de diretórios com o gobuster, posteriormente, executei com o dirb.


Encontrei o diretório /dashboard, onde finalmente entrei no game e criei meu usuário de guerra 3ll10t.



Outro diretório interessante foi o /secret, o qual trouxe a primeira flag e um link para download de um arquivo. Detalhe, a flag estava oculta na página hehe.


flag{37d42478c922df57bdebc1479b8760ff}

Analisando o arquivo, foi possível identificar o formato e uma dica comentada.




Tratando-se de uma imagem, podemos imaginar que tenha algo relacionado a esteganografia. Para isso, entre as opções, temos uma tool chamada stegcracker, na qual é possível fazer um brute-force para encontrar informações ocultas na imagem, combinando stegcrakcer + wordlist.

Ao executar a tool não tive sucesso. Pois, embora sendo uma imagem, não estava com a extensão jpg, jpeg ou algum outro formato que a tool identificasse ser uma imagem.


Criei uma cópia do arquivo com uma extensão válida para executar no stegcracker e rodei novamente.
Encontrado a password mankeysdeda e um output do arquivo em flag01.jpeg.out.


Visualizando o arquivo, foi possível pegar uma dica para acessar um diretório, o que trouxe à flag e um arquivo para download.



flag{e5f8f939ee3273255464223f6b31a612}

Após capturar a flag, o próximo passo foi descompactar o file.tar.gz. O qual trouxe 04 arquivos.data.


Ao executar o file <file.data>, foi possível identificar que o primeiro arquivo na verdade tratava-se de um PDF.




Como não foi possível visualizar o PDF, tentei o mesmo procedimento feito na flag anterior. Criei uma cópia do file.data para file.pdf.



Mesmo assim não foi possível visualizar. Entre algumas tentativas de tools no Kali sem sucesso, recorri a um conhecido site que faz diversos processos em arquivos, entre eles "repair" reparar, principalmente PDFs. Fiz upload do "file.pdf" para o site, com a opção de "repair" recuperar o arquivo. Após a conclusão do processo, realizei o download e foi possível visualizar a string oculta no arquivo indicando o caminho da flag.


Outra opção, aprendida posteriormente seria da seguinte forma. cat flag0* > flags.pdf




Utizando a hash do PDF foi possível chegar ao objetivo.


flag{c6e13a58698dc7a7169aea0a145e3313}

Seguindo uma linha de raciocínio após a dica fornecida:

A=65
B=66
C=67

Veni, vidi, vici            

Se temos A=65, após algumas pesquisas, foi possível identificar que se tratava da tabela ASCII a qual o 65 equivale a letra A.


Porém, temos mais uma dica Veni, vidi, vici, uma famosa frase em latim supostamente dita por Júlio César. O que me fez ligar alguns pontos levando a “Cifras”. A princípio pensei em buscar por “Cifras de César”, mas mantendo as duas dicas, busquei por identificar a cifra, ao invés de focar em um tipo.

  • Identificando a cifra.

O resultado fortaleceu a primeira dica dada anteriormente. Sendo assim, busquei quebrar a cifra com algum ASCII decoder.


Recaptulando temos:

6465687a67616c6f6f6b627420323436313531333434373332
dehzgalookbt 246151344732

Após horas tentando decifrar o resultado, algo sempre esteve muito intrigante, “quantidade de letras = quantidade de números”. Chegando a conclusão de fazer a seguinte tentativa, o que levou a flag e download de um arquivo.

d + 2 = f 
e + 4 = i
h + 6 = n
z + 1 = a
g + 5 = l
a + 1 = b
l + 3 = o
o + 4 = s
o + 4 = s
k + 7 = r
b + 3 = e
t + 2 = v

finalbossrev            


O arquivo aparentemente seria executável no Windows, porém, ao analisar um pouco melhor com file <file.exe> é possível identificar que trata-se de um ELF. Ou seja, pulando a parte técnica, o arquivo pode ser executado no próprio Kali.


Após analisar o arquivo executando o comando string file.exe foi possível identificar que o mesmo foi comprimido com UPX que até então não era do meu conhecimento.
Indo atrás do UPX, encontrei uma tool upx-ucl a qual executei para fazer o decompress do file.exe.




Após o decompress do file.exe, executei ```strings`` novamente, o que trouxe algumas strings aparentemente sendo hashes, e sim, algumas “flags” falsas hehe.

A partir desse ponto fiquei sem recursos...sendo esse o último desafio, essa "última flag" veio após a resolução em live com o desenvolvedor do CTF.

Analisando as hashes é possível perceber que apenas uma difere das demais. “Foi difícil perceber esse detalhe em meio a tantas hashes, após horas fazendo o CTF 😅 ”. Algumas hashes até traziam strings dizendo...“aqui não tem nada” haha...anyway.



Pegando a hash selecionada, identificamos estar em Base64.


Resultado:


A próxima etapa foi decifrar a hash em “Cifras de César” com shift 6. Executando alguns comandos em Python, obtivemos o resultado.

python3
msg = "<your_cipher_here>"
for i in range(len(msg)):
		print(chr(ord(msg[i]) - 6), end='')

Retornamos ao file.exe que anteriormente foi feito o decompress, chmod +x file.exe para dar permissão e ./file.exe para executar.
O programa pede para digitar a chave para descriptografar os dados, que nesse caso é a chave decifrada anteriormente com python, o que trouxe à última flag, finalizando o CTF.


Realizei 4 dos 5 desafios, chegando a metade do último, o qual tivemos a resolução posteriormente, mas fico feliz de ter conseguido chegar até esse ponto.
Em resumo, foi um ótimo aprendizado.

<y0uC4n’tSt0pUs4ll/>