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
OneForAll — Ferramenta de enumeração de subdomínios de múltiplas fontes com mais de 50 módulos de coleta, força bruta de DNS, análise passiva de DNS, transparência de certificados, raspagem de mecanismos de busca e detecção de tomada de subdomínio para reconhecimento. | Kitploit
Ferramentas/GitHubGitHub/shmilylty/oneforall
OSINT (Inteligência de Fontes Abertas)ReconhecimentoColeta de InformaçõesTestes de PenetraçãoEnumeração de SubdomíniosAnálise de DNS
GitHubshmilylty/oneforall

OneForAll

Ferramenta de enumeração de subdomínios de múltiplas fontes com mais de 50 módulos de coleta, força bruta de DNS, análise passiva de DNS, transparência de certificados, raspagem de mecanismos de busca e detecção de tomada de subdomínio para reconhecimento.

Ver Repositório
10.0k1.4khá 3 mesesRevisado 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

OneForAll

Build Status codecov Maintainability License python python

👊OneForAll é uma ferramenta poderosa de coleta de subdomínios 📝Documento em Inglês

Example

🚀Guia de Início Rápido

📢 Por favor, reserve um tempo para ler este documento, isso ajudará você a se familiarizar rapidamente com o OneForAll!

🐍Requisitos de Instalação

OneForAll é desenvolvido e testado com base no Python 3.6.0. OneForAll requer uma versão superior ao Python 3.6.0 para funcionar. Para instalar o ambiente Python, consulte o Guia de Instalação do Python 3. Execute os seguintes comandos para verificar as versões do Python e pip3:

root@kitploit:~
python -V
pip3 -V

Se você vir uma saída semelhante à abaixo, significa que o ambiente Python está correto:

root@kitploit:~
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
✔Passos de Instalação (versão git)
  1. Download

Como este projeto está em desenvolvimento, haverá atualizações e iterações contínuas. Ao baixar, use git clone para clonar o repositório de código mais recente, o que também facilita atualizações futuras. Não é recomendado baixar dos Releases, pois as versões nos Releases são atualizadas lentamente e não são convenientes para atualização. Este projeto já foi espelhado no Gitee (Gitee). Para usuários na China, recomenda-se clonar do Gitee, que é mais rápido:

root@kitploit:~
git clone https://gitee.com/shmilylty/OneForAll.git

Ou:

root@kitploit:~
git clone https://github.com/shmilylty/OneForAll.git
  1. Instalação

Você pode instalar as dependências do OneForAll via pip3. Abaixo está um exemplo de instalação de dependências usando pip3 no sistema Windows: Nota: Se o seu Python3 estiver instalado no diretório Program Files do sistema, como C:\Program Files\Python36, execute o prompt de comando cmd como administrador e execute os seguintes comandos!

root@kitploit:~
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python3 oneforall.py --help

Para outras plataformas, consulte Instalação de Dependências. Se você encontrar problemas ao compilar alguma biblioteca de dependência durante a instalação, consulte as soluções no documento . Se o problema persistir, sinta-se à vontade para entrar no grupo e relatar o problema.

✔Passos de Instalação (versão docker)

Primeiro, baixe e edite o arquivo de configuração, adicione suas próprias api e configurações personalizadas, e mantenha a estrutura de arquivos original

root@kitploit:~
config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py

Puxe a imagem e execute, substituindo ~/.config pelo caminho da pasta onde estão seus arquivos de configuração

root@kitploit:~
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run

Os parâmetros são adicionados diretamente no final do comando. Os resultados serão gerados no diretório local ~/results. Se desejar salvar em outro local, você pode modificar conforme necessário.

✨Demonstração de Uso

Se você instalou as dependências via pip3, use os seguintes comandos para executar o exemplo:

root@kitploit:~
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run

Example

🧐Explicação dos Resultados

Tomando o comando python3 oneforall.py --target example.com run como exemplo, quando o OneForAll é executado normalmente com parâmetros padrão, ele gera os resultados correspondentes no diretório results:

Result

example.com.csv é o resultado da coleta de subdomínios para cada domínio principal.

all_subdomain_result_1583034493.csv é o resumo dos subdomínios coletados em cada execução do OneForAll, incluindo example.com.csv, facilitando a obtenção de todos os resultados em cenários de coleta em lote.

result.sqlite3 é o banco de dados SQLite3 que armazena os subdomínios coletados em cada execução do OneForAll. Sua estrutura de banco de dados é mostrada na figura abaixo:

Database

A tabela com nome como example_com_origin_result armazena os resultados iniciais da coleta de subdomínios de cada módulo.

