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
Ferramentas/GitHubGitHub/lightos/panoptic
ReconhecimentoScanners de VulnerabilidadesExploração de Aplicações WebColeta de InformaçõesTestes de Penetração
GitHublightos/panoptic

Panoptic

Panoptic é uma ferramenta de teste de penetração de código aberto que automatiza o processo de busca e recuperação de conteúdo de arquivos de log e configuração comuns por meio de vulnerabilidades de path traversal.

Ver Repositório
32574há 22 diasRevisado pelo Kitploit

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

Panoptic

Panoptic Logo

License: MIT Python Versions Ruff mypy GitHub last commit CodeRabbit Pull Request Reviews

O Panoptic é uma ferramenta de teste de penetração de código aberto que automatiza a busca e a recuperação de arquivos comuns de log e configuração através de vulnerabilidades de path traversal.

Panoptic Demo

Funcionalidades

  • Varredura assíncrona concorrente com pool de workers configurável (--concurrency)
  • Descoberta automática de arquivos comuns de log e configuração via injeção baseada em parâmetro, baseada em caminho, POST, cookie, cabeçalho e corpo JSON
  • Marcador FUZZ para pontos de injeção arbitrários — coloque FUZZ em qualquer valor de --header ou --data
  • Codificação Base64 para endpoints que decodificam caminhos de arquivo (--base64)
  • Detecção automática de SO com opção de restringir varreduras adicionais
  • Comparação heurística de respostas com filtragem por código de status para reduzir falsos positivos
  • Injeção dinâmica de casos — analisa /etc/passwd em busca de arquivos do diretório home, mysql-bin.index em busca de arquivos binlog
  • Múltiplos formatos de saída: texto (rich), JSON, CSV (--output-format)
  • Suporte a retomada/checkpoint para varreduras de longa duração (--resume-file)
  • Arquivos de configuração TOML para configurações persistentes (--config)
  • Múltiplas técnicas de bypass de traversal: prefixos, pós-fixos, multiplicador, substituição de barras, codificação dupla

Requisitos

  • Python 3.10+
  • Git
  • Dependências: httpx[socks], rich, rich-argparse e tomli no Python 3.10

Instalação

root@kitploit:~
git clone https://github.com/lightos/Panoptic.git
cd Panoptic
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
panoptic --version

No Prompt de Comando do Windows, ative com .venv\Scripts\activate.bat; no PowerShell, use .venv\Scripts\Activate.ps1. A instalação editável mantém o Panoptic conectado a este checkout para --update, portanto mantenha o diretório no lugar. Não execute pip install panoptic: esse nome no PyPI pertence a um projeto não relacionado.

Para desenvolvimento:

root@kitploit:~
python -m pip install -e ".[dev]"

Uso

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt"

Exemplos

LFI básico baseado em parâmetro

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt"
panoptic --url "http://target/include.php?file=test.txt&id=1" \
  --param file

Injeção de dados POST

root@kitploit:~
panoptic --url "http://target/include.php" \
  --data "file=test.txt&id=1" --param file

LFI baseado em caminho

root@kitploit:~
panoptic --url "http://target/view.php/test.txt" --path-based

Parâmetro codificado em Base64

root@kitploit:~
panoptic --url "http://target/load.php?file=dGVzdC50eHQ=" \
  --base64 --auto

Injeção por cookie (marcador FUZZ)

root@kitploit:~
panoptic --url "http://target/page.php" \
  --header "Cookie: lang=FUZZ" --auto

Injeção no corpo JSON (marcador FUZZ)

root@kitploit:~
panoptic --url "http://target/api/load" \
  --data '{"file":"FUZZ"}' --auto

Injeção em cabeçalho personalizado (marcador FUZZ)

root@kitploit:~
panoptic --url "http://target/page.php" \
  --header "X-Template: FUZZ" --auto

Parâmetro de extensão

root@kitploit:~
panoptic --url "http://target/view.php?file=test&type=txt" \
  --param file --ext-param type

Bypass de filtro com prefixo

root@kitploit:~
panoptic --url "http://target/filtered.php?file=test.txt" \
  --prefix "....//....//....//....//"

Varreduras filtradas

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --os "*NIX" --type conf
panoptic --url "http://target/include.php?file=test.txt" \
  --software PostgreSQL

Saída JSON com suporte a retomada

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --output-format json --output-file results.json \
  --resume-file scan.checkpoint

Proxy com erros SSL ignorados

root@kitploit:~
panoptic --url "https://target/include.php?file=test.txt" \
  --proxy "socks5://127.0.0.1:9050" --invalid-ssl

Listar filtros disponíveis

