
Um artigo sobre a sala THM Vulnerability Capstone & script de exploit para CVE-2018-16763.
Um write-up sobre a sala THM Vulnerability Capstone & script de exploit para CVE-2018-16763.
Não levo crédito pela descoberta desta vulnerabilidade. Agradeço às seguintes pessoas.
Descoberta da Vulnerabilidade:
0xd0ff9
Sala e Autor do TryHackMe:
https://tryhackme.com/room/vulnerabilitycapstone
https://tryhackme.com/p/cmnatic
Referências:
https://github.com/noraj/fuelcms-rce/blob/master/exploit.rb
https://github.com/daylightstudio/FUEL-CMS/issues/478
https://packetstormsecurity.com/files/164756/Fuel-CMS-1.4.1-Remote-Code-Execution.html
1. Execução Remota de Código
Fuel CMS é um sistema de gerenciamento de conteúdo para aplicações web. Na versão 1.4.1, existe uma vulnerabilidade RCE que permite que código PHP arbitrário seja avaliado/executado por meio de duas vias diferentes. O primeiro caminho para RCE é uma requisição GET para /fuel/pages/select/ com o parâmetro filter data. O segundo caminho é uma requisição POST para /fuel/preview com o parâmetro data. Pesquisei na internet por um tempo e, infelizmente, não consegui encontrar o código-fonte mostrando onde estava a vulnerabilidade. Sou péssimo, eu sei... rs. Agora vamos continuar com o write-up!
Vamos começar com algumas varreduras de porta para obter uma visão da nossa superfície de ataque. Eu gosto do rustscan para ter uma visão ampla do alvo antes de fazer uma varredura mais estreita e focada com nmap.

Parece bem padrão. Acredito que será SSH e HTTP nessas portas, no entanto, executaremos mais algumas varreduras com nmap para ter uma ideia mais específica.

Então temos SSH e HTTP rodando em suas portas padrão. Vamos dar uma olhada na página web e ver o que temos!

O servidor web está hospedando Fuel CMS versão 1.4. Esta versão é vulnerável a injeção de comandos via avaliação de código PHP. Vamos dar uma olhada no CVE do NVD abaixo.

Existem múltiplos exploits disponíveis para este software. Eu forneci um exploit em Python, mas é uma porcaria. Chamo de porcaria porque teremos que analisar manualmente a resposta da requisição web para ver a saída dos nossos comandos. Não tive sucesso nas minhas tentativas de cortar a gordura. Vamos dar uma olhada!

Eu executei o comando ls -al. Como podemos ver, a saída do comando está entre os elementos HTML div.

Não vou revelar a flag, mas vou dar uma dica! Você pode começar olhando no diretório home. Obrigado por ler este write-up. Divirta-se!