A tabela com nome como example_com_resolve_result armazena os resultados após a resolução dos subdomínios.

A tabela com nome como example_com_last_result armazena os resultados da última coleta de subdomínios (gerada somente após duas ou mais coletas).

🤔Ajuda de Uso

Os parâmetros de linha de comando fornecem apenas alguns parâmetros comuns. Para configurações de parâmetros mais detalhadas, consulte setting.py. Se você achar que alguns parâmetros são usados com frequência na interface de linha de comando ou se faltam alguns parâmetros, etc., sinta-se à vontade para fornecer feedback. Por razões conhecidas, se você precisar usar algumas interfaces de coleta bloqueadas, configure o proxy primeiro em setting.py. Alguns módulos de coleta exigem o fornecimento de API (a maioria pode ser obtida gratuitamente registrando-se em uma conta). Se precisar usá-los, configure as informações da API em api.py. Se não for usar, ignore os avisos de erro relacionados. (Para detalhes dos módulos, leia Explicação dos Módulos de Coleta)

A interface de linha de comando do OneForAll é baseada em Fire. Para usos mais avançados do Fire, consulte Usando a CLI do Fire.

oneforall.py é o ponto de entrada principal. O oneforall.py pode chamar módulos como brute.py, takerover.py e dbexport.py. Para facilitar a realização de força bruta de subdomínios, o brute.py foi separado; para facilitar a verificação de riscos de takeover de subdomínios, o takerover.py foi separado; para facilitar a exportação do banco de dados, o dbexport.py foi separado. Esses módulos podem ser executados de forma independente e aceitam parâmetros um pouco mais ricos. Se você quiser usá-los separadamente, consulte Ajuda de Uso

❗Nota: Quando você encontrar algum problema ou dúvida durante o uso, primeiro use a função de pesquisa em Issues para encontrar respostas. Você também pode consultar Perguntas Frequentes e Respostas.

🎉Introdução ao Projeto

Endereço do projeto: https://github.com/shmilylty/OneForAll

A importância da coleta de informações em testes de penetração é evidente. A coleta de subdomínios é uma parte indispensável e muito importante da coleta de informações. Atualmente, muitas ferramentas de coleta de subdomínios foram disponibilizadas como código aberto na internet, mas sempre existem alguns dos seguintes problemas:

  • Não é poderosa o suficiente: as interfaces de coleta de subdomínios não são suficientes, não é possível realizar a coleta automática em lote de subdomínios, faltam funções como resolução automática, verificação, FUZZ e extensão de informações.
  • Não é amigável o suficiente: embora os módulos de linha de comando sejam convenientes, quando há muitos parâmetros opcionais e operações complexas a serem realizadas, o modo de linha de comando se torna um pouco menos amigável. Se houver uma interface front-end interativa e de alta operabilidade, a experiência de uso será muito melhor.
  • Falta de manutenção: muitas ferramentas não são atualizadas há anos. Issues e PRs? Não existem.
  • Problemas de eficiência: não utilizam técnicas de multiprocessamento, multithreading ou corrotinas assíncronas, resultando em baixa velocidade.

Para resolver esses problemas, este projeto nasceu. Como o nome sugere, espero que o OneForAll seja uma ferramenta definitiva para coleta rápida e abrangente de subdomínios, combinando as vantagens de várias ferramentas🔨.

Atualmente, o OneForAll ainda está em desenvolvimento, certamente há muitos problemas e áreas que precisam ser melhoradas. Sinta-se à vontade para enviar Issues e PRs. Se você achar útil, dê uma estrela✨. Atualmente, existe um grupo QQ dedicado para comunicação e feedback sobre o OneForAll👨‍👨‍👦‍👦: 824414244 (Verificação do grupo: coleta de informações).

👍Funcionalidades e Características

  • Poderosa capacidade de coleta – Para detalhes dos módulos, leia Explicação dos Módulos de Coleta.
    1. Coleta de subdomínios usando transparência de certificados (atualmente 6 módulos: censys_api, certspotter, crtsh, entrust, google, spyse_api)
    2. Coleta de subdomínios por verificação padrão (atualmente 4 módulos: exploração de transferência de zona axfr, verificação de arquivo de política entre origens cdx, verificação de certificado HTTPS cert, verificação de política de segurança de conteúdo csp, verificação de arquivo robots robots, verificação de arquivo sitemap sitemap, enumeração de domínios DNS via registro NSEC ; módulos adicionais como NSEC3 serão adicionados posteriormente)

Se você tiver outras ideias interessantes, não hesite em me contar!😎