root@kitploit:~
panoptic --list software
panoptic --list category
panoptic --list os

Varredura abrangente

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --auto --all-versions --concurrency 8

Marcador FUZZ

Coloque FUZZ em qualquer lugar nos valores de --header ou --data para marcar o ponto de injeção. O Panoptic substitui FUZZ por cada caminho de arquivo durante a varredura. Isso permite testar pontos de injeção que --param não consegue alcançar:

Tipo de injeçãoExemplo
Valor de cookie--header "Cookie: theme=FUZZ"
Cabeçalho personalizado--header "X-Include: FUZZ"

Quando FUZZ está presente, --param não é necessário.

Configuração

O Panoptic suporta arquivos de configuração TOML para configurações persistentes:

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --config ~/.config/panoptic/config.toml

Local padrão do config: ~/.config/panoptic/config.toml (carregado automaticamente quando presente, mesmo sem --config).

root@kitploit:~
[defaults]
# Any long option name (with dashes as underscores) is accepted here,
# including the target and output destinations.
url = "http://target/include.php?file=test.txt"
concurrency = 8
verbose = true
automatic = true
all_versions = true
output_format = "json"
output_file = "results.json"
log_file = "scan.log"
resume_file = "scan.checkpoint"

[proxy]
url = "socks5://127.0.0.1:9050"

[headers]
user_agent = "Mozilla/5.0"
cookie = "sid=foobar; auth=1"
values = ["X-Forwarded-For: 127.0.0.1"]

Prioridade: argumentos de CLI > arquivo de configuração > padrões embutidos.

Opções de alvo e saída suportadas pelo config

A tabela [defaults] aceita qualquer opção de varredura, não apenas ajuste de desempenho. Em particular, você pode persistir:

  • url — o alvo padrão (substituível por execução com --url)
  • output_format, output_file — onde os resultados legíveis por máquina são gravados
  • log_file — espelha a saída do console em um arquivo
  • resume_file — local do checkpoint para varreduras retomáveis

Artefatos confidenciais gravados pelo Panoptic — o arquivo de log, o arquivo de saída de resultados/lista e quaisquer arquivos salvos com --write-files — são forçados a permissões 0600 somente do proprietário no POSIX. Plataformas que expõem O_NOFOLLOW também recusam atomicamente um symlink pré-existente no componente final do caminho. Em plataformas sem O_NOFOLLOW, o Panoptic realiza uma verificação de symlink/junction pré-abertura de melhor esforço, mas a verificação não elimina uma condição de corrida (race). Os bits de modo do Windows não configuram ACLs NTFS, portanto use um diretório devidamente restrito quando os artefatos puderem conter dados confidenciais.

Substituindo booleanos do config na linha de comando

Cada flag booleana tem um equivalente --no-, portanto um valor definido como true no arquivo de configuração pode ser desativado para uma única execução sem editar o arquivo:

root@kitploit:~
# config.toml sets verbose = true and automatic = true
panoptic --url "http://target/x.php?file=test.txt" --no-verbose --no-auto

Como uma flag booleana omitida fica não definida (em vez de assumir o padrão false), o valor do config é usado a menos que você passe a flag ou sua forma --no- explicitamente.

Uso de Proxy

Roteie o tráfego por um proxy HTTP(S) ou SOCKS:

root@kitploit:~
panoptic --url "https://target/x.php?file=test.txt" \
  --proxy "socks5://127.0.0.1:9050"
  • Esquemas aceitos: http://, https://, socks5://, socks5h:// (socks5h resolve DNS através do proxy — útil para Tor e para evitar vazamentos locais de DNS). O SOCKS4 não é suportado pelo cliente HTTP subjacente. O esquema e o host são validados antes do início da varredura.
  • O suporte a SOCKS vem do extra httpx[socks], que é instalado por padrão.
  • Por padrão, o Panoptic respeita as variáveis de ambiente padrão HTTP_PROXY / HTTPS_PROXY / NO_PROXY. Passe --ignore-proxy para ignorá-las e conectar diretamente (isso também desativa qualquer proxy configurado por ambiente).
  • Combine com --invalid-ssl ao interceptar HTTPS através de um proxy com CA própria. Isso desativa a verificação de certificado e é inseguro em redes não confiáveis.

Expansão de Versão (--all-versions)

Alguns caminhos inclusos são modelos de versão (por exemplo, diretórios de release do JBoss escritos como [JBOSS]). Por padrão, essas linhas de modelo são ignoradas, porque um caminho literal [JBOSS] nunca pode corresponder a um arquivo real. Passar --all-versions expande cada modelo contra a lista de versões inclusas, adicionando um caminho concreto por versão conhecida — uma varredura muito maior, porém muito mais completa:

