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-firmware-mirror-sed — OPNsense 26.7.6 - Alta - Remota - Privilegios residuales - espejo de firmware personalizado sed-omite las huellas de pkg | Kitploit
Herramientas/GitHubGitHub/abraxas/opnsense-firmware-mirror-sed
Escalada de PrivilegiosAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebVirtualización de SeguridadPruebas de PenetraciónSeguridad de Cadena de Suministro

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
Papers e Investigación
Labs y Práctica
GitHubabraxas/opnsense-firmware-mirror-sed

opnsense-firmware-mirror-sed

OPNsense 26.7.6 - Alta - Remota - Privilegios residuales - espejo de firmware personalizado sed-omite las huellas de pkg

Ver Repositorio
1hace 5 díasAún no revisado

Abraxas Labs - opnsense-firmware-mirror-sed

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-firmware-mirror-sed

opnsense-firmware-mirror-sed

Clase: Omisión de firma Alcance: Remoto

OPNsense core 26.7.6 (a842fe48) - opnsense.org

Sistema: Firmware set envía por POST un mirror / flavour personalizado. El core FILTER_SANITIZE_URL conserva \|#;". opnsense-update -m / -n interpola esa cadena en sed sobre OPNsense.conf y puede cambiar signature_type de "fingerprints" a "none". Luego pkg install como root desde la URL del atacante. La página de configuración ofrece un mirror personalizado de paquetes OPNsense aún firmados. No tiene un control de "deshabilitar firmas". El privilegio es page-system-firmware-manualupdate, no page-all.

Sed vive en opnsense-update, fuera del pin. El core en este pin es el campo no saneado más la pasada -m. El laboratorio vuelve a ejecutar ese texto de programa s||| con GNU sed.

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

IDaún sin CVE
ClaseOmisión de firma
AlcanceRemoto (WebGUI / API autenticado)
CWECWE-74 / CWE-347
CVSSAlto: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
ProductoOPNsense core
Afectado26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) Firmware set mirror personalizado
AuthSesión de WebGUI o clave de API con page-system-firmware-manualupdate
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Fijé el tag 26.7.6 peel a842fe48. El laboratorio es un gadget PHP de FILTER_SANITIZE_URL más el sed mod_mirrorurl de opnsense-update, HTTP en loopback sobre 127.0.0.1:18860. PR:H porque la página de firmware ya tiene permitido instalar paquetes firmados. Puntuación 8.8 si esa página se trata como PR:L.

Qué puede hacer un atacante

MétodoSinkPrivilegio
FILTER_SANITIZE_URL sobre un mirror personalizado con | y luego sed estilo opnsense-updatereescritura de OPNsense.confIntegridad (probado en laboratorio): signature_type "none". El mirror de control permanece "fingerprints". Laboratorio: sanitize-keeps-pipe=yes signature_type=none fingerprints-control=yes.
Mismo set, campo pluginssetAction descarta pluginsNegativo (probado en laboratorio): plugins descartados antes de guardar.
Luego POST /api/core/firmware/install/<pkg>pkg install -y como root desde la URL del atacanteIntegridad (inferido): paquete sin firmar como root. La página de firmware ya instala paquetes firmados; este remanente es la omisión de verificación. Sin payload sin firmar en el laboratorio.
Luego POST /api/core/firmware/update o /upgradeopnsense-update -pt / -u como rootIntegridad (inferido): conjuntos base/kernel con verificación omitida (DO_INSECURE).
GET /api/core/firmware/info, /running, /upgradestatusAPI de firmwareRecon (inferido): listas de paquetes, log de actualización, opciones de mirror. Previsto para esta ACL.
POST /api/core/firmware/reboot, /poweroff, /remove/<pkg>acciones de firmware de configdDisponibilidad (inferido): reboot/halt/remove. Previsto para esta ACL, no para el remanente.

Probado en laboratorio vs inferido: que el saneado conserve | y que signature_type sea none son ÉXITO en laboratorio. El pkg install real de un paquete sin firmar es inferido. Gadget, no una VM FreeBSD completa de OPNsense. Sin payload de paquete sin firmar.

Requiere: usuario con sesión iniciada o la clave de API Local de ese usuario con page-system-firmware-manualupdate y sin page-all. CSRF en el POST de sesión. No es no autenticado. No es solo dashboard.

Superficie adyacente que permanece cerrada

SuperficieLaboratorio
Firmware sin autenticación401
Solo dashboard403
Mirror de control https://pkg.opnsense.orgsignature_type permanece "fingerprints"
Traversal en nombre de pluginfilter_pkgname
Obtención de changelogsigue opnsense-verify
user-config-readonly en save()throwReadOnly()
Mirrors HTTP estándar sin omisión de verificaciónMITM de transporte; las fingerprints siguen siendo obligatorias
Firmware XMLRPCsolo cadenas de versión

Sin no autenticado. Sin solo dashboard. El changelog sigue firmado.

Laboratorio

cd lab
./run.sh

Loopback 127.0.0.1:18860. Proyecto de Compose opnsense-firmware-mirror-sed. Testigo OPNSENSE-FIRMWARE-MIRROR-SED-WITNESS. Última línea:

SUCCESS opnsense-firmware-mirror-sed sanitize-keeps-pipe=yes signature_type=none fingerprints-control=yes OPNSENSE-FIRMWARE-MIRROR-SED-WITNESS

Lanzador root: python3 opnsense-firmware-mirror-sed-Abraxas-Labs.py.

Forma del mirror de ataque usada en el laboratorio (solo testigo, sin pkg sin firmar):

https://example.invalid/|;/signature_type/s/"fingerprints"/"none"/;#

La solución

Rechazar un mirror personalizado que no sea una URL. Eliminar los metacaracteres de sed (|, ;, #, ") antes de opnsense-update -m / -n, o pasar la URL como archivo para que sed nunca la vea como texto de programa. Mantener signature_type: "fingerprints" a menos que un control separado y auditado desactive la verificación. No permitir que Firmware set reescriba las fingerprints a "none".

Referencias

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • FirmwareController.php setAction FILTER_SANITIZE_URL
  • scripts/firmware/repos/OPNsense.php opnsense-update -sd -m
  • OPNsense.conf.shadow.in stock signature_type: "fingerprints"
  • Sink fuera del pin: opnsense-update mod_mirrorurl (s\|\| en la línea url:)
  • CWE-74 / CWE-347
Descargar herramienta