🌲Estrutura de Diretórios

Para mais informações, consulte Explicação da Estrutura de Diretórios.

O diretório docs deste projeto também fornece algumas ajudas e explicações, como Fonte dos Dicionários de Subdomínios, Processo de Identificação de Resolução Curinga.

👏Frameworks Utilizados

  • aiohttp - Framework assíncrono de cliente/servidor HTTP
  • beautifulsoup4 - Biblioteca Python para extrair dados de arquivos HTML ou XML
  • fire - Biblioteca Python que gera automaticamente uma interface de linha de comando (CLI) a partir de qualquer objeto Python
  • loguru - Biblioteca Python para logging agradável
  • massdns - Resolvedor DNS de alto desempenho
  • records - Biblioteca simples e poderosa para consultas SQL brutas na maioria dos bancos de dados relacionais
  • requests - A única biblioteca Python HTTP não transgênica, segura para humanos
  • tqdm - Barra de progresso rápida e extensível para Python e CLI

Agradecimentos a essas excelentes bibliotecas Python!

🔖Controle de Versão

Este projeto usa o formato de versionamento semântico SemVer. Consulte o Registro de Alterações para histórico de alterações.

⌛Planos Futuros

  • Otimização e aprimoramento contínuos de cada módulo
  • Implementação de uma interface front-end poderosa e interativa com boa experiência do usuário

Para mais informações, consulte Planos de Desenvolvimento Futuro.

🙏Contribuição

Todos os contribuidores são muito bem-vindos para ajudar a melhorar este projeto!

👨‍💻Contribuidores

  • Jing Ling
    • Desenvolvimento principal

Você pode ver todos os contribuidores e suas contribuições no Documento de Contribuidores. Agradecemos a eles por tornar o OneForAll mais poderoso e fácil de usar.

☕Doação

Se você acha que este projeto o ajudou, pode nos pagar um café como incentivo:)

📄Licença

Este projeto está licenciado sob a licença GPL-3.0. Para mais detalhes, consulte LICENSE.

😘Agradecimentos

Agradecimentos a todos os projetos de coleta de subdomínios de código aberto na internet!

Agradecimentos aos colegas da A-Team pelo apoio entusiástico e esclarecimento de dúvidas!

📜Isenção de Responsabilidade

Esta ferramenta deve ser usada apenas na construção de segurança empresarial com autorização legal suficiente. Ao usar esta ferramenta, você deve garantir que todas as suas ações estejam em conformidade com as leis e regulamentos locais. Caso você realize qualquer ação ilegal ao usar esta ferramenta, você assumirá todas as consequências. Todos os desenvolvedores e contribuidores desta ferramenta não assumem qualquer responsabilidade legal ou solidária. A menos que você tenha lido completamente, entendido plenamente e aceitado todos os termos deste acordo, por favor, não instale nem use esta ferramenta. Seu uso ou qualquer outra forma explícita ou implícita de aceitação deste acordo será considerado como sua leitura e concordância com os termos deste acordo.

💖Tendência de Estrelas

Stargazers over time

Baixar ferramenta
Perguntas Frequentes e Respostas.md
  1. Atualização

Execute os seguintes comandos para atualizar o projeto (as modificações em /config/setting.py e /config/api.py podem ser preservadas):

root@kitploit:~
git stash        # Armazena temporariamente as modificações locais
git fetch --all  # Obtém as atualizações do projeto
git pull         # Baixa e mescla
git stash pop    # Libera as modificações locais

A tabela com nome como example_com_now_result armazena os resultados atuais da coleta de subdomínios. Em geral, basta focar nesta tabela.

Para mais informações, consulte Explicação dos Campos.

Ajuda de uso do oneforall.py

As informações de ajuda abaixo podem não ser as mais recentes. Use python oneforall.py --help para obter a ajuda mais atualizada.

root@kitploit:~
python oneforall.py --help
root@kitploit:~
NAME
    oneforall.py - Informações de ajuda do OneForAll

SYNOPSIS
    oneforall.py COMMAND | --target=TARGET <flags>

DESCRIPTION
    OneForAll é uma ferramenta poderosa de coleta de subdomínios

    Example:
        python3 oneforall.py version
        python3 oneforall.py --target example.com run
        python3 oneforall.py --targets ./domains.txt run
        python3 oneforall.py --target example.com --valid None run
        python3 oneforall.py --target example.com --brute True run
        python3 oneforall.py --target example.com --port small run
        python3 oneforall.py --target example.com --fmt csv run
        python3 oneforall.py --target example.com --dns False run
        python3 oneforall.py --target example.com --req False run
        python3 oneforall.py --target example.com --takeover False run
        python3 oneforall.py --target example.com --show True run

    Note:
        O parâmetro alive pode ser True ou False, indicando exportar apenas subdomínios ativos ou todos os resultados
        O parâmetro port pode ser 'default', 'small', 'large', consulte config.py para detalhes
        O parâmetro fmt pode ser 'csv', 'json'
        O parâmetro path, se None, usa o diretório de resultados padrão do OneForAll

