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-carp-vhid — pfSense CE 2.9.0-DEVELOPMENT - Alta - Remota - RCE - CARP VHID residual | Kitploit
Herramientas/GitHubGitHub/abraxas/pfsense-carp-vhid
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónPruebas de PenetraciónComando y ControlRed TeamingLabs y Práctica
GitHubabraxas/pfsense-carp-vhid

pfsense-carp-vhid

pfSense CE 2.9.0-DEVELOPMENT - Alta - Remota - RCE - CARP VHID residual

Ver Repositorio
3hace 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-carp-vhid

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

pfsense-carp-vhid

Clase: RCE Alcance: Remoto

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

La edición de IP virtual almacena el VHID de CARP desde el POST sin ninguna comprobación de 1-255. Las opciones de Form_Select son solo HTML. La aplicación de CARP aplica escapeshellarg al VHID. La aplicación de IP Alias apilada interpola vhid {$carpvip['vhid']} fuera de escapeshellarg. El estado de CARP interpola el mismo VHID almacenado en una tubería grep entre comillas dobles; el punto y coma permanece entrecomillado, la sustitución de comandos aún se ejecuta bajo /bin/sh -c. El privilegio es edición de VIP + aplicar, no Diagnostics: Command.

IDsin CVE todavía
ClaseRCE
AlcanceRemoto (WebGUI autenticado)
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) CARP VHID
AutenticaciónSesión WebGUI con edición de VIP + aplicar (el estado/widget es un disparador posterior)
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Fijé el master público 9363ac5. El laboratorio es un gadget PHP de interface_carp_configure fijado, mwexec de ipalias apilado, y exec de estado. Loopback 127.0.0.1:18830.

Qué puede hacer un atacante

MétodoSinkPrivilegio
POST de carp VIP con un VHID no entero, luego aplicar un IP Alias apilado sobre ese padre _vip{uniqid}mwexec ifconfig ... alias {$gateway} {$vhid} (interfaces.inc:3238)Integridad (probado en laboratorio): shell root. Laboratorio: ipalias-unescaped escribió el testigo. La aplicación de CARP del mismo VHID no escribió ninguno (carp-escaped=yes).
Mismo VHID almacenado, luego GET status_carp.php o renderizar carp_status.widget.phptubería grep de exec (pfsense-utils.inc:794)Integridad (probado en laboratorio): la sustitución de comandos dentro de las comillas dobles se ejecutó y escribió el testigo (status-sink=yes, status-subst=yes). El punto y coma permaneció entrecomillado. El disparador del widget puede ser otra sesión GUI.
Mismo shell rootsistema de archivos del hostRecon (inferido): config.xml, claves.
Shell root o ifconfig rotodispositivos CARP / aliasDisponibilidad (inferido): interrupción de interfaz / CARP / filtro.

Probado en laboratorio vs inferido: carp-escaped, testigo ipalias-unescaped, y testigo de sustitución de comandos de estado están probados en laboratorio. El reconocimiento del sistema de archivos y la interrupción del filtro se infieren de PHP-FPM root.

Requiere: page-firewall-virtualipaddress-edit (guardar) y page-firewall-virtualipaddresses (aplicar). Sink de estado: page-status-carp o cualquier panel con el widget CARP. CSRF en POST.

Superficie adyacente que permanece cerrada

SuperficieLaboratorio
La propia aplicación de CARPescapeshellarg en VHID, carp-escaped=yes
Contraseña CARP / advbase / advskew / subnetis_ipaddr / escapado
Sin autenticacióncerrado
aplicación xmlrpc de los mismos objetos sin credenciales HAlista de omisión SA-26_22
Diagnostics: Commandpermanece cerrado a menos que también se conceda

Laboratorio

cd lab
./run.sh

Loopback 127.0.0.1:18830. Proyecto compose pfsense-carp-vhid. Etiqueta de imagen pfsense-carp-vhid:2.9.0-dev. Testigo PFSENSE-CARP-VHID-WITNESS. Última línea:

SUCCESS PFSENSE-CARP-VHID carp-escaped=yes ipalias-unescaped=yes status-sink=yes PFSENSE-CARP-VHID-WITNESS

La solución

Limitar el VHID a un rango entero de 1-255 al guardar. Aplicar escapeshellarg al VHID en la aplicación de IP Alias apilada y en el grep de estado, de la misma manera que ya lo hace la aplicación de CARP.

Referencias

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • firewall_virtual_ip.inc saveVIP
  • interfaces.inc ipalias apilado mwexec
  • pfsense-utils.inc grep de estado de CARP
  • CWE-78
Descargar herramienta