Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pfsense-api-acme-key-dump — pfSense Plus MIM API toolkit b4acd7ca - Alta - Remoto - Privilégio remanescente - GET /services/acme despeja chaves | Kitploit
Ferramentas/GitHubGitHub/abraxas/pfsense-api-acme-key-dump
Análise de VulnerabilidadesExploraçãoExfiltração de DadosColeta de InformaçõesSegurança WebTestes de PenetraçãoDetecção de SegredosPapers e PesquisaSegurança de API
GitHubabraxas/pfsense-api-acme-key-dump

pfsense-api-acme-key-dump

pfSense Plus MIM API toolkit b4acd7ca - Alta - Remoto - Privilégio remanescente - GET /services/acme despeja chaves

Ver Repositório
1há 1 diaAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

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

Classe: Privilégio remanescente Alcance: Remoto

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

GET /services/acme (GetACMEConfig) retorna ACMEConfig sem flag write-only ou redigida. O schema 200 inclui a chave privada da conta ACME, toda chave privada de leaf emitida, qualquer chave de leaf personalizada e os tokens do provedor DNS usados para validação. O gerenciador de certificados ao menos tem um GET .../export-key dedicado. O ACME não tem nenhum. O GET de configuração é o dump.

Uma sessão de controlador que consegue fazer GET neste caminho copia toda chave de hostname que o firewall registra, além das credenciais DNS que provam o controle desses nomes.

Esta árvore é o OpenAPI público mais um cliente Python gerado. Não é o pacote REST do CE. O controlador MIM é exclusivo do Plus e não está no repositório do GitHub. Não conversei com um controlador ativo. plus-not-executed=1.

IDsem CVE ainda
ClassePrivilégio remanescente (dump de segredo no GET de configuração)
AlcanceRemoto (controlador MIM autenticado; não comprovado sem autenticação)
CWECWE-200
CVSSAlto: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N se um papel de leitura de serviços receber o corpo. Se apenas superusuário puder fazer GET, o dump ainda é a forma errada para uma listagem de configuração.
ProdutoNetgate/pfsense-api OpenAPI para pfSense Plus Nexus MIM
Afetadomain público b4acd7ca21dbca739a530403a1f62a7440f7726f (2026-05-25, Add Snort-3 API definitions). Sem tags.
AutenticaçãoJWT do controlador de POST /login. Exemplos enviam Bearer. A especificação não tem securitySchemes.
LicençaGNU Affero GPL v3.0
LaboratórioApenas 127.0.0.1:19151. Sem imagem Plus.

Hub da série: pfSense Plus MIM leftovers. Esta é a parte 5. Encadeia com G9 stolen JWT (exemplos definem verify_ssl=False) e G6 fleet token (um Bearer de login é reutilizado para cada device_id). Dump irmão: G4 cert-manager export-key.

O que um atacante pode fazer

Requer uma sessão de controlador que consiga GET /services/acme. A documentação mapeia isso para mim_services_read / mim_services / mim_superuser. A especificação não vincula esses papéis ao caminho. O RBAC do Plus não foi executado.

Um JWT roubado do G9 (MITM dos exemplos oficiais) ou um token de frota de helpdesk do G6 é suficiente para apontar este GET para cada máquina registrada. Essa cadeia é inferida. Este remanescente é o corpo do GET.

Recon

MétodoSinkPrivilégio
GET /services/acmeACMEConfig.account_keys[].account_key (format: byte)Comprovado em laboratório na spec publicada e no mock: o schema 200 inclui account_key; o corpo do mock faz round-trip de PFSENSE-API-ACME-KEY-DUMP-WITNESS. Inferido no Plus: copiar a chave privada da conta Let's Encrypt (ou outra conta ACME). Comunicar com a conta ACME fora da máquina.
Mesmo GETcerts[].issued_cert.privateKey (format: byte)Comprovado em laboratório spec+mock. Inferido no Plus: copiar todas as chaves privadas de folhas emitidas que a firewall inscreveu. Personificação TLS fora da máquina para esses nomes.
Mesmo GETcerts[].custom_key (format: byte)Comprovado em laboratório spec+mock. Inferido no Plus: copiar uma chave de folha personalizada quando key_type=custom.
Mesmo GETcerts[].domain_list[].config.credentials (additionalProperties: string)Comprovado em laboratório spec+mock. Inferido no Plus: copiar segredos de validação DNS (tokens Cloudflare, chaves AWS, segredos RFC2136). Estes provam o controlo dos nomes.
Mesmo GETemails de conta, URLs de servidor personalizados, action_list.commandComprovado em laboratório que os campos estão no schema. A execução de hooks é um caminho de modificação, não este GET.

Integridade

Nenhuma pelo próprio GET. O uso posterior de chaves roubadas e tokens DNS é fora da máquina (emitir um certificado fraudulento, comunicar com a conta ACME, alterar DNS). Não exercitado.

Disponibilidade

Nenhuma. A listagem de configuração não revoga nem reescreve certificados.

Requer: acesso autenticado ao controlador MIM que tenha permissão para GET da tag ACME. Não comprovado sem autenticação. O _get_kwargs gerado para esta operação não adiciona Authorization; os exemplos ainda fazem login e enviam Bearer.

Superfície adjacente que permanece fechada

SuperfíciePorquê
Controlador pfSense Plus / Nexus em produçãoNão executado. plus-not-executed=1.
Internet para 8443 sem autenticaçãoOs exemplos requerem POST /login. A ausência de security no OAS é uma lacuna da spec, não uma prova de servidor 200-sem-JWT.
POST /services/acme/cert/{name}/issue e .../renewModificação de serviços pretendida.
POST /services/acme/genprivatekeyGeração e devolução pretendidas de uma nova chave de conta. Não este resíduo.
POST /diag/cmd/php / POST /diag/cmd/shellConsola de administração pretendida. Superfície separada. O fornecedor trata Diagnostics: Command como pretendido (CVE-2025-69691 contestado).
GET /system/certificates/{refid}/export-keyResíduo separado: exportação dedicada de chaves no gestor de certificados. O ACME não tem operação de exportação equivalente.
GET /services/acme/validmethodsCatálogo de métodos. Sem chaves.
CE jaredhendrickson/pfsense-apiProduto diferente.

Como o encontrei

Fixeio Netgate/pfsense-api público b4acd7ca após a vaga CE 2.9.0-DEVELOPMENT. Esta árvore é OpenAPI 3.0.3 (pfapi_openapi.yml, 486 paths, 755 ops) mais um cliente Python gerado para o controlador MIM Plus em :8443. Sem tags. O último commit público no dia em que clonei era 2026-05-25, "Add Snort-3 API definitions."

Doze caçadas sobre login/JWT, diagnósticos, inscrição MIM, TLS de cliente, utilizadores/certificados, pacotes, VPN/firewall, segurança OpenAPI, IDOR de dispositivos, git/firmware/feeds, mais um mock loopback de cada operação gerada.

Lista de exclusão primeiro: os cinco resíduos CE já enviados por email (QinQ parent-if, OpenVPN wizard CRLF, CARP VHID, limiter number, IPsec login banner). O pacote REST CE de terceiros. Diagnostics PHP/shell como RCE não publicado. securitySchemes em falta como não autenticado comprovado. POST /system/firmware não tem URL. Ping/DNS/traceroute são o diagnóstico.

Baixar ferramenta