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-tunables-loader — OPNsense 26.7.6 - Alto - Remoto - Iniezione di riga di configurazione - loader dei tunables | Kitploit
Strumenti/GitHubGitHub/abraxas/opnsense-tunables-loader
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebAudit di ConfigurazioneVirtualizzazione per la SicurezzaPenetration TestingLab e Pratica
GitHubabraxas/opnsense-tunables-loader

opnsense-tunables-loader

OPNsense 26.7.6 - Alto - Remoto - Iniezione di riga di configurazione - loader dei tunables

Vedi Repository
12 giorni faNon ancora revisionato

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

Abraxas Labs - opnsense-tunables-loader

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

opnsense-tunables-loader

Classe: Iniezione di riga di configurazione Portata: Remota

OPNsense core 26.7.6 (a842fe48) - opnsense.org

System: Advanced: Tunables interpola ancora nome/valore in /boot/loader.conf. Residuo affine di GHSA-fq94. In Tunables.xml tunable / value sono TextField nudi (newline abilitati). system_login_configure() scrive {$param}="{$value}". La riconfigurazione dei Tunables riavvia anche login. Il sysctl(8) live passa attraverso shell_safe più un filtro OID, quindi quel salto non è shell injection. Il residuo sono direttive loader extra al boot successivo. Il privilegio è page-system-advanced-sysctl, non page-all.

Questo pacchetto GitHub resta privato fino alla divulgazione coordinata.

IDnessuna CVE al momento
ClasseIniezione di riga di configurazione
PortataRemota (WebGUI / API autenticata)
CWECWE-93
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProdottoOPNsense core
Affetto26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) System: Advanced: Tunables
AuthSessione WebGUI o chiave API con page-system-advanced-sysctl
LicenzaGNU Affero GPL v3.0
Labcompose exec gadget (hunt slot 18850)

Ho fissato il tag 26.7.6 peel a842fe48. Il lab è un gadget PHP dell'interpolazione fissata di system_login_configure(). Progetto compose opnsense-tunables-loader. Hunt slot 18850 nella famiglia di gadget 18800-18860; questo file compose usa docker compose exec php, non un bind HTTP pubblicato.

Cosa può fare un attaccante

MetodoSinkPrivilegio
Valore Tunables CR/LF (hw.usb.no_boot_wait più "\n# witness)fissa la riga extra di system_login_configure() in /boot/loader.confIntegrità (dimostrata in lab): # OPNSENSE-TUNABLES-LOADER-WITNESS extra su una propria riga dopo un'assegnazione chiusa. Lab: newline-extra-line=yes.
Valore pulito 1stesso writerNegativo (dimostrato in lab): singola riga di assegnazione, nessun witness. Lab: clean-value-single-line=yes.
Stesse righe loader extra al boot successivoloader init_path / module_path / *_load / vfs.root.mountfrom / consoleIntegrità (inferita): il loader al boot successivo onora le chiavi dell'attaccante. Non riavviato in questo gadget.
Righe loader spazzatura / vfs.root.mountfrom errato/boot/loader.confDisponibilità (inferita): boot fallito o root errata.
POST /api/core/tunables/searchItemAPI tunablesRecon (inferita): elenca i tunables, inclusi current/default/type. Previsto per questa ACL.
sysctl -w live di un OID validoset_sysctl + filtro OIDCompito previsto della pagina. Le righe loader extra sono il residuo.

Dimostrato in lab vs inferito: la riga loader extra con newline e il valore pulito su singola riga sono SUCCESSO in lab. L'applicazione del loader al boot successivo è inferita. Gadget, non una VM OPNsense FreeBSD completa.

Richiede: utente autenticato o la chiave API Locale di quell'utente con page-system-advanced-sysctl e senza page-all. POST /api/core/tunables/*. CSRF sul POST di sessione. La riconfigurazione riavvia login; anche rc.reload_all e il boot chiamano system_login_configure.

Superficie adiacente che resta chiusa

SuperficieLab
Shell injection su sysctl liveshell_safe più filtro OID
Valore pulitosingola riga di assegnazione
Non autenticato401
Utente senza page-system-advanced-sysctl403
user-config-readonlysave() genera eccezione
Impostazione di un OID reale da parte di un admin tunables con page-allprevisto
Campi di testo della GUI corretti da GHSA-fq94sink diversi; questo campo non era nominato

Nessun accesso non autenticato. Nessuna shell sysctl live. Nessun Diagnostics: Command.

Lab

cd lab
./run.sh

Progetto compose opnsense-tunables-loader. Witness OPNSENSE-TUNABLES-LOADER-WITNESS. Ultima riga:

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

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

La correzione

Rimuovere CR/LF e " dal nome e dal valore dei tunables, stessa classe di GHSA-fq94. Tipizzare il nome come maschera OID, non come TextField nudo. Quotare con un helper che non possa chiudere l'assegnazione. Non scrivere un tunable in /boot/loader.conf a meno che non sia una chiave loader nota.

Riferimenti

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • system.inc interpolazione di system_login_configure in loader.conf
  • Tunables.xml TextField nudo per nome/valore
  • Affine (altri campi di testo della GUI, non questo sink): GHSA-fq94
  • CWE-93
Scarica lo strumento