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-autoadd — pfSense Plus MIM API toolkit b4acd7ca - Hoch - Remote - Privilegien-Rest - Paramiko AutoAddPolicy enroll | Kitploit
Tools/GitHubGitHub/abraxas/pfsense-api-enroll-autoadd
SchwachstellenanalyseExploitationNetzwerksicherheitKryptographiePenetrationstestsAuthentifizierungPapers & ForschungRed TeamingLabs & Praxis
GitHubabraxas/pfsense-api-enroll-autoadd

pfsense-api-enroll-autoadd

pfSense Plus MIM API toolkit b4acd7ca - Hoch - Remote - Privilegien-Rest - Paramiko AutoAddPolicy enroll

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-autoadd

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

pfsense-api-enroll-autoadd

Klasse: Privilegien-Überbleibsel Reichweite: Remote

pfSense Plus MIM API (Netgate/pfsense-api) b4acd7ca - Netgate

example-add-devices.py ist der dokumentierte Weg, den Nexus-Controller bei jedem pfSense-Gerät zu registrieren. Es wird nie load_system_host_keys() aufgerufen. Es wird paramiko.AutoAddPolicy() gesetzt, dann connect, dann exec_command(device_script). Der Kommentar besagt, AutoAdd zu entfernen, wenn Geräte bereits in known_hosts stehen. Standardmäßig wird AutoAdd ausgeliefert.

Erstkontakt-SSH zu einer neuen Box akzeptiert jeden Host-Key, der antwortet. Passwort- oder Key-Authentifizierung wird diesem Peer präsentiert. stdout wird json.loads'd und POST /mim/devices'd an den echten Controller.

Dies ist nicht das REST-Paket von Drittanbietern für CE. Dies ist das offizielle OpenAPI plus generierter Python-Client für pfSense Plus Nexus Multi-instance Management. Der Server ist nur für Plus. Das Lab ist ein Paramiko-SSH-Gadget. Ich habe nicht mit einem Live-Plus-Controller gesprochen.

IDnoch keine CVE
KlassePrivilegien-Überbleibsel (Paramiko AutoAddPolicy bei Enrollment-SSH)
ReichweiteRemote (On-Path zum Geräte-SSH beim Erstkontakt)
CWECWE-322
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 Nexus MIM Client-Toolkit)
Betroffenmain b4acd7ca21dbca739a530403a1f62a7440f7726f example-add-devices.py
AuthOperator führt das offizielle Beispiel aus; Angreifer ist On-Path zum Geräte-SSH
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:19111. Kein Plus-Image.

AC:H ist Erstkontakt / On-Path. Eine Workstation, die bereits die echten Geräteschlüssel in known_hosts hat und bei der die AutoAdd-Zeile entfernt wurde, ist nicht dieses Überbleibsel.

Gleiche Pin-Überbleibsel: JSON-Interpolation von ControllerSummary in die Enrollment-Shell (G1) und Beispiele erzwingen verify_ssl=False (G9). Serien-Hub: pfsense-api-nexus-mim.

Was ein Angreifer tun kann

Sich On-Path zu einer Erstkontakt-SSH-Adresse in pfsense_addresses setzen, während der Operator das Beispiel ausführt. AutoAdd ist weiterhin aktiv.

