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-enroll-autoadd — pfSense Plus MIM API toolkit b4acd7ca - Alta - Remoto - Privilégio remanescente - Paramiko AutoAddPolicy enroll | Kitploit
Ferramentas/GitHubGitHub/abraxas/pfsense-api-enroll-autoadd
Análise de VulnerabilidadesExploraçãoSegurança de RedeCriptografiaTestes de PenetraçãoAutenticaçãoPapers e PesquisaRed TeamingLabs e Prática
GitHubabraxas/pfsense-api-enroll-autoadd

pfsense-api-enroll-autoadd

pfSense Plus MIM API toolkit b4acd7ca - Alta - Remoto - Privilégio remanescente - Paramiko AutoAddPolicy enroll

Ver Repositório
há 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-enroll-autoadd

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

pfsense-api-enroll-autoadd

Classe: Privilégio remanescente Alcance: Remoto

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

example-add-devices.py é a forma documentada de registrar o controlador Nexus em cada dispositivo pfSense. Ele nunca chama load_system_host_keys(). Ele define paramiko.AutoAddPolicy(), depois connect, depois exec_command(device_script). O comentário diz para remover o AutoAdd quando os dispositivos já estiverem em known_hosts. O padrão de envio é AutoAdd.

O SSH de primeiro contato com uma nova máquina aceita qualquer chave de host que responder. Autenticação por senha ou chave é apresentada a esse par. A stdout é passada por json.loads e enviada via POST /mim/devices para o controlador real.

Este não é o pacote REST CE de terceiros. Este é o OpenAPI oficial mais o cliente Python gerado para o pfSense Plus Nexus Multi-instance Management. O servidor é exclusivo do Plus. O laboratório é um gadget SSH Paramiko. Não conversei com um controlador Plus real.

IDsem CVE ainda
ClassePrivilégio remanescente (Paramiko AutoAddPolicy no SSH de enrollment)
AlcanceRemoto (on-path para o SSH do dispositivo no primeiro contato)
CWECWE-322
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
ProdutoNetgate/pfsense-api (kit de ferramentas do cliente Plus Nexus MIM)
Afetadomain b4acd7ca21dbca739a530403a1f62a7440f7726f example-add-devices.py
AutenticaçãoO operador executa o exemplo oficial; o atacante está on-path para o SSH do dispositivo
LicençaGNU Affero GPL v3.0
LaboratórioApenas 127.0.0.1:19111. Sem imagem Plus.

AC:H é primeiro contato / on-path. Uma estação de trabalho que já tem as chaves reais do dispositivo em known_hosts e tem a linha AutoAdd removida não é este remanescente.

Mesmos remanescentes de pin: interpolação JSON de ControllerSummary no shell de enrollment (G1) e exemplos forçam verify_ssl=False (G9). Hub da série: pfsense-api-nexus-mim.

O que um atacante pode fazer

Ficar on-path para um endereço SSH de primeiro contato em pfsense_addresses enquanto o operador executa o exemplo. O AutoAdd ainda está ativado.

MétodoSinkPrivilégio
Ficar on-path para um endereço SSH de primeiro contacto em pfsense_addressesset_missing_host_key_policy(paramiko.AutoAddPolicy()) e depois connect (example-add-devices.py:151-160)Integridade (comprovada em laboratório): chave de host desconhecida é aceite. Laboratório: AutoAddPolicy ligou-se (autoadd=yes). RejectPolicy falhou (reject-control=yes).
Mesma sessão, responder a exec_command(device_script)stdout interpretado como DeviceIdentity (example-add-devices.py:161-187)Integridade (comprovada em laboratório): exec devolveu JSON de identidade contendo PFSENSE-API-ENROLL-AUTOADD-WITNESS (identity-json=yes).
Mesmo MITM, ler o payload do execdevice_script é o -d do curl do G1 remanescente de ControllerSummaryRecon (inferido do código-fonte): chave de identidade do controlador, vpn_pubkey / vpn_netkey / endereços de escuta do Netgard. Não foi extraído por este laboratório.
Mesmo MITM, autenticação por palavra-passe ou chaveSSHUSER / SSHPASS ou agent/keys (example-add-devices.py:156-160)Recon (inferido): credenciais ou chaves apresentadas ao host falso. O laboratório usou autenticação por palavra-passe apenas como o caminho de exemplo SSHPASS.
Mesmo stdout JSON, add_controlled_device.syncPOST /mim/devices no controlador realIntegridade (inferido): regista chaves Noise/VPN do atacante e address. Além disso, o handshake não foi executado neste laboratório.
O MITM é o servidor SSHo que quer que o exec que o cliente enviou, como SSHUSERIntegridade / disponibilidade (inferido): executar, descartar ou ignorar o script de enrollment. Chamadas a unix-socket no dispositivo real só acontecem se o MITM as reencaminhar.

Comprovado em laboratório vs inferido: a ligação AutoAdd, a falha do RejectPolicy e o JSON de identidade com o witness são de laboratório. A extração da chave do controlador, o roubo de credenciais, o POST /mim/devices de um dispositivo falso e a execução dos curls reais para o unix-socket são inferidos do mesmo caminho de exemplo.

Requer: o operador executa o exemplo oficial contra um endereço SSH cuja chave de host ainda não está fixada, com o AutoAdd ativo. Caminho de rede até esse SSH. AC:H é primeiro contacto / on-path.

Superfície adjacente que permanece fechada

SuperfíciePorquê
RejectPolicy no mesmo host desconhecidoLaboratório: reject-control=yes. O Paramiko recusa a chave.
Estação de trabalho com chaves de dispositivo reais em known_hosts e linha AutoAdd removidaO modo pretendido pelo comentário. O exemplo nunca carrega essas chaves a menos que adiciones a chamada.
Login HTTPS no controladorverify_ssl=False é um resquício de exemplo irmão (G9), não este sink.
MIM por unix-socket na firewall realApenas se o MITM reencaminhar o exec. Este laboratório nunca comunica com /var/run/pfnet-controller.sock.
Client gerado com verify_ssl=True por omissãoA omissão da biblioteca não é o resquício. Os exemplos forçam False.
Além disso RBAC / :8443 em produçãoEste laboratório é um gadget Paramiko. Não comuniquei com um controlador Plus.
Internet não autenticada para 8443O login ainda emite um JWT. Não é este achado.
Diagnósticos PHP/shellPoder de administrador pretendido para um JWT de frota. Não é este achado.

Como o encontrei

Fixeio github.com/Netgate/pfsense-api main b4acd7ca21dbca739a530403a1f62a7440f7726f após os resquícios da WebGUI CE. Esta árvore é OpenAPI mais Python gerado para o Plus Nexus MIM. Li o ciclo de enrollment em example-add-devices.py. A política de chave de host é AutoAdd. Os segredos ficam no mesmo canal exec. O exemplo nunca chama load_system_host_keys().

Baixar ferramenta