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
pfsense-qinq-parent-if — pfSense CE 2.9.0-DEVELOPMENT - Hoch - Remote - RCE - QinQ parent-if ifconfig | Kitploit
Tools/GitHubGitHub/abraxas/pfsense-qinq-parent-if
SchwachstellenanalyseExploitationWebanwendungs-ExploitationNetzwerksicherheitPenetrationstestsCommand and ControlRemote-Access-Tool
GitHubabraxas/pfsense-qinq-parent-if

pfsense-qinq-parent-if

pfSense CE 2.9.0-DEVELOPMENT - Hoch - Remote - RCE - QinQ parent-if ifconfig

Repository anzeigen
611vor 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 - pfsense-qinq-parent-if

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-qinq-parent-if

pfsense-qinq-parent-if

Klasse: RCE Reichweite: Remote

pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org

Die QinQ-Bearbeitung speichert einen Parent-Interface-Namen ohne does_interface_exist-Prüfung. Die VLAN-Bearbeitung lehnt einen Parent, der kein Live-Interface ist, bereits ab. Form_Select validiert POST nicht erneut. Erstelle write_configs selbst dann, wenn interface_qinq_configure früh zurückkehrt. Das Hinzufügen/Entfernen von Membern interpoliert anschließend das gespeicherte vlanif in unescaped ifconfig. PHP exec ist /bin/sh -c. WebGUI PHP-FPM läuft als root. Die Berechtigung ist page-interfaces-qinq-edit, nicht Diagnostics: Command.

IDnoch keine CVE
KlasseRCE
ReichweiteRemote (authentifizierte WebGUI)
CWECWE-78
CVSSHigh: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProduktpfSense CE
Betroffen2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) QinQ-Bearbeitung
AuthWebGUI-Sitzung mit page-interfaces-qinq-edit
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Ich habe den öffentlichen Master 9363ac5 gepinnt. Das Lab ist ein PHP-Gadget der gepinnten vlan_interface / interface_qinq_configure / Member-exec-Zeilen, Loopback-HTTP auf 127.0.0.1:18810.

Was ein Angreifer tun kann

MethodeSinkBerechtigung
POST QinQ-Erstellung mit einem Parent, der kein Live-Interface ist, dann POST-Bearbeitung zum Hinzufügen eines Membersinterface_qinq2_configure exec ifconfig vlan create ... (interfaces.inc:620)Integrität (im Lab nachgewiesen): Root-Shell über /bin/sh -c. Lab: Member-Add qinq2 schrieb den Witness (member-sink=yes).
Dasselbe gespeicherte vlanif, POST-Bearbeitung zum Entfernen eines Membersexec("/sbin/ifconfig {$parent}.{$tag} destroy") (interfaces_qinq_edit.php:212)Integrität (im Lab nachgewiesen): dasselbe Root-exec. Destroy hat keine IF_NAMESIZE-Begrenzung.
Dieselbe Root-ShellHost-DateisystemRecon (abgeleitet): config.xml, Schlüssel, andere Mandanten. Diese Seite gibt exec-Ausgabe nicht aus.
Root-Shell oder defektes ifconfigvlan-GeräteVerfügbarkeit (abgeleitet): vlan-Geräte erstellen/zerstören; die Datenebene ist betroffen.

Im Lab nachgewiesen vs. abgeleitet: VLAN-Ablehnung, Create-only ohne exec, IF_NAMESIZE-Block bei Länge 16 und Member-Add-qinq2-Witness sind im Lab nachgewiesen. Dateisystem-Recon und Störung der Datenebene sind aus Root-PHP-FPM abgeleitet.

Erfordert: WebGUI-Sitzung mit page-interfaces-qinq-edit. CSRF-Token. Zwei POSTs (Erstellen, dann Member-Bearbeitung). Der Standard-Admin hat die Seite. Einem eingeschränkten Benutzer kann nur diese Seite gewährt werden.

Angrenzende Angriffsfläche, die geschlossen bleibt

AngriffsflächeLab
VLAN-Parent-Existenzprüfungvlan-rejected=yes
QinQ nur-Erstellen (Parent fehlt)speichert Konfiguration, create-no-exec=yes
qinq2-Namenslänge 16if-namesize-block=yes vor exec
Unauth / CSRF ohne Tokenguiconfig + CSRF-Magic
GIF/GRE-Namens-Regex, LAGG-Member does_interface_exist + escapeshellargandere Seiten
QinQ-Listen-Löschung eines nie erstellten Parentsdoes_interface_exist($vlanif)
Diagnostics: Commandbleibt geschlossen, sofern nicht ebenfalls gewährt

Kein Diagnostics: Command. Kein Unauth. Die historische Klasse ist CVE-2023-42326 GIF/GRE, andere Seite.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18810. Compose-Projekt pfsense-qinq-parent-if. Image-Tag pfsense-qinq-parent-if:2.9.0-dev. Witness PFSENSE-QINQ-PARENT-IF-WITNESS. Letzte Zeile:

SUCCESS PFSENSE-QINQ-PARENT-IF vlan-rejected=yes create-no-exec=yes member-sink=yes if-namesize-block=yes PFSENSE-QINQ-PARENT-IF-WITNESS

Der Fix

QinQ-Bearbeitung: einen Parent, der kein Live-Interface ist, ablehnen, genau wie bei der VLAN-Bearbeitung. Integer-Prüfungen für Member-Tags existieren bereits; dennoch das gespeicherte vlanif vor jedem ifconfig mit escapeshellarg behandeln. Das Destroy beim Member-Löschen genauso begrenzen, wie interface_qinq2_configure IF_NAMESIZE begrenzt.

Referenzen

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • interfaces_qinq_edit.php
  • interfaces.inc interface_qinq2_configure
  • VLAN-Kontrast: interfaces_vlan_edit.php
  • Historische Klasse (GIF/GRE, nicht diese Seite): CVE-2023-42326
  • CWE-78
Tool herunterladen