Skip to content

igorbf495/writeup-chemistry-htb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 

Repository files navigation

writeup-chemistry-htb

OBS: CONTEM SPOILER !!!!! SE VC ESTIVER FAZENDO ESSE CTF E NAO QUISER SABER ONDE ESTAO AS FLAGS SEM NEM AO MENOS TENTAR, NAO TERMINE DE LER ESSE WRITEUP

alvo: 10.10.11.38

primeiro vamo começar fazendo um reconhecimento, apra procurar por portas aberta nesse ip.

image

vimos que tem dois serviços rodando, ssh na porta padrão e a porta 5000, vou tentar acessar essa porta 5000 na web

image

encontramos esse CIF Analyzer, não sei o que é, então fui dar uma pesquisada, parece que é um sistema que extrai informações de ligação de arquivos de informações cristalográficas (CIF), vou clicar em register para me registrar e conheçer melhor a aplicação

image

aqui vemos que da pra fazer um upload de arquivo CIF válido

cliquei em here para ele baixar esse example.cif para eu tentar entender melhor como funciona esse cif

image

analisei e mesmo assim não sai do lugar, mas vi que CIF significa Crystallographic Information Files, vou pesquisar se existe algum cve desse tipo de arquivo

image

depois de um bom tempo de pesquisa, encontrei algo interessante no CVE-2024-23346 que se refere à uma vulnerabilidade crítica no pymatgen, uma biblioteca Python de código aberto utilizada para análise de materiais.

https://ethicalhacking.uk/cve-2024-23346-arbitrary-code-execution-in-pymatgen-via-insecure/#gsc.tab=0

aqui encontrei o seguinte exploit:

image

fui pesquisar mais sobre essa vulnerabilidade desta lib pymatgen e encontrei o seguinte exploit no github:

https://github.com/materialsproject/pymatgen/security/advisories/GHSA-vgv8-5cpj-qj2f

image

depois de um bom tempo de pesquisa, vou tentar montar meu exploit a partir do arquivo exemple.cif que encontramos lá e tentar explorar essa vuln

Quando vejo que posso fazer um upload de arquivos, logo penso em reverse shell. Fui pesquisar sobre execução de comandos de sistema em python.

Agora, voltando lá no arquivo que baixamos, contém o seguinte conteúdo:

image

De acordo com minha pesquisa, essa é a parte do exploit que executa comando:

_space_group_magn.transform_BNS_Pp_abc 'a,b,[d for d in ().class.mro[1].getattribute ( *[().class.mro[1]]+["sub" + "classes"]) () if d.name == "BuiltinImporter"][0].load_module ("os").system ("touch pwned");0,0,0'

vou tentar adaptar o arquivo exemple.cif e transformá-lo em um exploit.

Depois de muitas tentativas e erros, finalmente consegui montar meu exploit. Ficou da seguinte forma:

image

o intuito desse exploit eh ver se conseguimos um RCE (execução de código remoto) no servidor que processa arquivos .cif. O exploit injeta um comando de shell reverso que tenta se conectar de volta ao servidor do atacante (eu), fornecendo uma shell remota.

Deixei meu servidor escutando na porta que coloquei no exploit:

image

agora, vamos fazer o upload do meu arquivo exemple.cif (exploit).

image

arquivo upado, agora, precisamos executar ele. Para isso, irei clicar bo botao view para abrir(executar) o arquivo, e ver se tivemos respostas.

nao deu certo, mas depois de alguns ajustes consegui.

image

conseguimos executar comandos no sistema, encontramos uma vulnerabilidade RCE, estamos conectados no alvo atravez de um reverse shell. Agora vamo explorar diretorios e arquivos do servidor.

image

apos explorar os diretorios, o unico arquivo suspeito que encontrei foi um database.db

image

enviei esse arquivo para meu pc, para analisar.

acessei o db usando o sqlite3 e encontramos o seguinte:

image

users e passwords criptografados, provavelmente uma hash md5, vamos descobrir se nosso velho amigo crackstation.net da conta dessas.

apos algumas tentativas, so consegui quebrar esse hash que corresponde ao user "rosa":

image

vamos testar o login na aplicacao com esse user e senha que descobrimos

image

logamos. image

sabe mais onde podemos tentar logar com esse user? Exatamente.

Lembra quando usamos o nmap para procurar por portas e servicos abertos? A porta ssh esta open.

image

Dei enter e logo de cara veio aquela pergunta de yes or no, entao, esse user existe. Agora vamos colocar a hash que quebramos.

image

Estamos dentro. Conseguimos acessar o servidor da aplicacao via ssh.

Agora eh continuar explorando, logo de cara, dei um ls para ver oq tinha nesse dir e finalmente... Encontramos a primeira flag:

image

Precisamos encontrar agora a flag root.

Depois de muito tempo procurando e nao encontrar nada, resolvi usar o nmap mais uma vez e encontrei algumas portas abertas localmente. Entao fiz um tunelamento ssh para permitir meu acesso `a um servico que esta disponivel apenas localmente no host como se ele estivesse rodando em minha maquina:

image

Acessei na web e fui analisar.

era uma outra aplicacao rodando, que coletava dados e exibia em graficos. Entao iniciei minha pesquisa nessa aplicacao usando ferramentas e scripts de coleta de dados. Depois de ter pesquisado batante, usei o whatweb para analistar as tecnologias utilizadas.

image

Encontramos tecnologias utilizadas pelo servidor e suas versões. Vimos que o servidor http é python e a biblioteca é aiohttp/3.9.1. Então fui pedir ajuda ao pai dos burros (Google) para ver se tinha algum cve dessa lib do python.

image

Encontrei o seguinte cve:

https://github.com/z3rObyte/CVE-2024-23334-PoC

peguei o exploit desse cve, modifiquei de acordo com o meu cenário e executei.

image

consegui burlar o sistema e finalmente obtive a flag root.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published