MethodeSinkBerechtigung
On-Path zu einer First-Contact-SSH-Adresse in pfsense_addresses sitzenset_missing_host_key_policy(paramiko.AutoAddPolicy()) dann connect (example-add-devices.py:151-160)Integrität (im Lab nachgewiesen): unbekannter Host-Key wird akzeptiert. Lab: AutoAddPolicy verbunden (autoadd=yes). RejectPolicy fehlgeschlagen (reject-control=yes).
Dieselbe Sitzung, exec_command(device_script) beantwortenstdout als DeviceIdentity geparst (example-add-devices.py:161-187)Integrität (im Lab nachgewiesen): exec lieferte Identitäts-JSON mit PFSENSE-API-ENROLL-AUTOADD-WITNESS (identity-json=yes).
Derselbe MITM, die exec-Nutzlast lesendevice_script ist der übrig gebliebene curl -d von ControllerSummary aus G1Recon (aus dem Quellcode abgeleitet): Controller-Identitätsschlüssel, Netgard vpn_pubkey / vpn_netkey / Listen-Adressen. Von diesem Lab nicht gedumpt.
Derselbe MITM, Passwort- oder Key-AuthSSHUSER / SSHPASS oder Agent/Keys (example-add-devices.py:156-160)Recon (abgeleitet): Credentials oder Keys, die dem Fake-Host präsentiert werden. Das Lab nutzte Passwort-Auth nur als Beispiel-SSHPASS-Pfad.
Dasselbe stdout-JSON, add_controlled_device.syncPOST /mim/devices auf dem echten ControllerIntegrität (abgeleitet): registriert Attacker-Noise/VPN-Keys und address. Plus-Handshake in diesem Lab nicht ausgeführt.
MITM ist der SSH-Serverwas auch immer exec der Client gesendet hat, als SSHUSERIntegrität / Verfügbarkeit (abgeleitet): das Enrollment-Skript ausführen, verwerfen oder überspringen. Unix-Socket-Aufrufe auf dem echten Gerät erfolgen nur, wenn der MITM sie weiterleitet.

Im Lab nachgewiesen vs. abgeleitet: AutoAdd-Connect, RejectPolicy-Fail und Identitäts-JSON mit dem Witness sind Lab. Controller-Key-Dump, Credential-Diebstahl, POST /mim/devices eines Fake-Geräts und das Ausführen der echten Unix-Socket-curls sind aus demselben Beispielpfad abgeleitet.

Voraussetzungen: Der Operator führt das offizielle Beispiel gegen eine SSH-Adresse aus, deren Host-Key noch nicht gepinnt ist, mit aktiviertem AutoAdd. Netzwerkpfad zu dieser SSH. AC:H ist First-Contact / On-Path.

Angrenzende Angriffsfläche, die geschlossen bleibt

AngriffsflächeWarum
RejectPolicy auf demselben unbekannten HostLab: reject-control=yes. Paramiko lehnt den Key ab.
Workstation mit echten Geräte-Keys in known_hosts und entfernter AutoAdd-ZeileDer im Kommentar beabsichtigte Modus. Das Beispiel lädt diese Keys nie, es sei denn, man fügt den Aufruf hinzu.
HTTPS-Controller-Loginverify_ssl=False ist ein übrig gebliebenes Geschwister-Beispiel (G9), nicht dieser Sink.
Unix-Socket-MIM auf der echten FirewallNur wenn der MITM exec weiterleitet. Dieses Lab spricht nie mit /var/run/pfnet-controller.sock.
Generierter Client-Standard verify_ssl=TrueDer Library-Standard ist nicht das Überbleibsel. Beispiele erzwingen False.
Plus RBAC / Live-:8443Dieses Lab ist ein Paramiko-Gadget. Ich habe nicht mit einem Plus-Controller gesprochen.
Unauthentifiziertes Internet-zu-8443Login stellt weiterhin ein JWT aus. Nicht dieser Befund.
Diagnostics PHP/ShellBeabsichtigte Admin-Befugnis für ein Fleet-JWT. Nicht dieser Befund.

Wie ich es gefunden habe

Ich habe github.com/Netgate/pfsense-api main b4acd7ca21dbca739a530403a1f62a7440f7726f nach den CE-WebGUI-Überbleibseln gepinnt. Dieser Tree ist OpenAPI plus generiertes Python für Plus Nexus MIM. Ich habe die Enrollment-Schleife in example-add-devices.py gelesen. Die Host-Key-Policy ist AutoAdd. Secrets liegen auf demselben exec-Kanal. Das Beispiel ruft nie load_system_host_keys() auf.

Tool herunterladen