Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2026-0300-audit — Ferramenta de auditoria somente leitura para CVE-2026-0300 (exposição do Portal de Autenticação User-ID do PAN-OS) | Kitploit
Ferramentas/GitHubGitHub/tailwindrg/cve-2026-0300-audit
Segurança de Infraestrutura em NuvemAnálise de VulnerabilidadesScripting e AutomaçãoAuditoria de ConfiguraçãoSegurança de RedeDevSecOps
GitHubtailwindrg/cve-2026-0300-audit

cve-2026-0300-audit

Ferramenta de auditoria somente leitura para CVE-2026-0300 (exposição do Portal de Autenticação User-ID do PAN-OS)

Ver Repositório
há 3 mesesAinda 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

Ferramentas de Auditoria CVE-2026-0300

Ferramentas de auditoria somente leitura para CVE-2026-0300 — o estouro de buffer não autenticado no Portal de Autenticação User-ID do PAN-OS (anteriormente conhecido como "Captive Portal") em firewalls das séries PA e VM.

Este repositório acompanha o advisory de segurança da Tailwind Resource Group TRG-SA-2026-003 e fornece:

  • audit_portal.py — Nível 1: auditoria de firewall único
  • audit_fleet.py — Nível 2: varredura de frota orientada por Panorama (concorrente)
  • panos_audit.py — biblioteca compartilhada usada por ambos os CLIs

Os scripts são somente leitura. Eles emitem consultas do tipo show contra a API XML do PAN-OS e nunca modificam a configuração. A chave da API é enviada pelo cabeçalho HTTP X-PAN-KEY em vez de um parâmetro de consulta na URL, portanto não aparece nos logs de acesso do plano de gerenciamento do PAN, nos logs de proxy com inspeção TLS ou nos argumentos de processo do auditor.

Por que isso existe

O registro da CVE usa o nome moderno do recurso "Portal de Autenticação User-ID". O esquema XML do PAN-OS, os parâmetros de CLI e os caminhos de URL da documentação ainda usam o vocabulário legado captive-portal. Operadores que auditam frotas com show config running | match authentication-portal perderão silenciosamente todas as configurações porque essa string nunca aparece como elemento de configuração. Esta ferramenta pesquisa o nome de elemento correto no esquema, independentemente de quando a configuração foi criada.

A análise completa da Tailwind sobre essa pegadinha de nomenclatura está no TRG-SA-2026-003, "Captive Portal's legacy footprint" (A pegada legada do Captive Portal).

Requisitos

  • Python 3.10 ou mais recente
  • Apenas biblioteca padrão — sem necessidade de pip install
  • Uma chave de API do PAN-OS com acesso de leitura ao firewall (ou, para o Nível 2, ao Panorama)
  • Um certificado assinado por CA (ou confiável pelo operador) na interface de gerenciamento do firewall; --insecure é fornecido apenas para auditorias pontuais de implantação inicial

Nível 1 — firewall único

root@kitploit:~
export PAN_API_KEY="<chave>"
./audit_portal.py --hostname fw1.example.com

Exemplo de saída em tabela:

root@kitploit:~
vsys: vsys1
  configured:    True
  enabled:       True
  redirect_host: auth-portal.internal.example.com
  mode:          redirect
  bound:         ethernet1/3(internal-trust), ethernet1/4(guest)
  tls_verified:  True
  risk:          EXPOSED_LIKELY

Outros formatos de saída: --output json ou --output csv.

Outras opções: --vsys <nome> para auditoria de vsys único, --timeout/--retries para upstreams lentos, --debug para detalhes de erro detalhados em stderr.

Nível 2 — varredura de frota Panorama

root@kitploit:~
export PAN_API_KEY="<chave-panorama>"
./audit_fleet.py --hostname panorama.example.com --workers 16 --output csv > fleet-audit.csv

Cada linha no CSV é um dispositivo-vsys com status do portal, host de redirecionamento, modo, vínculos de interface e uma classificação de risco. O script usa o parâmetro de API target=<serial> do Panorama, portanto nunca se conecta diretamente aos firewalls gerenciados — uma conexão ao Panorama varre toda a frota.

