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-lockout-factory-ip — OPNsense 26.7.6 - Alta - Remota - Privilegio residuo - blocco di fabbrica IP | Kitploit
Strumenti/GitHubGitHub/abraxas/opnsense-lockout-factory-ip
Analisi delle VulnerabilitàExploitVirtualizzazione per la SicurezzaSicurezza di RetePenetration TestingPaper e RicercaLab e Pratica
GitHub
abraxas/opnsense-lockout-factory-ip

opnsense-lockout-factory-ip

OPNsense 26.7.6 - Alta - Remota - Privilegio residuo - blocco di fabbrica IP

Vedi Repository
72 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-lockout-factory-ip

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-lockout-factory-ip

opnsense-lockout-factory-ip

Classe: Privilegio residuo Portata: Remota

OPNsense core 26.7.6 (a842fe48) - opnsense.org

Un login WebGUI non autenticato aziona ancora lockout_handler da una riga LOG_AUTH di fabbrica che non ha l'IP del socket. GHSA-2v2x ha chiuso la divisione CRLF e ha cambiato la selezione dell'IP di lockout sull'ultimo token, così che il from REMOTE_ADDR finale di authgui.inc prevalga. AuthenticationFactory::authenticate() continua a fare syslog() del nome utente grezzo senza suffisso di indirizzo. Un nome utente che corrisponde a una frase False di lockout più un token IPv4 è l'ultimo (unico) indirizzo su quella riga. Dopo i 5 tentativi distanziati predefiniti: pfctl -t sshlockout -T add e pfctl -k. Predefinito: lockout attivo, GUI LAN.

IDnessuna CVE al momento
ClassePrivilegio residuo
PortataRemota (POST di login WebGUI non autenticato)
CWECWE-117 / CWE-863
CVSSAlto: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ProdottoOPNsense core (Deciso B.V.)
AffettoOPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) AuthenticationFactory / lockout_handler
AuthNon autenticato. Cookie CSRF + token da GET /.
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Ho fissato il tag 26.7.6. Il lab è il lockout_handler fissato più uno stub PATH pfctl, identità loopback 127.0.0.1:18800. Questo non è CRLF. Un record syslog PHP resta una riga del handler. L'ultimo-IP era l'hardening giusto per il template authgui e quello sbagliato per il template di fabbrica.

Cosa può fare un attaccante

MetodoSinkPrivilegio
Nome utente LOG_AUTH di fabbrica non autenticato con una frase False di lockout più un token IPv4 (6 righe distanziate)pin lockout_handler -> stub pfctl -t sshlockout -T add e pfctl -kIntegrità (dimostrata in lab): tabella sshlockout più argv di state-kill. Lab: planted=203.0.113.77.
stesso plant, pf livefilter.lib.inc:293-314 from <sshlockout> to (self) porte 22/GUIDisponibilità (inferita): drop di nuove TCP 22/GUI dall'host piantato; pfctl -k abbatte gli stati esistenti da quell'IP.
stesso nome utente con solo l'IPv4 (senza frase False)lockout_handlerNegativo (dimostrato in lab): nessun add in tabella. negative-ip-only=no.
riga authgui con from REMOTE_ADDR finaleparser ultimo-IPIntegrità del proprio IP (dimostrata in lab): l'ultimo token authgui resta 198.51.100.10.
Corpo del login fallitonessunoRecon (dimostrata chiusa in lab): "Wrong username or password." esistente. Nessuna enumerazione utenti.

Dimostrato in lab vs inferito: plant di fabbrica, negativo solo-nome-utente e ultimo-IP authgui sono SUCCESS in lab. Il blocco pf live e l'uccisione di sessione live sono inferiti. Pin lockout_handler copiato invariato; syslog-ng e POST WebGUI sono stub.

Richiede: POST di login WebGUI non autenticato. Cookie CSRF + token da GET /. Lockout attivo (system.no_sshlockout non impostato). Installazione predefinita.

Superficie adiacente che resta chiusa

SuperficieLab
Sessione non autenticata / root / scrittura config.xmlchiusa
Riga authgui che pianta un IP estraneol'ultimo token è REMOTE_ADDR (authgui-last-ip=198.51.100.10)
readline() extra CRLFriscrittura GHSA-2v2x; un record resta una riga
Login con password vuotaauthgui.inc richiede password non vuota
Reset della success-keyword CVE-2026-44195 sulla riga authguiprima le regole di fallimento
TypeError pfctl -k str(ip) di Omar Habra in 26.7.6già su questo pin
IP piantato come destinazione DNS/gatewayle regole sono solo from <sshlockout> to (self) porte 22/GUI

Nessun salto di login. Nessun RCE. Nessuna riscrittura di config.xml. Non genera una sessione.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18800. Progetto Compose opnsense-lockout-factory-ip. Tag immagine opnsense-lockout-factory-ip:26.7.6. Witness OPNSENSE-LOCKOUT-FACTORY-IP-WITNESS. Ultima riga:

SUCCESS opnsense-lockout-factory-ip planted=203.0.113.77 table=sshlockout negative-ip-only=no authgui-last-ip=198.51.100.10 OPNSENSE-LOCKOUT-FACTORY-IP-WITNESS

La correzione

Aggiungere l'IP del socket al template syslog(LOG_AUTH) di fabbrica, stesso from REMOTE_ADDR finale di authgui.inc. Oppure ignorare gli IP di lockout che non provengono dal peer del handler stesso. Non trattare l'ultimo-token come sostituto di "l'indirizzo del client".

Riferimenti

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • AuthenticationFactory.php
  • lockout_handler
  • Walk nominato (non questo residuo): plant primo-IP CRLF GHSA-2v2x
  • CWE-117 / CWE-863
Scarica lo strumento