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-acme-key-dump — pfSense Plus MIM API toolkit b4acd7ca - Hoch - Remote - Privilegien-Rest - GET /services/acme gibt Schlüssel preis | Kitploit
Tools/GitHubGitHub/abraxas/pfsense-api-acme-key-dump
SchwachstellenanalyseExploitationDatenexfiltrationInformationsbeschaffungWebsicherheitPenetrationstestsSecret-ErkennungPapers & ForschungAPI-Sicherheit
GitHubabraxas/pfsense-api-acme-key-dump

pfsense-api-acme-key-dump

pfSense Plus MIM API toolkit b4acd7ca - Hoch - Remote - Privilegien-Rest - GET /services/acme gibt Schlüssel preis

Repository anzeigen
1vor 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-acme-key-dump

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-api-acme-key-dump

pfsense-api-acme-key-dump

Klasse: Privilegien-Überrest Reichweite: Remote

pfSense Plus Nexus Multi-instance Management OpenAPI-Toolkit b4acd7ca - Netgate

GET /services/acme (GetACMEConfig) liefert ACMEConfig ohne Write-only- oder Redacted-Flag zurück. Das 200-Schema enthält den privaten Schlüssel des ACME-Kontos, jeden ausgegebenen Leaf-Privatschlüssel, jeden benutzerdefinierten Leaf-Schlüssel und die zur Validierung verwendeten DNS-Provider-Tokens. Der Cert-Manager hat zumindest ein dediziertes GET .../export-key. ACME hat keines. Config GET ist der Dump.

Eine Controller-Session, die diesen Pfad per GET abrufen kann, kopiert jeden Hostnamen-Schlüssel, den die Firewall registriert, sowie die DNS-Anmeldedaten, die die Kontrolle über diese Namen belegen.

Dieser Baum ist die öffentliche OpenAPI plus ein generierter Python-Client. Es ist nicht das CE-REST-Paket. Der MIM-Controller ist Plus-only und nicht im GitHub-Repo enthalten. Ich habe nicht mit einem Live-Controller gesprochen. plus-not-executed=1.

IDnoch keine CVE
KlassePrivilegien-Überrest (Secret-Dump bei Config GET)
ReichweiteRemote (authentifizierter MIM-Controller; nicht als unauth nachgewiesen)
CWECWE-200
CVSSHoch: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, wenn eine Services-Read-Rolle den Body erhält. Wenn nur der Superuser ihn per GET abrufen kann, ist der Dump für ein Konfigurationslisting dennoch die falsche Form.
ProduktNetgate/pfsense-api OpenAPI für pfSense Plus Nexus MIM
Betroffenöffentliches main b4acd7ca21dbca739a530403a1f62a7440f7726f (2026-05-25, Add Snort-3 API definitions). Keine Tags.
AuthController-JWT aus POST /login. Beispiele senden Bearer. Spec hat keine securitySchemes.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:19151. Kein Plus-Image.

Serien-Hub: pfSense Plus MIM leftovers. Dies ist Teil 5. Verkettet mit G9 stolen JWT (Beispiele setzen verify_ssl=False) und G6 fleet token (ein Login-Bearer wird für jede device_id wiederverwendet). Schwester-Dump: G4 cert-manager export-key.

Was ein Angreifer tun kann

Erfordert eine Controller-Session, die GET /services/acme ausführen kann. Die Dokumentation ordnet dies mim_services_read / mim_services / mim_superuser zu. Die Spec weist diese Rollen dem Pfad nicht zu. Plus RBAC wurde nicht ausgeführt.

Ein gestohlenes JWT aus G9 (MITM der offiziellen Beispiele) oder ein Helpdesk-Fleet-Token aus G6 reicht aus, um diesen GET auf jede registrierte Box zu richten. Diese Kette ist abgeleitet. Dieser Überrest ist der GET-Body.

Recon