Opções notáveis:

  • --workers N — threads de auditoria concorrentes (padrão 8, máximo 32). Uma frota de 1000 dispositivos é concluída em minutos, em vez da mais de uma hora que uma varredura serial levaria.
  • --timeout, --retries — configurações por chamada de API. URLError transitórios e HTTP 5xx são repetidos com backoff limitado.
  • --exclude-disconnected — por padrão, dispositivos desconectados são incluídos com risk=DISCONNECTED para que permaneçam visíveis durante a janela de patch. Use esta opção para removê-los.
  • --min-expected-devices N — avisa (stderr) se o Panorama retornar menos dispositivos que N. Útil para detectar truncamento de resposta em relação a um tamanho de frota conhecido.
  • --serial-filter '0007*' — filtra por glob de serial para auditar um subconjunto.
  • --debug — imprime detalhes de erro detalhados por dispositivo em stderr (inclui strings reason do upstream; desativado por padrão para evitar vazar nomes de host em CSVs voltados ao cliente).

Classificação de risco

A coluna risk na saída é uma das seguintes:

RótuloSignificado
INFO_NOT_CONFIGUREDNenhum bloco <captive-portal> no dispositivo. Fora do escopo da CVE-2026-0300.
INFO_DISABLEDO portal está configurado, mas enabled=no. O caminho de código vulnerável não está ativo.
REVIEW_POLICY_NO_BINDINGSPortal habilitado, mas nenhum vínculo de interface encontrado na configuração. Verifique via WebUI.
EXPOSED_LIKELYPortal habilitado e vinculado a uma zona cujo nome sugere exposição não confiável (untrust, dmz, guest, external, internet, wan, public). Investigue primeiro.
REVIEW_POLICYPortal habilitado e vinculado a zonas com nomes internos. Percorra a política de segurança para confirmar a alcançabilidade.

EXPOSED_LIKELY é uma dica, não um veredito — nomes de zona são convenções do operador, não imposição. O script não pode substituir uma análise de política de segurança; ele ordena a saída da frota para onde a atenção deve se concentrar primeiro.

O que os scripts fazem — e o que não fazem

Fazem:

  • Consultam blocos <captive-portal> por vsys (o nome do elemento no esquema é sempre captive-portal, independentemente da nomenclatura da interface ou da versão do PAN-OS).
  • Relatam habilitado/desabilitado, host de redirecionamento, modo e vínculos de interface resolvidos por zona.
  • Classificam o risco por heurística de nome de zona para que linhas EXPOSED_LIKELY apareçam primeiro na saída da frota.
  • Enviam a chave da API pelo cabeçalho X-PAN-KEY para que ela fique fora dos logs de acesso de URL e dos argumentos de processo.
  • Limitam o tamanho do corpo da resposta (50 MB) para se defender contra ataques de expansão de entidade no analisador XML.
  • Repetem erros transitórios com backoff limitado.

Não fazem:

  • Percorrem a política de segurança de forma abrangente. Se o portal é alcançável a partir de uma rede não confiável depende de regras de política, NAT e vínculos de zona — o operador deve concluir essa análise a partir da saída da auditoria.
  • Testam a alcançabilidade por sondagem de rede. Apenas auditoria de configuração pura.
  • Modificam qualquer configuração. Todas as chamadas de API são somente leitura.

Gerando uma chave de API do PAN-OS

A chave de API do PAN-OS herda a função e as permissões do usuário que a gera.

Aviso importante: não existe concessão de API XML somente leitura no PAN-OS.

As permissões de Função de Administrador na aba XML API são binárias Habilitar/Desabilitar por categoria — Configuração, Solicitações Operacionais, Commit, Exportação, Importação, Relatório, Log, Agente User-ID. Habilitar Configuração para XML API permite ações show e set/edit/delete/move/rename/clone. Habilitar Solicitações Operacionais permite operações <request> arbitrárias, incluindo <request><restart>. As abas Web UI e REST API oferecem Somente Leitura como opção; a aba XML API não oferece.

Um "usuário de auditoria" criado habilitando essas categorias de XML API detém autoridade total de escrita na XML API no dispositivo. Trate a chave resultante como uma credencial privilegiada: limite sua vida útil à janela de auditoria, armazene-a em um gerenciador de segredos e desabilite o usuário quando o trabalho for concluído.

Referência canônica do PAN: Get Your API Key (PAN-OS XML API).

Pela WebUI

