OmniScan Scanner de Vulnerabilidades Abrangente
OmniScan é um scanner de vulnerabilidades leve e multi-motor baseado em Python, projetado para operações de Red Team e pesquisa de segurança. Ele não apenas integra o motor leve Nuclei Lite e o motor Afrog, mas também fornece recursos poderosos de coleta de ativos e gerenciamento de resultados.
Características Principais
1. Suporte a Múltiplos Motores
- Motor Nuclei Lite (Integrado):
- Lógica central do Nuclei implementada nativamente em Python, sem dependência do ambiente Go.
- Segurança Aprimorada: Usa
simpleeval em vez de eval e executa expressões DSL em um ambiente sandbox para evitar execução de código por modelos maliciosos.
- Geração Inteligente de Variáveis: Identifica e preenche automaticamente variáveis de modelo não definidas (ex:
{{lang-file}} -> etc/passwd), suportando Fuzzing inteligente.
- Compatibilidade Avançada:
- Suporta a maioria das funções auxiliares do Nuclei (incluindo
hmac, gzip, reverse, rand_base, etc.).
- Suporta controle de lógica
flow e req-condition.
- Suporta manutenção de sessão
cookie-reuse e controle de redirecionamento redirects.
- Filtragem Inteligente de Falsos Positivos:
- Smart FP Reduction: Para páginas 200 OK, identifica e filtra inteligentemente falsos positivos que correspondem apenas ao código de status, mas não a palavras-chave (Heurística de Modo Estrito).
- Identificação de WAF: Reconhece automaticamente páginas de bloqueio de WAF (403/429) para evitar falsos positivos.
- Detecção de Interação OOB (Aprimorada):
- Cliente
Interactsh integrado, lida automaticamente com vulnerabilidades sem retorno (ex: Blind RCE, SSRF).
- Correlation ID: Gera um ID de correlação único para cada requisição, combinando precisamente interações OOB, eliminando completamente falsos positivos.
- Espera Adaptativa: Ajusta inteligentemente o tempo de espera da detecção OOB, equilibrando velocidade e precisão.
- Motor Afrog: Integra o scanner Afrog fornecendo capacidade adicional de detecção de vulnerabilidades.
- Motor Oficial Nuclei: Suporta chamar binários Nuclei instalados no sistema para varredura.
- Motor XRay: Suporta chamar o XRay para varredura Web.
2. Sistema de Plugins (Novo)
- Extensão de Plugin Python: Permite que usuários escrevam scripts Python como plugins de varredura, lidando com lógica complexa.
- Progresso Visual: Barra de progresso
tqdm integrada, exibindo em tempo real o progresso da varredura de cada plugin em cada alvo.
- Simples de Usar: Basta herdar a classe
BasePlugin e implementar o método check(url).
- Integração Perfeita: Resultados de varredura de plugins são automaticamente incorporados ao relatório geral, gerenciados uniformemente com os resultados do Nuclei.
- Varredura Direcionada: Suporta especificar um ou vários arquivos de plugin para inspeção especializada.
- Plugins de Exemplo:
git_config.py: Detecta vazamento de .git/config
spring_boot.py: Detecta Spring Boot Actuator
ds_store.py: Detecta vazamento de .DS_Store
phpinfo.py: Detecta página phpinfo()
backup_files.py: Detecta arquivos de backup comuns (.bak, .zip, etc.)
swagger_ui.py: Detecta documentação Swagger UI
3. Coleta de Ativos
- Pesquisa FOFA: Integra API FOFA, suporta pesquisa em lote de ativos por sintaxe (ex:
country="CN").
- Pesquisa Shodan: Integra API Shodan, suporta pesquisa de ativos por palavra-chave.
- Alvo Único: Suporta a especificação direta de uma única URL para varredura rápida.
- Carregamento de Alvos Local: Suporta carregar uma lista de URLs em lote a partir de um arquivo de texto.
- Detecção Inteligente de Atividade: Realiza automaticamente detecção de atividade HTTP antes da varredura, filtrando alvos inválidos.
- Padronização de URL: Completa automaticamente o protocolo da URL (http/https) e remove duplicatas.
4. Arquitetura Assíncrona de Alto Desempenho e Suporte a Modelos em Massa
- Utiliza estruturas Python
asyncio e aiohttp.
- Otimização de Memória (NOVO):
- Lazy Loading: Arquivos de modelo são carregados sob demanda, sem necessidade de carregar todos de uma vez.
- Processamento em Lotes: Suporta varredura em lote de dezenas de milhões de modelos POC (padrão: 5000 por lote), resolvendo completamente problemas de estouro de memória (OOM) em varreduras em larga escala.
- Coleta Automática de Memória: Libera memória automaticamente após a conclusão de cada lote.
- Monitoramento de Progresso em Tempo Real: Exibe progresso detalhado do lote e porcentagem.
- Sistema LogFilter: Oculta automaticamente erros não críticos como "Illegal cookie name", mantendo a saída limpa.
5. Gerenciamento de Resultados
- Salvamento de Resultados em Tempo Real:
- Cada vulnerabilidade encontrada é imediatamente gravada no banco de dados SQLite e arquivo CSV, evitando perda de dados devido a interrupção do programa.
- Após a conclusão da varredura de cada alvo, o resumo estatístico é atualizado automaticamente.
- Relatórios em Múltiplos Formatos: Gera relatórios de varredura em formato JSON, CSV e HTML em tempo real.
- Banco de Dados SQLite: Banco de dados SQLite integrado, com deduplicação automática dos resultados da varredura (baseada em ID do modelo + alvo + URL).
- Resumo Detalhado:
- Durante a varredura, exibe em tempo real um resumo de vulnerabilidades para cada alvo (incluindo descobertas do lote atual e total acumulado).
- A barra de progresso exibe em tempo real o número total acumulado de vulnerabilidades encontradas globalmente.
- Após a conclusão da varredura, fornece estatísticas globais de vulnerabilidades.
6. Detecção de Interação OOB (Fora da Banda)
- Detecção de Loop Fechado Totalmente Automática: Lida automaticamente com vulnerabilidades sem retorno como Blind RCE, SSRF, Blind SQLi.
- Cliente Interactsh Integrado:
- Baixa e gerencia automaticamente o binário
interactsh-client. (Já enviei o interactsh-client.zip, você pode descompactá-lo diretamente neste diretório)
- Obtém automaticamente a URL do Payload OOB (ex:
xxx.oast.pro).
- Monitora logs de interação DNS/HTTP/SMTP em tempo real.
- Configuração Zero: O scanner substitui automaticamente
{{interactsh-url}} no modelo pelo Payload obtido em tempo real.
Início Rápido
Requisitos de Ambiente
- Python 3.8+
- Linux / macOS / Windows
Instalação
-
Clonar o Repositório:
git clone https://github.com/d3ckx1/OmniScan.git
cd omniscan
-
Instalar Dependências:
pip3 install -r requirements.txt
-
Configurar Ferramentas (Opcional):
- Se usar
Afrog ou XRay, certifique-se de que os respectivos executáveis estão no diretório raiz do projeto ou no PATH do sistema.
- Configure
config.yml (opcional) para definir chaves de API e parâmetros de varredura.
Exemplos de Uso
1. Varredura de Alvo Único
Varrer uma única URL:
python3 omniscan.py -u http://example.com --tool lite -T ./templates/cve/
2. Coleta e Varredura de Ativos (FOFA)
Pesquisar ativos no FOFA e varrer com o motor Nuclei Lite:
python3 omniscan.py -f 'app="SpringBoot"' --tool lite -T ./templates/spring-boot/
3. Varredura em Lote Local
Ler alvos de urls.txt e varrer:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/cve/
4. Especificar Ferramenta de Varredura
- Nuclei Lite:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/
- Afrog:
python3 omniscan.py -l urls.txt --tool afrog
- XRay:
python3 omniscan.py -l urls.txt --tool xray