
Framework simples de varredura de vulnerabilidades
Esta ferramenta tem como objetivo examinar arquivos em um diretório fornecido para detectar quaisquer chamadas de função inseguras, vulneráveis ou perigosas. Ela é projetada para ser extensível e fácil de entender; você pode "ligar e usar" módulos que especificam critérios sobre quais tipos de arquivos acionarão quais 'varreduras', nas quais você determina qual ação deve ser tomada para encontrar e relatar conteúdo perigoso dentro de cada arquivo.
Além disso, pode ser executada como uma ferramenta experimental de fuzzing automatizado. Com módulos eficazes, o framework pode ser adaptado para fazer fuzzing automaticamente em executáveis. Você pode implementar fuzzers usando a classe genérica fuzz.fuzzer.Fuzzer. AVISO: esta é uma subclasse de scan.scanner.Scanner, mas irá EXECUTAR todos os arquivos com permissão de execução! Tenha cuidado!
$ ./peach.py -h
usage: peach.py [-h] [-s] [-f] [--follow] [-c CONFIG] [-o OUTPUT] [-sh] [-nh]
paths [paths ...]
positional arguments:
paths arquivos e diretórios para escanear
optional arguments:
-h, --help mostra esta mensagem de ajuda e sai
-s, --scan usa arquivo de configuração para varredura de
vulnerabilidades (vulnscan.json).
-f, --fuzz usa arquivo de configuração para fuzzing automatizado
(fuzzing.json).
--follow segue links simbólicos ao escanear diretórios
-c CONFIG, --config CONFIG
especifica um arquivo de configuração personalizado
(padrão: vulnscan.json)
-o OUTPUT, --output OUTPUT
envia os resultados para o arquivo JSON especificado
-sh, --scan-hidden Escaneia arquivos e diretórios ocultos (padrão)
-nh, --no-hidden Não escaneia arquivos e diretórios ocultos
Este é o núcleo da utilidade; o script Python que inicia todas as threads e varreduras a partir dos [argumentos de linha de comando] fornecidos.
Este diretório hospeda todas as classes que podem ser duplicadas e estendidas para "varreduras" específicas de arquivos, nas quais você pode fazer praticamente qualquer coisa. Elas estão apenas alojadas nesta pasta para manter a organização.
Isto atua como a configuração global; neste arquivo JSON você especifica quais varreduras deseja executar para todos os arquivos processados e determina quaisquer critérios que deseja usar para identificar esses arquivos (extensão de arquivo, [tipo MIME] ou executável). Todos os scanners listados nesta configuração devem ser apenas scanners. Nenhum fuzzer deve ser listado aqui!
Este arquivo é semelhante ao vulnscan.json, exceto que contém referências a fuzzers e pode ser usado para iniciar o fuzzing automático de um diretório ou arquivo. AVISO: usar esta configuração irá EXECUTAR todos os arquivos com permissões de execução! Tenha cuidado ao usá-lo!
É isso! A ideia por trás da ferramenta é simples; o verdadeiro poder vem da construção de scanners para detectar e relatar qualquer conteúdo ou código malicioso em grandes quantidades de dados desconhecidos. Então adicione seu próprio scanner!
Você pode precisar aumentar o número máximo de arquivos abertos em seu sistema para usar todos os fuzzers fornecidos com esta ferramenta. Devido aos fuzzers serem executados simultaneamente, um grande número de arquivos abertos se acumula rapidamente. Na maioria dos sistemas modernos, o limite é de 1024, o que causará um erro "Out of files" (EMFILE). Aumentar o número máximo de arquivos abertos para o seu sistema deve resolver o problema.
Este diretório contém qualquer coisa que tenha sido frequentemente usada para testar alguns dos scanners. Você pode adicionar a ele como desejar.