No firewall (ou Panorama, se você estiver usando audit_fleet.py):

  1. Crie a Função de Administrador. Navegue até Device > Admin Roles (ou Panorama > Admin Roles). Clique em Add.

    • Nomeie a função, por exemplo, audit-config-and-op.
    • Na aba Web UI, defina tudo como None (nenhum acesso à interface é necessário para o usuário de auditoria).
    • Na aba XML API, habilite Configuration e Operational Requests. Deixe Commit, Export, Import, Report, Log e User-ID Agent desabilitados.
    • Clique em OK. A função resultante concede autoridade total de Configuração e Solicitações Operacionais na XML API — veja o aviso acima.
  2. Crie o usuário de auditoria. Navegue até Device > Administrators (ou Panorama > Administrators). Clique em Add.

    • Nome: por exemplo, audit-cve-2026-0300.
    • Defina uma senha forte ou vincule a um Perfil de Autenticação.
    • Tipo de Administrador: Role Based → selecione audit-config-and-op.
    • Clique em OK e depois Commit na configuração candidata.
  3. Gere a chave da API com as credenciais do novo usuário. O PAN-OS não expõe um botão "gerar chave de API" na WebUI — o endpoint keygen é o caminho suportado. Use um corpo POST para que as credenciais não sejam registradas nos logs de acesso de URL:

    root@kitploit:~
    read -rs AUDIT_PW; echo
    export PAN_API_KEY="$(curl -ksX POST "https://fw1.example.com/api/" \
      --data-urlencode "type=keygen" \
      --data-urlencode "user=audit-cve-2026-0300" \
      --data-urlencode "password=$AUDIT_PW" \
      | grep -oE '<key>[^<]+' | cut -c6-)"
    unset AUDIT_PW
    

    read -rs lê a senha sem ecoá-la no terminal e sem colocá-la no histórico do shell. O script lê o PAN_API_KEY resultante do ambiente e o envia pelo cabeçalho HTTP X-PAN-KEY — nem a senha nem a chave aparecem nos logs de acesso de URL ou em ps auxww enquanto o script é executado.

  4. Desabilite o usuário quando o trabalho de auditoria for concluído. Navegue até Device > Administrators, localize audit-cve-2026-0300, clique em Delete (ou desabilite o usuário). Faça commit. Isso invalida quaisquer chaves geradas para esse usuário.

Notas de endurecimento

  • Mantenha a senha e a chave fora do histórico do shell. read -rs cobre a senha. Para a chave em PAN_API_KEY, prefira defini-la interativamente pelo trecho acima em vez de colá-la de um arquivo. Se precisar carregá-la de um arquivo, use set +o history para a sessão.
  • Use um certificado assinado por CA na interface de gerenciamento do firewall. A opção --insecure em ambos os scripts de auditoria desabilita completamente a verificação do nome de host TLS e a validação do certificado. Qualquer atacante no caminho pode fazer MITM na resposta da auditoria e relatar portal_enabled=False para um dispositivo comprometido. O script audit_fleet.py exige --accept-mitm-risk junto com --insecure para varreduras de frota porque o raio de explosão de uma resposta envenenada é de toda a frota.
  • Rote a chave quando concluir. Desabilitar ou excluir o usuário de auditoria invalida todas as chaves geradas sob esse usuário.

Códigos de saída

  • 0 — nenhum portal habilitado em nenhum vsys auditado
  • 2 — nenhum vsys encontrado (configuração transitória ou não suportada)
  • 3 — portal habilitado em pelo menos um vsys (revisão necessária)
  • 4 — falha na chamada de API (autenticação, TLS, rede)

A saída não zero em "portal habilitado" é intencional — permite conectar o script a pipelines de CI/varredura de frota que precisam de um sinal limpo.

Licença

Licenciado sob a Apache License, Versão 2.0. Consulte LICENSE para os termos completos.

Uso comercial é permitido; atribuição é exigida (retenha o aviso de direitos autorais e o arquivo de licença em trabalhos derivados).

Copyright 2026 Tailwind Resource Group.

Veja também

  • TRG-SA-2026-003 — advisory de segurança da Tailwind Resource Group para CVE-2026-0300
  • PAN PSIRT — https://security.paloaltonetworks.com/CVE-2026-0300
  • Melhores práticas PAN (restringir acesso ao portal) — https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u000000CqbiCAC
  • Tailwind Resource Group — https://tailwindrg.com
Baixar ferramenta