root@kitploit:~
panoptic --url "http://target/x.php?file=test.txt" --auto --all-versions

Comparação de Respostas

O Panoptic não classifica um caminho apenas pelo cabeçalho Content-Length controlado pelo alvo. Ele compara o corpo normalizado completo com a linha de base do caminho inválido. Um limite superior barato de similaridade evita a comparação completa apenas quando já consegue provar que os corpos diferem; respostas ambíguas usam a proporção exata para evitar falsos negativos por corpo reordenado.

Retomada / Checkpoints

--resume-file PATH registra os casos concluídos para que uma varredura interrompida possa continuar de onde parou:

root@kitploit:~
panoptic --url "http://target/x.php?file=test.txt" \
  --resume-file scan.checkpoint
# ... interrupt with Ctrl-C, then re-run the same command to resume

O checkpoint armazena apenas os IDs dos casos concluídos mais uma impressão digital SHA-256 da definição da varredura (URL, parâmetros de injeção, opções de detecção, cabeçalhos, cookie, User-Agent e o conjunto exato de casos). Ele nunca armazena credenciais, cabeçalhos ou URLs em texto puro.

Ao retomar, a impressão digital é recalculada e comparada. Se qualquer coisa que mudaria o significado da varredura diferir — um alvo, parâmetro, cabeçalho, cookie, conjunto de filtros ou alternância de --all-versions diferente — o checkpoint é rejeitado com um aviso e a varredura começa do zero, para que um checkpoint desatualizado nunca pule silenciosamente casos de uma varredura diferente. Checkpoints legados de lista simples são aceitos com um aviso e restritos aos IDs de casos presentes na varredura atual; como esse formato antigo não tem impressão digital, os usuários devem substituí-lo pelo formato recém-escrito. Requisições com falha (erro de rede) são deliberadamente não registradas em checkpoint para serem repetidas na retomada.

Versão e Atualização

root@kitploit:~
panoptic --version   # print the installed version and exit
panoptic --update    # fast-forward update from the official GitHub repo

--update só funciona a partir de um checkout git cujo remoto origin usa HTTPS ou SSH e corresponde ao upstream oficial (verificado antes do pull, para resistir a configuração remota insegura ou adulterada). Ele faz fast-forward do branch main verificado a partir da ref explícita main do upstream. Instalações fora de checkout podem ser atualizadas com segurança a partir do arquivo oficial do GitHub:

root@kitploit:~
python -m pip install --upgrade https://github.com/lightos/Panoptic/archive/refs/heads/main.zip

Quando executado a partir de um checkout, o banner também mostra a revisão curta atual do git.

Códigos de Saída

O Panoptic usa códigos de saída de processo convencionais para que possa ser usado em scripts:

  • 0 — Sucesso: a varredura (ou --list / --update) foi concluída. Requisições individuais que esgotam suas tentativas geram avisos e permanecem elegíveis para uma varredura retomada, mas não falham uma execução que, de outra forma, foi bem-sucedida.
  • 1 — Uso inválido: argumentos ausentes ou inválidos, ou nenhum parâmetro injetável encontrado.
  • 2 — Falha operacional: não foi possível conectar, nenhum caso de teste correspondente, todas as requisições enfileiradas falharam, ou um worker, checkpoint, gravação de saída ou configuração falhou.
  • 130 — Interrompido pelo usuário (Ctrl-C / SIGINT).

Contribuindo

Contribuições são bem-vindas! Abra issues ou pull requests no GitHub.

Ambiente de Testes

Para testes ponta a ponta seguros e reproduzíveis, consulte o Panoptic LFI Testbed. Ele fornece endpoints deliberadamente vulneráveis que cobrem os métodos de injeção suportados pelo Panoptic e as transformações de traversal.

Licença

Este projeto é licenciado sob a Licença MIT — consulte o arquivo LICENSE para obter detalhes.

Baixar ferramenta
  • Suporte a proxy HTTP/HTTPS e SOCKS5 com validação
  • Suporte a User-Agent, cookie e cabeçalho aleatórios ou personalizados
  • Mascaramento de credenciais no banner, no log e na saída legível por máquina (incluindo valores numéricos e booleanos no corpo JSON)
  • Artefatos confidenciais protegidos com permissões 0600 somente do proprietário no POSIX e proteção de symlink no componente final onde o SO suporta
  • Auto-atualização com verificação de URL remota (--update)
  • Corpo JSON--data '{"template":"FUZZ"}'
    Valor aninhado--header "Cookie: sid=abc; lang=FUZZ"