Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pfsense-api-acb-userkey — pfSense Plus MIM API toolkit b4acd7ca - Alta - Remoto - IDOR - URL di capacità userkey ACB | Kitploit
Strumenti/GitHubGitHub/abraxas/pfsense-api-acb-userkey
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebEsfiltrazione DatiRaccolta InformazioniPenetration TestingPaper e RicercaRed TeamingSicurezza delle APILab e Pratica
GitHub
11 giorno faNon ancora revisionato
abraxas/pfsense-api-acb-userkey

pfsense-api-acb-userkey

pfSense Plus MIM API toolkit b4acd7ca - Alta - Remoto - IDOR - URL di capacità userkey ACB

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Abraxas Labs - pfsense-api-acb-userkey

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

pfsense-api-acb-userkey

Classe: IDOR Portata: Remota

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

GET /services/acb e GET /services/acb/bkp accettano userkey come parametro di query non vincolato. Il client Python generato inserisce quella chiave nella query string. Lo YAML non ha securitySchemes. Il possesso della chiave del dispositivo Auto Config Backup è il controllo. Si tratta di una capability URL.

Una userkey ACB rubata o trapelata elenca i backup ospitati di quel dispositivo e recupera il corpo di una revisione. La configurazione completa risiede in quei blob. Stessa classe della chiave ACB CE CVE-2024-57273 / SA-25_03 se la chiave trapela. Quel CVE riguardava la derivazione dal banner SSH. Questo residuo è il fratello query-param della Plus MIM API. Non sto ri-segnalando la derivazione dal banner.

Questo è l'OpenAPI pubblico + client generato per pfSense Plus Nexus Multi-instance Management (controller su :8443). Non è il pacchetto REST CE (jaredhendrickson/pfsense-api / pfrest.org). Il server è solo Plus (a pagamento). Non ho eseguito pfSense Plus.

IDnessun CVE al momento
ClasseIDOR (capability URL)
PortataRemota
CWECWE-639
CVSSAlto: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N se quelle GET onorano userkey senza vincolare un JWT al dispositivo
ProdottoNetgate/pfsense-api (pfSense Plus MIM OpenAPI + client generato)
Affettopin b4acd7ca21dbca739a530403a1f62a7440f7726f (2026-05-25). Nessun tag.
AuthSpec: nessuna (securitySchemes assente). userkey è il segreto di query. Plus JWT/RBAC non è stato eseguito.
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1:19171. Nessuna immagine Plus.

Hub della serie: pfsense-api-nexus-mim (questa è la parte 7).

Cosa può fare un attaccante

Richiede una userkey ACB rubata o trapelata (spec: "hexidecimal encoded 32-byte random bytes", 64 hex). La spec non vincola quella chiave a un JWT o al dispositivo del chiamante. GET /services/acb/config di classe G11 restituisce la userkey attiva. I campioni G9 impostano verify_ssl=False, quindi un MITM di :8443 può vedere la chiave sul filo. Questi sono percorsi di fuga. Questo residuo è ciò che la chiave permette di ottenere una volta che è fuori.

Recon

MetodoSinkPrivilegio
GET /services/acb?userkey=<stolen>GetACBList (pfapi_openapi.yml). Generato get_acb_list.py params["userkey"].Dimostrato in laboratorio (mock): elenca i backup ospitati di quel dispositivo. Witness in backups[].reason.
GET /services/acb/bkp?userkey=<stolen>&revision=GetACB -> RetrievedBackup.backup. Generato get_acb.py params["userkey"] + params["revision"].Dimostrato in laboratorio (mock): recupera il corpo della revisione. Witness in backup.
Stessa stringa di backup su un controller liveblob ACB ospitatoInferito: config.xml completo (utenti, chiavi, pacchetti) una volta leggibile. Il mock ha restituito un witness XML in chiaro. Non ho contattato acb.netgate.com né decifrato un blob live.
GET /services/acb/configACBConfigInfo.userkey, ACBConfig.encryption_passwordSpec, non questo laboratorio: segreto di capability live e password di decifratura. Classe G11 secrets-on-GET. Non esercitato.

Integrità

MetodoSinkPrivilegio
POST /services/acb/restoreRestoreACB body { timestamp }Adiacente chiuso: i campioni inviano ancora un JWT. Non questo residuo. Non eseguito.
POST /services/acb/config sostituisce userkeySaveACBConfigAdiacente chiuso: non è un URL di capability GET. Non eseguito.

Disponibilità

GET list / GET bkp non eliminano. DELETE /services/acb/bkp/{timestamp} è un'operazione diversa. Non esercitata.

userkey errata e userkey mancante non hanno restituito witness (dimostrato in laboratorio).

Dimostrato in laboratorio vs inferito: list e bkp con chiave rubata hanno restituito il witness. Chiave errata e chiave mancante no. Plus non è stato eseguito. I contenuti di config.xml live e la decifratura sono inferiti dallo schema pubblico (RetrievedBackup.backup è una stringa; encryption_password risiede su ACBConfig).

Richiede: percorso di rete verso le GET ACB del controller MIM, più una userkey rubata/trapelata. CVSS 7.5 se quelle GET onorano la chiave di query senza vincolare un JWT al dispositivo. Onestamente: questo pack dimostra che la spec pubblica modella quel contratto, su loopback.

Superficie adiacente che resta chiusa

SuperficiePerché
Controller pfSense Plusnon eseguito. Nessuna immagine Plus in questo pack.
Pacchetto CE RESTserver diverso (jaredhendrickson/pfsense-api / pfrest.org).
Derivazione della chiave ACB dal banner SSHCVE-2024-57273 / SA-25_03. Non ri-segnalare.
POST /services/acb/restore come questa scopertai campioni inviano ancora un JWT.
php/shell non autenticato da security OAS omessoresiduo della documentazione. Il mock non è una prova di server 200-senza-JWT.
userkey mancantelaboratorio 403, nessun witness.
userkey erratalaboratorio list vuota / bkp 403, nessun witness.
verify_ssl della libreria generatadefault True. G9 sono i campioni che lo disattivano, non il default del pacchetto.

Come l'ho trovato

Ho fissato Netgate/pfsense-api main b4acd7ca (2026-05-25, "Add Snort-3 API definitions"). Dodici ricerche su login/JWT, diagnostica, enrollment MIM, TLS client, utenti/certificati, pacchetti, VPN/firewall, sicurezza OpenAPI, IDOR dispositivo, git/firmware/feeds, più un mock loopback di ogni operazione generata.

Prima la skip list: residui CE WebGUI già segnalati (QinQ parent if, OpenVPN wizard CRLF, CARP VHID, limiter number, IPsec login banner). Diagnostica PHP/shell come potere admin previsto. Il pacchetto CE REST di terze parti. Derivazione dal banner CVE-2024-57273.

Scarica lo strumento