Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pfsense-api-example-ssl-verify — pfSense Plus MIM API toolkit b4acd7ca - Moyen - À distance - Privilège résiduel - exemples officiels verify_ssl=False | Kitploit
Outils/GitHubGitHub/abraxas/pfsense-api-example-ssl-verify
Outils DéfensifsAnalyse des VulnérabilitésExploitationCollecte d'InformationsSécurité WebSécurité RéseauTests d'IntrusionAuthentificationArticles et Recherche
GitHubabraxas/pfsense-api-example-ssl-verify

pfsense-api-example-ssl-verify

pfSense Plus MIM API toolkit b4acd7ca - Moyen - À distance - Privilège résiduel - exemples officiels verify_ssl=False

Voir le dépôt
2il y a 1 jourPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Abraxas Labs - pfsense-api-example-ssl-verify

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-api-example-ssl-verify

pfsense-api-example-ssl-verify

Classe : Reliquat de privilège Portée : Distante

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

Les Client / AuthenticatedClient générés définissent verify_ssl=True par défaut et le transmettent à httpx. La documentation qualifie déjà verify_ssl=False de risque de sécurité et montre d'abord un chemin de bundle PEM. Chaque exemple Python officiel et helper_funcs.py les construisent toujours avec verify_ssl=False. example.js définit NODE_TLS_REJECT_UNAUTHORIZED=0, donc tout le processus Node ignore la vérification. Le JSON de connexion place le nom d'utilisateur et le mot de passe en base64. C'est le contrat OpenAPI, pas du chiffrement. TLS est la couche de confidentialité.

Un pair sur le chemin de :8443 présente n'importe quel certificat. L'exemple envoie quand même le POST /login. Le substitut capture la connexion admin en base64 et forge un JWT. Ce jeton est la chaîne : G4 export-key, G5 ACME dump, G6 fleet JWT, G7 ACB userkey, php/shell prévu, et le JSON que G1 interpole dans SSH.

Ceci est la Partie 9 de pfSense Plus MIM API toolkit. Lisez d'abord ce reliquat même s'il est Medium. Le JWT volé est ce qui rend le reste accessible depuis un poste de travail ayant copié example.py.

IDpas encore de CVE
ClasseReliquat de privilège (vérification TLS désactivée dans l'exemple)
PortéeDistante (sur le chemin de :8443)
CWECWE-295
CVSSMoyen : 6.8 CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
ProduitNetgate/pfsense-api (client Plus Nexus MIM ; pas le paquet REST CE)
Affectémain public b4acd7ca21dbca739a530403a1f62a7440f7726f (2026-05-25) exemples officiels et helper_funcs.py
Authl'opérateur copie et exécute un exemple contre le contrôleur ; aucun rôle contrôleur supplémentaire
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:19191 uniquement. Ne compose pas pfSense Plus.

AC:H est sur le chemin entre le poste de travail de l'opérateur et le contrôleur MIM. UI:R correspond à copier/exécuter l'exemple.

Ce qu'un attaquant peut faire

Victime : poste de travail de l'opérateur exécutant un exemple officiel ou helper_funcs.py contre https://controller:8443. Attaquant : sur le chemin de ce HTTPS (LAN, DHCP pirate, saut VPN compromis, ARP). Pas Internet-vers-pare-feu non authentifié.

MéthodeSinkPrivilège
Présenter n'importe quel certificat pendant que l'échantillon POSTe /login ou /api/login avec verify_ssl=False / NODE_TLS_REJECT_UNAUTHORIZED=0httpx verify=False (échantillons Python) ou Node TLS reject-unauthorized 0Confidentialité (prouvée en labo) : lire le JSON de login. Labo : le stand-in a capturé le base64 admin / lab-controller-secret (captured_b64_admin=yes). Le décodage se fait avec un simple base64 -d.
Même MITM, 200 LoginResponsel'échantillon accepte n'importe quel certificatConfidentialité (prouvée en labo) : voler le JWT d'accès. Labo : INJECT a obtenu un token portant PFSENSE-API-EXAMPLE-SSL-VERIFY-WITNESS.
Même MITM, Set-Cookie au loginl'échantillon copie client.get_httpx_client().cookies dans AuthenticatedClientConfidentialité (cookie prouvé en labo, rejeu inféré) : JWT de refresh de 24 heures. Rejouer POST /login/refresh avec ce cookie plus le nom d'utilisateur en base64 jusqu'à l'expiration du TTL de refresh. Labo : a capturé Set-Cookie: refresh=.... Le refresh contre un contrôleur réel n'a pas été exécuté.
Rejouer le Bearer volé vers le vrai contrôleur (si l'attaquant peut aussi y router)Plus MIM /api et /api/device/pfsense/{device_id}/apiIntégrité (inférée) : équivalent admin en tant qu'utilisateur connecté sur cette API. Le schéma inclut POST /diag/cmd/php, POST /diag/cmd/shell, POST /diag/editfile, POST /diag/backup/restore, POST /diag/control halt/reboot. Non exercé ici. Ce labo est un stand-in de contrôleur, pas Plus.
Rejouer le Bearer volé en tant que leftover 6 (token de flotte)un seul JWT POST /login réutilisé pour chaque device_idIntégrité (inférée) : parler au firewall B après s'être authentifié en tant qu'utilisateur destiné au firewall A. LoginResponse n'a pas de liste d'autorisation par appareil. Pack : pfsense-api-fleet-jwt. RBAC de Plus non exécuté.
Rejouer le Bearer volé en tant que leftover 4GET /system/certauth/{refid}/export-key, GET /system/certificates/{refid}/export-key, GET /system/certificates/{refid}/export-p12Confidentialité (inférée) : extraire les clés privées de la CA et des feuilles, PKCS12 documenté sans protection par mot de passe, puis usurper l'identité VPN / WebGUI TLS / IPsec. Pack : pfsense-api-export-key-get.
Rejouer le Bearer volé en tant que leftover 5GET /services/acmeConfidentialité (inférée) : voler la clé de compte Let's Encrypt et les clés des certificats émis pour chaque nom d'hôte enrôlé par le firewall. Pack : pfsense-api-acme-key-dump.
Rejouer le Bearer volé, ou fuiter userkey depuis un échantillon qui GET ACB, en tant que leftover 7GET /services/acb?userkey= et GET /services/acb/bkp?userkey=Confidentialité (inférée) : lister et récupérer les blobs Auto Config Backup (configuration complète). Pack : pfsense-api-acb-userkey.
Façonner le JSON ControllerSummary vers leftover 1MITM du HTTPS verify_ssl=False fournit le JSON que example-add-devices.py échappe entre guillemets puis .format dans SSHIntégrité (inférée) : $() / backticks / retours à la ligne dans un champ du contrôleur s'exécutent en tant que SSHUSER sur chaque adresse dans pfsense_addresses. Pack : pfsense-api-enroll-json-ssh.
Injecter des réponses vers le clientskip-verify accepte n'importe quel certificatIntégrité (token prouvé en labo, flotte inférée) : forger un JWT que l'échantillon conservera. Labo : token INJECT avec le witness. Fausses listes d'appareils / progression de mise à jour / succès de login contre un échantillon réel relèvent de la même barrière.
POST /diag/control, POST firmware, restauration d'une sauvegarde corrompue (après Bearer volé)surface admin prévue une fois TLS disparuDisponibilité (inférée) : halt / reboot / image corrompue. Même Bearer. Non testé en labo.
Télécharger l’outil