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
opnsense-tunables-loader — OPNsense 26.7.6 - Alta - Remota - Inyección de línea de configuración - cargador de tunables | Kitploit
Herramientas/GitHubGitHub/abraxas/opnsense-tunables-loader
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebAuditoría de ConfiguraciónVirtualización de SeguridadPruebas de PenetraciónLabs y Práctica
GitHubabraxas/opnsense-tunables-loader

opnsense-tunables-loader

OPNsense 26.7.6 - Alta - Remota - Inyección de línea de configuración - cargador de tunables

Ver Repositorio
1hace 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 - opnsense-tunables-loader

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-tunables-loader

opnsense-tunables-loader

Clase: Inyección de línea de configuración Alcance: Remoto

OPNsense core 26.7.6 (a842fe48) - opnsense.org

System: Advanced: Tunables sigue interpolando nombre/valor en /boot/loader.conf. Residuo hermano de GHSA-fq94. Tunables.xml tunable / value son TextField sin formato (saltos de línea activados). system_login_configure() escribe {$param}="{$value}". La reconfiguración de Tunables también reinicia login. El sysctl(8) en vivo pasa por shell_safe más un filtro de OID, por lo que ese salto no es inyección de shell. El residuo son directivas de loader adicionales en el siguiente arranque. El privilegio es page-system-advanced-sysctl, no page-all.

Este paquete de GitHub permanece privado hasta la divulgación coordinada.

IDsin CVE todavía
ClaseInyección de línea de configuración
AlcanceRemoto (WebGUI / API autenticado)
CWECWE-93
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProductoOPNsense core
Afectado26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) System: Advanced: Tunables
AutenticaciónSesión de WebGUI o clave de API con page-system-advanced-sysctl
LicenciaGNU Affero GPL v3.0
Labcompose exec gadget (hunt slot 18850)

Fijé el tag 26.7.6 peel a842fe48. El lab es un gadget PHP de la interpolación fijada de system_login_configure(). Proyecto Compose opnsense-tunables-loader. Hunt slot 18850 en la familia de gadgets 18800-18860; este archivo compose usa docker compose exec php, no un bind HTTP publicado.

Qué puede hacer un atacante

MétodoSinkPrivilegio
Valor de Tunables con CR/LF (hw.usb.no_boot_wait más "\n# witness)fijar línea extra de system_login_configure() en /boot/loader.confIntegridad (probado en lab): # OPNSENSE-TUNABLES-LOADER-WITNESS extra en su propia línea tras una asignación cerrada. Lab: newline-extra-line=yes.
Valor limpio 1mismo escritorNegativo (probado en lab): línea de asignación única, sin witness. Lab: clean-value-single-line=yes.
Mismas líneas de loader extra en el siguiente arranqueloader init_path / module_path / *_load / vfs.root.mountfrom / consolaIntegridad (inferido): el loader del siguiente arranque honra las claves del atacante. No se reinició en este gadget.
Líneas de loader basura / vfs.root.mountfrom incorrecto/boot/loader.confDisponibilidad (inferido): fallo de arranque o root incorrecto.
POST /api/core/tunables/searchItemAPI de tunablesRecon (inferido): listar tunables, incluyendo actual/default/tipo. Previsto para esta ACL.
sysctl -w en vivo de un OID válidoset_sysctl + filtro de OIDTarea prevista de la página. Las líneas de loader extra son el residuo.

Probado en lab vs inferido: la línea de loader extra por salto de línea y el valor limpio de una sola línea son ÉXITO en lab. La aplicación del loader en el siguiente arranque es inferido. Gadget, no una VM FreeBSD completa de OPNsense.

Requiere: usuario con sesión iniciada o la clave de API Local de ese usuario con page-system-advanced-sysctl y sin page-all. POST /api/core/tunables/*. CSRF en POST de sesión. La reconfiguración reinicia login; rc.reload_all y el arranque también llaman a system_login_configure.

Superficie adyacente que permanece cerrada

SuperficieLab
Inyección de shell en sysctl en vivoshell_safe más filtro de OID
Valor limpiolínea de asignación única
Sin autenticación401
Usuario sin page-system-advanced-sysctl403
user-config-readonlysave() lanza excepción
Administrador de tunables con page-all estableciendo un OID realprevisto
Campos de texto de GUI parcheados de GHSA-fq94sinks diferentes; este campo no fue nombrado

Sin acceso no autenticado. Sin shell de sysctl en vivo. Sin Diagnostics: Command.

Lab

cd lab
./run.sh

Proyecto Compose opnsense-tunables-loader. Witness OPNSENSE-TUNABLES-LOADER-WITNESS. Última línea:

SUCCESS opnsense-tunables-loader newline-extra-line=yes clean-value-single-line=yes OPNSENSE-TUNABLES-LOADER-WITNESS

Lanzador root: python3 opnsense-tunables-loader-Abraxas-Labs.py.

La solución

Eliminar CR/LF y " del nombre y valor de los tunables, misma clase que GHSA-fq94. Tipar el nombre como una máscara de OID, no como un TextField sin formato. Citar con un helper que no pueda cerrar la asignación. No escribir un tunable en /boot/loader.conf a menos que sea una clave de loader conocida.

Referencias

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • system.inc interpolación de loader.conf en system_login_configure
  • Tunables.xml nombre/valor TextField sin formato
  • Hermano (otros campos de texto de GUI, no este sink): GHSA-fq94
  • CWE-93
Descargar herramienta