ARGUMENTS
    TARGET
        Um único domínio (parâmetro obrigatório, escolha um dos dois)
    TARGETS
        Caminho do arquivo com um domínio por linha (parâmetro obrigatório, escolha um dos dois)

FLAGS
    --brute=BRUTE
        Força bruta de subdomínios (padrão True)
    --dns=DNS
        Resolução DNS de subdomínios (padrão True)
    --req=REQ
        Requisições HTTP a subdomínios (padrão True)
    --port=PORT
        Faixa de portas para verificar subdomínios (padrão apenas porta 80)
    --valid=VALID
        Exportar apenas resultados de subdomínios ativos (padrão False)
    --fmt=FMT
        Formato de salvamento dos resultados (padrão csv)
    --path=PATH
        Caminho para salvar os resultados (padrão None)
    --takeover=TAKEOVER
        Verificar takeover de subdomínios (padrão False)
dnssec
  • Coleta de subdomínios usando arquivos de rastreadores web (atualmente 2 módulos: archivecrawl, commoncrawl; este módulo ainda está em调试, e novos módulos serão adicionados e aprimorados)
  • Coleta de subdomínios usando conjuntos de dados DNS (atualmente 24 módulos: bevigil_api, binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, cloudflare, dnsdb_api, dnsdumpster, hackertarget, ip138, ipv4info_api, netcraft, passivedns_api, ptrarchive, qianxun, rapiddns, riddler, robtex, securitytrails_api, sitedossier, threatcrowd, wzpc, ximcx))
  • Coleta de subdomínios por consulta DNS (atualmente 5 módulos: enumeração de registros SRV comuns e consulta para coleta de subdomínios srv, e consulta de registros MX, NS, SOA, TXT do DNS do domínio para coleta de subdomínios)
  • Coleta de subdomínios usando dados de plataformas de inteligência de ameaças (atualmente 6 módulos: alienvault, riskiq_api, threatbook_api, threatminer, virustotal, virustotal_api; este módulo ainda está para ser adicionado e aprimorado)
  • Descoberta de subdomínios via mecanismos de busca (atualmente 18 módulos: ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github, github_api, google, google_api, shodan_api, so, sogou, yahoo, yandex, zoomeye_api). Nos módulos de busca, com exceção de mecanismos de busca especiais, os mecanismos de busca gerais suportam exclusão automática, busca completa e busca recursiva.
  • Suporte a força bruta de subdomínios – O módulo possui dicionário de força bruta convencional e também um modo de fuzz personalizado, suporta força bruta em lote e recursiva, identifica e lida automaticamente com resolução curinga.
  • Suporte a verificação de subdomínios – A verificação de subdomínios é ativada por padrão, com resolução automática de DNS dos subdomínios, solicitação automática para obter título e banner, e determinação abrangente da atividade dos subdomínios.
  • Suporte a rastreamento de subdomínios – Com base nos subdomínios existentes, solicita o corpo de resposta dos subdomínios e o JavaScript no corpo para descobrir novos subdomínios.
  • Suporte a permutação de subdomínios – Com base nos subdomínios existentes, usa técnicas de substituição de subdomínios para descobrir novos subdomínios.
  • Suporte a verificação de takeover de subdomínios – Ativado por padrão, suporta verificação automática de riscos de takeover (atualmente apenas Github, a ser aprimorado) e verificação em lote.
  • Poderosa capacidade de processamento – Os resultados dos subdomínios descobertos suportam remoção automática de duplicatas, resolução DNS automática, detecção por requisição HTTP, filtragem automática de subdomínios válidos, extensão das informações de banner e exportação nos formatos txt, csv, json.
  • Alta velocidade – O módulo de coleta usa multithreading, o módulo de força bruta usa massdns, capaz de resolver mais de 350.000 domínios por segundo. Na verificação de subdomínios, a resolução DNS e as requisições HTTP usam corrotinas assíncronas, e a verificação de risco de takeover é feita com multithreading.
  • Boa experiência – Todos os módulos possuem barras de progresso, e os resultados de cada módulo são salvos de forma assíncrona.