Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pfsense-limiter-number — pfSense CE 2.9.0-DEVELOPMENT - Alta - Remota - RCE - limitador número dnctl | Kitploit
Ferramentas/GitHubGitHub/abraxas/pfsense-limiter-number
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControleRed TeamingLabs e Prática
GitHubabraxas/pfsense-limiter-number

pfsense-limiter-number

pfSense CE 2.9.0-DEVELOPMENT - Alta - Remota - RCE - limitador número dnctl

Ver Repositório
11há 2 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Abraxas Labs - pfsense-limiter-number

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-limiter-number

pfsense-limiter-number

Classe: RCE Alcance: Remoto

pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org

Os Limiters do Traffic Shaper emitem um campo number oculto na edição. A criação sobrescreve esse número com dnpipe_find_nextnumber(). A edição não. validate_input nunca verifica number. GetNumber() é concatenado sem aspas em dnctl pipe|sched|queue delete. O mwexec do PHP é /bin/sh -c. O privilégio é page-firewall-trafficshaper-limiter, não Diagnostics: Command.

IDsem CVE ainda
ClasseRCE
AlcanceRemoto (WebGUI autenticada)
CWECWE-78
CVSSAlto: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProdutopfSense CE
Afetado2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) limiter number
AutenticaçãoSessão WebGUI com page-firewall-trafficshaper-limiter
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1

Fixe o master público 9363ac5. O lab é um gadget PHP de ReadConfig / SetNumber / delete_queue fixados. Loopback 127.0.0.1:18840.

O que um atacante pode fazer

MétodoSinkPrivilégio
Criar um limiter, POST save com number do atacante, depois excluir esse limitermwexec("/sbin/dnctl pipe delete " . $this->GetNumber()) (shaper.inc:3820)Integridade (comprovada em lab): shell root. Lab: edit-delete escreveu o witness (edit-delete-exec=yes). A sobrescrita na criação e o caminho apply-file não escreveram nenhum.
Mesmo shell rootfilesystem do hostRecon (inferido): config.xml, chaves.
Shell root ou dnctl de números do atacantedummynetDisponibilidade (inferida): interrupção do limiter / dummynet.

Comprovado em lab vs inferido: sobrescrita na criação (sem witness), caminho apply-file (dnctl de um arquivo, sem witness) e execução edit-delete (witness) são comprovados em lab. O recon do filesystem é inferido a partir do PHP-FPM root.

Requer: sessão WebGUI com page-firewall-trafficshaper-limiter. CSRF no POST save. O delete é GET action=delete.

Superfície adjacente que permanece fechada

SuperfícieLab
Caminho de criaçãodnpipe_find_nextnumber() sobrescreve, create-overwrites=yes
Caminho de aplicaçãodnctl de /tmp/rules.limiter, nome de arquivo não controlado pelo usuário, apply-file=yes
Conjunto de caracteres do nome do limiter^[a-zA-Z0-9_-]+$
Não autenticadofechado
Diagnostics: Commandpermanece fechado a menos que também seja concedido

Parâmetros AQM em /tmp/rules.limiter são linguagem dummynet extra, não este resquício.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18840. Projeto Compose pfsense-limiter-number. Tag da imagem pfsense-limiter-number:2.9.0-dev. Witness PFSENSE-LIMITER-NUMBER-WITNESS. Última linha:

SUCCESS PFSENSE-LIMITER-NUMBER create-overwrites=yes apply-file=yes edit-delete-exec=yes PFSENSE-LIMITER-NUMBER-WITNESS

A correção

Faça cast para int de GetNumber() antes de cada dnctl. Ignore o number do POST na edição, ou faça verificação de intervalo contra o id dummynet ativo. A criação já sobrescreve; faça a edição fazer o mesmo.

Referências

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • shaper.inc delete_queue / GetNumber
  • firewall_shaper_vinterface.php
  • CWE-78
Baixar ferramenta