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-api-enroll-json-ssh — pfSense Plus MIM API toolkit b4acd7ca – Hoch – Remote – Privilegien-Rest – example-add-devices.py JSON in SSH | Kitploit
Tools/GitHubGitHub/abraxas/pfsense-api-enroll-json-ssh
SchwachstellenanalyseCode-AnalyseExploitationNetzwerksicherheitPenetrationstestsCommand and ControlPapers & ForschungRed TeamingLabs & Praxis
GitHubabraxas/pfsense-api-enroll-json-ssh

pfsense-api-enroll-json-ssh

pfSense Plus MIM API toolkit b4acd7ca – Hoch – Remote – Privilegien-Rest – example-add-devices.py JSON in SSH

Repository anzeigen
vor 1 TagNoch 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-api-enroll-json-ssh

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-api-enroll-json-ssh

pfsense-api-enroll-json-ssh

Klasse: Privilegien-Überbleibsel Reichweite: Remote

pfSense Plus MIM API Toolkit (b4acd7ca) - Netgate

example-add-devices.py ist der dokumentierte Weg, um den Nexus-Controller auf jedem pfSense Plus-Gerät über SSH zu registrieren. Es json.dumpst GET /mim/controller/identity, ersetzt nur " und .formattet diesen Blob zweimal in ein doppelt gequotetes curl -d POSIX-Skript. Paramiko exec_command führt das Skript als SSHUSER (Beispiel-Standard admin) auf jeder Adresse in pfsense_addresses aus.

json.dumps plus replace('"', '\\"') hält die Anführungszeichen geschlossen. $(), Backticks und ${...} sind keine JSON-Metazeichen. Sie bleiben aktiv innerhalb des noch offenen doppelt gequoteten -d-Strings. OpenSSH exec ist eine Shell. Das ist das Überbleibsel.

Dies ist nicht das Drittanbieter-CE-REST-Paket. Es ist der offizielle OpenAPI-Client und die Beispiele für den pfSense Plus Nexus Multi-instance Management-Controller. Ich habe Plus nicht zusammengestellt. Das Lab ist die gepinnte Interpolation plus ein Mock /var/run/pfnet-controller.sock.

IDnoch keine CVE
KlassePrivilegien-Überbleibsel (Controller-JSON in Enrollment-SSH)
ReichweiteRemote (On-Path zu CONTROLLER_URL, während das Beispiel verify_ssl=False setzt, oder ein Schreiber von ControllerSummary-String-Feldern)
CWECWE-78
CVSSHoch: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
ProduktNetgate/pfsense-api (Plus MIM Toolkit)
Betroffenöffentliches main b4acd7ca21dbca739a530403a1f62a7440f7726f example-add-devices.py
AuthOperator führt das dokumentierte Beispiel aus. Angreifer ist On-Path oder kann Summary-Strings schreiben. Login am Controller erfolgt weiterhin zuerst.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:19101. Kein Plus-Image.

Teil 1 der Nexus MIM-Überbleibsel-Serie. Verwandte: enroll-autoadd, unix-sock-noauth, example-ssl-verify (G9 ist, wie ein On-Path-Peer dieses JSON formt), fleet-jwt, export-key-get.

Was ein Angreifer tun kann

Das Überbleibsel ist Kommandosubstitution innerhalb des noch offenen doppelt gequoteten -d-Strings. json.dumps plus der Quote-Pass halten den String geschlossen. $(), Backticks und ${...} überleben und werden als SSHUSER ausgeführt, wenn OpenSSH das Skript exect.

Integrität

MethodeSinkBerechtigungIm Labor nachgewiesen oder abgeleitet
$() (oder Backticks / ${...}) in ein ControllerSummary-String-Feld einfügen und dann den Operator example-add-devices.py ausführen lassencontroller_info.replace('"', '\\"') dann device_script.format(...) dann sshclient.exec_command(device_script) (example-add-devices.py ~104-161)Shell als SSHUSER (Beispiel-Standard admin; pfSense-Admin-SSH ist typischerweise root-äquivalent) auf jeder Adresse in pfsense_addressesIm Labor nachgewiesen bei der Interpolation: INJECT vpn_listenaddr=$(printf %s PFSENSE-API-ENROLL-JSON-SSH-WITNESS >/oracle/witness) überlebte die reine Quote-Escape (dollar-paren-survived=yes) und schrieb den Witness (inject-oracle=yes). Paramiko/SSH selbst ist nicht in diesem Compose enthalten.
TLS-MITM von GET /api/mim/controller/identity, während das Beispiel verify_ssl=False verwendetDerselbe ControllerSummary-Parse, dann dasselbe SkriptDieselbe Shell. Alle ControllerSummary-Felder sind str oder Unset, daher genügt ein MITM-JSON-Body, der typkonform parst.Abgeleitet aus dem Beispiel (example-add-devices.py Login Client und AuthenticatedClient setzen beide verify_ssl=False). Das Labor postet das Summary-Objekt direkt. Verwandt: example-ssl-verify.
Substitutionszeichen in name oder vpn_listenaddr auf dem Controller schreiben, auf das nächste Enroll wartenDerselbe SinkDieselbe Shell, wenn ein Operator als Nächstes das Beispiel ausführtAbgeleitet. Erfordert ein vorheriges Schreiben dieser Felder (bereits Controller-Admin, oder das unix-sock-noauth-Sibling).
Dieselbe Shell, zusätzliche Keys über ControllerSummary.additional_propertiesDerselbe Dump enthält zusätzliche MITM-Keys (to_dict kopiert Reste nach from_dict)Zusätzliche Felder gelangen in -d und in die ShellAbgeleitet aus to_dict. Das Labor injiziert nur über vpn_listenaddr.

Recon

MethodeSinkBerechtigungIm Labor nachgewiesen oder abgeleitet
stdout der Enrollment-Workstation lesenprint("CONTROLLER_SUMMARY:", controller_info)Controller-Identität key, Netgard vpn_pubkey / vpn_netkey / Listen-AdressenAbgeleitet aus dem Beispiel-Print. Das Labor gibt keinen Live-Controller-Blob aus.
Den SSH-Exec-Kanal sniffen oder MITM'enexec_command(device_script)-Payload ist das curl--d-JSONDieselbe Controller-Identität auf dem Draht zu jedem GerätAbgeleitet. AutoAddPolicy auf diesem Kanal ist ein verwandter Bericht.
CONTROL-Fall auf dem GadgetPOST /case name=controlEhrliche vpn_listenaddr erreicht den Unix-Socket unverändertIm Labor nachgewiesen. 192.0.2.10:51820 unverändert gepostet, kein Oracle (control-clean=yes).

Verfügbarkeit

MethodeSinkBerechtigungIm Labor nachgewiesen oder abgeleitet
Injizierter Befehl als SSHUSERDerselbe exec_commandpfnet-controller stoppen, Enrollment löschen, neu starten oder das Gerät anderweitig von MIM trennenAbgeleitet als Seiteneffekt der Shell. Das Labor schreibt nur die Witness-Datei.

Erfordert: den offiziellen Beispielpfad (Operator-Enroll). UI:N für den On-Path-Peer, sobald dieses Beispiel läuft. Der Login am Controller erfolgt weiterhin zuerst.

Tool herunterladen