Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
opnsense-lockout-factory-ip — OPNsense 26.7.6 - Hoch - Remote - Verbleibende Berechtigung - Werkssperre IP | Kitploit
Tools/GitHubGitHub/abraxas/opnsense-lockout-factory-ip
SchwachstellenanalyseExploitationSicherheitsvirtualisierungNetzwerksicherheitPenetrationstestsPapers & ForschungLabs & Praxis
GitHubabraxas/opnsense-lockout-factory-ip

opnsense-lockout-factory-ip

OPNsense 26.7.6 - Hoch - Remote - Verbleibende Berechtigung - Werkssperre IP

Repository anzeigen
7vor 2 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - opnsense-lockout-factory-ip

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

opnsense-lockout-factory-ip

Klasse: Privilegien-Überrest Reichweite: Remote

OPNsense core 26.7.6 (a842fe48) - opnsense.org

Ein unauthentifizierter WebGUI-Login treibt weiterhin lockout_handler aus einer Factory-LOG_AUTH-Zeile an, die keine Socket-IP besitzt. GHSA-2v2x hat den CRLF-Split geschlossen und die Auswahl der Lockout-IP auf das letzte Token umgestellt, sodass das abschließende from REMOTE_ADDR von authgui.inc gewinnt. AuthenticationFactory::authenticate() schreibt weiterhin den rohen Benutzernamen per syslog() ohne Adress-Suffix. Ein Benutzername, der auf eine Lockout-False-Phrase plus ein IPv4-Token passt, ist die letzte (einzige) Adresse in dieser Zeile. Nach standardmäßig 5 zeitlich verteilten Versuchen: pfctl -t sshlockout -T add und pfctl -k. Standard: Lockout an, LAN-GUI.

IDnoch keine CVE
KlassePrivilegien-Überrest
ReichweiteRemote (unauthentifizierter WebGUI-Login-POST)
CWECWE-117 / CWE-863
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ProduktOPNsense core (Deciso B.V.)
BetroffenOPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) AuthenticationFactory / lockout_handler
AuthUnauthentifiziert. CSRF-Cookie + Token aus GET /.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Ich habe den Tag 26.7.6 gepinnt. Das Lab besteht aus dem gepinnten lockout_handler plus einem PATH-Stub pfctl, Loopback-Identität 127.0.0.1:18800. Dies ist kein CRLF. Ein PHP-syslog-Datensatz bleibt eine Handler-Zeile. Last-IP war die richtige Härtung für das authgui-Template und die falsche Härtung für das Factory-Template.

Was ein Angreifer tun kann

MethodeSinkPrivileg
Unauthentifizierter Factory-LOG_AUTH-Benutzername mit einer Lockout-False-Phrase plus einem IPv4-Token (6 zeitlich verteilte Zeilen)pin lockout_handler -> Stub pfctl -t sshlockout -T add und pfctl -kIntegrität (im Lab bewiesen): Tabelle sshlockout plus State-Kill-argv. Lab: planted=203.0.113.77.
gleiche Plant, live pffilter.lib.inc:293-314 from <sshlockout> to (self) Ports 22/GUIVerfügbarkeit (abgeleitet): neue TCP-22/GUI-Verbindungen vom gepflanzten Host werden verworfen; pfctl -k reißt bestehende States von dieser IP ab.
gleicher Benutzername nur mit der IPv4 (ohne False-Phrase)lockout_handlerNegativ (im Lab bewiesen): kein Tabellen-Add. negative-ip-only=no.
authgui-Zeile mit abschließendem from REMOTE_ADDRLast-IP-ParserIntegrität der eigenen IP (im Lab bewiesen): authgui-Last-Token bleibt 198.51.100.10.
Failed-Login-BodykeinerRecon (im Lab bewiesen geschlossen): bestehendes "Wrong username or password." Keine Benutzer-Enumeration.

Im Lab bewiesen vs. abgeleitet: Factory-Plant, Username-only-Negative und authgui-Last-IP sind Lab-ERFOLGE. Live-pf-Blocking und Live-Session-Kill sind abgeleitet. Pin lockout_handler unverändert kopiert; syslog-ng und WebGUI-POST sind gestubbt.

Erfordert: Unauthentifizierter WebGUI-Login-POST. CSRF-Cookie + Token aus GET /. Lockout an (system.no_sshlockout nicht gesetzt). Standardinstallation.

Angrenzende Angriffsfläche, die geschlossen bleibt

AngriffsflächeLab
Unauthentifizierte Session / root / config.xml-Schreibengeschlossen
authgui-Zeile, die eine fremde IP pflanztLast-Token ist REMOTE_ADDR (authgui-last-ip=198.51.100.10)
CRLF zusätzliches readline()GHSA-2v2x-Rewrite; ein Datensatz bleibt eine Zeile
Login mit leerem Passwortauthgui.inc erfordert nicht-leeres Passwort
CVE-2026-44195 Success-Keyword-Reset auf der authgui-ZeileFailure-Regeln zuerst
26.7.6 Omar Habra pfctl -k str(ip) TypeErrorbereits auf diesem Pin
Gepflanzte IP als DNS/Gateway-ZielRegeln sind nur from <sshlockout> to (self) Ports 22/GUI

Kein Login-Skip. Kein RCE. Kein Rewrite von config.xml. Erzeugt keine Session.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18800. Compose-Projekt opnsense-lockout-factory-ip. Image-Tag opnsense-lockout-factory-ip:26.7.6. Witness OPNSENSE-LOCKOUT-FACTORY-IP-WITNESS. Letzte Zeile:

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

Der Fix

Die Socket-IP an das Factory-syslog(LOG_AUTH)-Template anhängen, dasselbe abschließende from REMOTE_ADDR wie in authgui.inc. Oder Lockout-IPs ignorieren, die nicht vom eigenen Peer des Handlers stammen. Last-Token nicht als Ersatz für "die Client-Adresse" behandeln.

Referenzen

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • AuthenticationFactory.php
  • lockout_handler
  • Benannter Walk (nicht dieser Überrest): GHSA-2v2x CRLF First-IP-Plant
  • CWE-117 / CWE-863
Tool herunterladen