Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pfsense-limiter-number — pfSense CE 2.9.0-DEVELOPMENT - Alta - Remota - RCE - número de limitador dnctl | Kitploit
Herramientas/GitHubGitHub/abraxas/pfsense-limiter-number
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlRed TeamingLabs y Práctica
GitHubabraxas/pfsense-limiter-number

pfsense-limiter-number

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

Ver Repositorio
11hace 2 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Abraxas Labs - pfsense-limiter-number

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

pfsense-limiter-number

Clase: RCE Alcance: Remoto

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

Los Limitadores del Traffic Shaper emiten un campo number oculto al editar. Create sobrescribe ese número con dnpipe_find_nextnumber(). Edit no lo hace. validate_input nunca verifica number. GetNumber() se concatena sin comillas en dnctl pipe|sched|queue delete. El mwexec de PHP es /bin/sh -c. El privilegio es page-firewall-trafficshaper-limiter, no Diagnostics: Command.

IDsin CVE todavía
ClaseRCE
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
ProductopfSense CE
Afectado2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) limiter number
AutenticaciónSesión WebGUI con page-firewall-trafficshaper-limiter
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Fijé el master público 9363ac5. El laboratorio es un gadget PHP de ReadConfig / SetNumber / delete_queue fijados. Loopback 127.0.0.1:18840.

Qué puede hacer un atacante

MétodoSinkPrivilegio
Crear un limiter, POST save con number del atacante, luego eliminar ese limitermwexec("/sbin/dnctl pipe delete " . $this->GetNumber()) (shaper.inc:3820)Integridad (probado en laboratorio): shell root. Laboratorio: edit-delete escribió el testigo (edit-delete-exec=yes). La sobrescritura de Create y la ruta apply-file no escribieron ninguno.
Mismo shell rootsistema de archivos del hostRecon (inferido): config.xml, claves.
Shell root o dnctl de números del atacantedummynetDisponibilidad (inferida): interrupción del limiter / dummynet.

Probado en laboratorio vs inferido: la sobrescritura de create (sin testigo), la ruta apply-file (dnctl de un archivo, sin testigo) y la ejecución de edit-delete (testigo) están probadas en laboratorio. El reconocimiento del sistema de archivos se infiere de PHP-FPM como root.

Requiere: sesión WebGUI con page-firewall-trafficshaper-limiter. CSRF en POST save. Delete es GET action=delete.

Superficie adyacente que permanece cerrada

SuperficieLaboratorio
Ruta Creatednpipe_find_nextnumber() sobrescribe, create-overwrites=yes
Ruta Applydnctl de /tmp/rules.limiter, nombre de archivo no controlado por el usuario, apply-file=yes
Conjunto de caracteres del nombre del limiter^[a-zA-Z0-9_-]+$
Sin autenticacióncerrado
Diagnostics: Commandpermanece cerrado a menos que también se otorgue

Los parámetros AQM en /tmp/rules.limiter son lenguaje dummynet adicional, no este remanente.

Laboratorio

cd lab
./run.sh

Loopback 127.0.0.1:18840. Proyecto Compose pfsense-limiter-number. Etiqueta de imagen pfsense-limiter-number:2.9.0-dev. Testigo PFSENSE-LIMITER-NUMBER-WITNESS. Última línea:

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

La solución

Convertir a int GetNumber() antes de cada dnctl. Ignorar el number del POST al editar, o verificar su rango contra el id de dummynet activo. Create ya sobrescribe; hacer que edit haga lo mismo.

Referencias

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