MethodeSinkBerechtigung
GET /services/acmeACMEConfig.account_keys[].account_key (format: byte)Im Labor anhand der veröffentlichten Spezifikation und des Mocks nachgewiesen: Das 200-Schema enthält account_key; der Mock-Body gibt PFSENSE-API-ACME-KEY-DUMP-WITNESS unverändert zurück. Für Plus abgeleitet: den privaten Schlüssel des Let's-Encrypt-Kontos (oder eines anderen ACME-Kontos) kopieren. Vom ACME-Konto aus dem Off-Box-Kontext kommunizieren.
Dasselbe GETcerts[].issued_cert.privateKey (format: byte)Im Labor anhand von Spezifikation und Mock nachgewiesen. Für Plus abgeleitet: jeden privaten Schlüssel eines ausgestellten Leaf-Zertifikats kopieren, das die Firewall bezogen hat. TLS-Impersonation aus dem Off-Box-Kontext für diese Namen.
Dasselbe GETcerts[].custom_key (format: byte)Im Labor anhand von Spezifikation und Mock nachgewiesen. Für Plus abgeleitet: einen benutzerdefinierten Leaf-Schlüssel kopieren, wenn key_type=custom.
Dasselbe GETcerts[].domain_list[].config.credentials (additionalProperties: string)Im Labor anhand von Spezifikation und Mock nachgewiesen. Für Plus abgeleitet: DNS-Validierungsgeheimnisse kopieren (Cloudflare-Token, AWS-Schlüssel, RFC2136-Geheimnisse). Diese belegen die Kontrolle über die Namen.
Dasselbe GETKonto-E-Mails, benutzerdefinierte Server-URLs, action_list.commandIm Labor nachgewiesen, dass die Felder im Schema vorhanden sind. Hook-Ausführung ist ein Änderungspfad, nicht dieses GET.

Integrität

Keine durch das GET selbst. Die spätere Nutzung gestohlener Schlüssel und DNS-Token erfolgt außerhalb der Box (ein betrügerisches Zertifikat ausstellen, mit dem ACME-Konto kommunizieren, DNS ändern). Nicht ausgeführt.

Verfügbarkeit

Keine. Das Auflisten der Konfiguration widerruft oder überschreibt keine Zertifikate.

Erfordert: authentifizierten MIM-Controller-Zugriff, der berechtigt ist, das ACME-Tag per GET abzurufen. Nicht als unauthentifiziert nachgewiesen. Das generierte _get_kwargs für diesen Vorgang fügt kein Authorization hinzu; die Beispiele melden sich weiterhin an und senden Bearer.

Angrenzende Angriffsfläche, die geschlossen bleibt

AngriffsflächeGrund
Live pfSense Plus / Nexus ControllerNicht ausgeführt. plus-not-executed=1.
Unauthentifiziertes Internet-zu-8443Die Beispiele erfordern POST /login. Fehlende OAS-security ist eine Spezifikationslücke, kein Beweis für einen Server-200-ohne-JWT.
POST /services/acme/cert/{name}/issue und .../renewBeabsichtigte Dienständerung.
POST /services/acme/genprivatekeyBeabsichtigtes Generieren und Zurückgeben eines neuen Kontoschlüssels. Nicht dieser Überrest.
POST /diag/cmd/php / POST /diag/cmd/shellBeabsichtigte Admin-Konsole. Separate Angriffsfläche. Der Hersteller betrachtet Diagnostics: Command als beabsichtigt (CVE-2025-69691 umstritten).
GET /system/certificates/{refid}/export-keySeparater Überrest: dedizierter Schlüsselexport im Zertifikatsmanager. ACME hat keinen entsprechenden Export-Vorgang.
GET /services/acme/validmethodsMethodenkatalog. Keine Schlüssel.
CE jaredhendrickson/pfsense-apiAnderes Produkt.

Wie ich es gefunden habe

Ich habe das öffentliche Netgate/pfsense-api b4acd7ca nach der CE-2.9.0-DEVELOPMENT-Welle gepinnt. Dieser Tree ist OpenAPI 3.0.3 (pfapi_openapi.yml, 486 Pfade, 755 Ops) plus ein generierter Python-Client für den Plus-MIM-Controller auf :8443. Keine Tags. Der letzte öffentliche Commit an dem Tag, an dem ich geklont habe, war der 25.05.2026, „Add Snort-3 API definitions."

Zwölf Suchläufe über Login/JWT, Diagnostik, MIM-Enrollment, Client-TLS, Benutzer/Zertifikate, Pakete, VPN/Firewall, OpenAPI-Sicherheit, Geräte-IDOR, Git/Firmware/Feeds sowie einen Loopback-Mock jeder generierten Operation.

Tool herunterladen