Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
OneForAll — Herramienta de enumeración de subdominios de múltiples fuentes con más de 50 módulos de recopilación, fuerza bruta DNS, análisis pasivo de DNS, transparencia de certificados, extracción de motores de búsqueda y detección de toma de control de subdominios para reconocimiento. | Kitploit
Herramientas/GitHubGitHub/shmilylty/oneforall
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoRecopilación de InformaciónPruebas de PenetraciónEnumeración de SubdominiosAnálisis de DNS
GitHubshmilylty/oneforall

OneForAll

Herramienta de enumeración de subdominios de múltiples fuentes con más de 50 módulos de recopilación, fuerza bruta DNS, análisis pasivo de DNS, transparencia de certificados, extracción de motores de búsqueda y detección de toma de control de subdominios para reconocimiento.

Ver Repositorio
10.0k1.4k53hace 4 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

OneForAll

Build Status codecov Maintainability License python python

👊OneForAll es una poderosa herramienta de recolección de subdominios 📝English Document

Example

🚀Guía de inicio rápido

📢 Por favor, tómate un tiempo para leer este documento, te ayudará a familiarizarte rápidamente con OneForAll!

🐍Requisitos de instalación

OneForAll está desarrollado y probado en Python 3.6.0. OneForAll requiere una versión superior a Python 3.6.0 para ejecutarse. Para instalar el entorno Python, consulta la Guía de instalación de Python 3. Ejecuta los siguientes comandos para verificar las versiones de Python y pip3:

root@kitploit:~
python -V
pip3 -V

Si ves una salida similar a la siguiente, el entorno Python está correcto:

root@kitploit:~
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
✔Pasos de instalación (versión git)
  1. Descarga

Debido a que este proyecto está en desarrollo, se actualizará y mejorará constantemente. Al descargar, usa git clone para clonar el último repositorio de código, lo que también facilita futuras actualizaciones. No se recomienda descargar desde Releases, ya que las versiones allí se actualizan lentamente y no es fácil actualizar. Este proyecto ya tiene un espejo en 码云 (Gitee) en China. Se recomienda usar Gitee para clonar más rápido:

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

或者:

root@kitploit:~
git clone https://github.com/shmilylty/OneForAll.git
  1. Instalación

Puedes instalar las dependencias de OneForAll mediante pip3. A continuación se muestra un ejemplo de instalación de dependencias con pip3 en sistema Windows: Nota: si tu Python3 está instalado en el directorio de Archivos de programa del sistema, por ejemplo C:\Program Files\Python36, ejecuta el símbolo del sistema como administrador para ejecutar los siguientes 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 otras plataformas, consulta Instalación de dependencias. Si encuentras problemas al compilar alguna biblioteca de dependencias durante la instalación, consulta las soluciones en el documento . Si aún no se puede resolver, no dudes en unirte al grupo para informar del problema.

✔Pasos de instalación (versión docker)

Primero descarga y edita el archivo de configuración, agrega tu propia api y configuraciones personalizadas, y mantén la estructura de archivos original

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

Extrae la imagen y ejecuta, donde ~/.config se reemplaza con la ruta de la carpeta donde se encuentra tu propio archivo de configuración

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

Los parámetros se añaden directamente al final del comando. Los resultados se generan en el directorio local ~/results. Si deseas guardarlos en otra ubicación, puedes modificarlo tú mismo.

✨Demostración de uso

Si instalaste las dependencias mediante pip3, usa los siguientes comandos para ejecutar el ejemplo:

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

Example

🧐Explicación de resultados

Tomando el comando python3 oneforall.py --target example.com run como ejemplo, OneForAll generará los resultados correspondientes en el directorio results después de ejecutarse correctamente con los parámetros predeterminados:

Result

example.com.csv es el resultado de la recolección de subdominios para cada dominio principal.

all_subdomain_result_1583034493.csv es el resumen de los resultados de todos los subdominios recolectados en cada ejecución de OneForAll, incluye example.com.csv, lo que facilita la obtención de todos los resultados en escenarios de recolección por lotes.

result.sqlite3 es la base de datos SQLite3 que almacena los resultados de los subdominios recolectados en cada ejecución de OneForAll. Su estructura de base de datos es la siguiente:

Database

La tabla similar a example_com_origin_result almacena los resultados iniciales de recolección de subdominios de cada módulo.

La tabla similar a example_com_resolve_result almacena los resultados después de la resolución de subdominios.

La tabla similar a almacena los resultados de la recolección anterior de subdominios (se genera después de al menos dos recolecciones).

🤔Ayuda de uso

Los parámetros de línea de comandos solo proporcionan algunos parámetros comunes. Para una configuración más detallada, consulta setting.py. Si crees que faltan algunos parámetros que se usan con frecuencia en la interfaz de comandos o tienes algún problema, no dudes en informar. Por razones obvias, si deseas utilizar algunas interfaces de recolección bloqueadas, primero configura el proxy en setting.py. Algunos módulos de recolección requieren proporcionar una API (la mayoría se pueden obtener gratuitamente registrando una cuenta). Si necesitas usarlos, configura la información de la API en api.py. Si no los usas, ignora los mensajes de error relacionados. (Para obtener detalles sobre los módulos, consulta Descripción de módulos de recolección)

La interfaz de línea de comandos de OneForAll se basa en Fire implementada. Para usos más avanzados de Fire, consulta Usando Fire CLI.

oneforall.py es la entrada principal del programa. oneforall.py puede llamar a módulos como brute.py, takerover.py y dbexport.py. Para facilitar la realización de fuerza bruta de subdominios, se separó brute.py; para facilitar la verificación de riesgos de takeover de subdominios, se separó takerover.py; para facilitar la exportación de la base de datos, se separó dbexport.py. Estos módulos se pueden ejecutar de forma independiente y aceptan parámetros más detallados. Si deseas usarlos por separado, consulta Ayuda de uso.

❗Nota: Cuando encuentres problemas o dudas durante el uso, primero busca respuestas en Issues usando la búsqueda, y también puedes consultar Preguntas frecuentes y respuestas.

🎉Introducción del proyecto

Dirección del proyecto: https://github.com/shmilylty/OneForAll

En las pruebas de penetración, la importancia de la recolección de información es evidente. La recolección de subdominios es una parte esencial y muy importante de la recolección de información. Actualmente, hay muchas herramientas de recolección de subdominios de código abierto en línea, pero siempre existen algunos de los siguientes problemas:

  • No lo suficientemente potentes, no tienen suficientes interfaces de recolección de subdominios, no pueden realizar la recolección automática de lotes de subdominios, no tienen resolución automática de subdominios, validación, FUZZ y funciones de expansión de información.
  • No lo suficientemente amigables, aunque el módulo de línea de comandos es conveniente, cuando hay muchos parámetros opcionales y la operación a realizar es compleja, el modo de línea de comandos no es muy amigable. Si hay un front-end interactivo y altamente operable, la experiencia de usuario sería mucho mejor.
  • Falta de mantenimiento, muchas herramientas no se han actualizado en años. ¿Issues y PR? No existen.
  • Problemas de eficiencia, no utilizan multiprocesamiento, multihilo ni tecnologías de corutinas asíncronas, por lo que son lentas.

Para resolver estos puntos débiles, nació este proyecto. Como su nombre indica, espero que OneForAll sea una herramienta definitiva y poderosa de recolección rápida de subdominios que integre las fortalezas de muchas herramientas🔨.

Actualmente OneForAll todavía está en desarrollo, seguramente tiene muchos problemas y áreas de mejora. Los expertos son bienvenidos a enviar Issues y PR. Si te resulta útil, dale una estrella✨. Actualmente hay un grupo de QQ dedicado a la comunicación y retroalimentación de OneForAll👨‍👨‍👦‍👦: 824414244 (Verificación para unirse al grupo: Recolección de información).

👍Características

  • Potente capacidad de recolección. Para detalles de los módulos, consulta Descripción de módulos de recolección.
    1. Recolección de subdominios mediante transparencia de certificados (actualmente 6 módulos: censys_api, certspotter, crtsh, entrust, google, spyse_api)
    2. Recolección mediante comprobaciones rutinarias (actualmente 4 módulos: explotación de transferencia de zona axfr, verificación de archivo de política de dominio cruzado cdx, verificación de certificado HTTPS cert, verificación de política de seguridad de contenido csp, verificación de archivo robots robots, verificación de archivo sitemap sitemap, enumeración de dominios DNS mediante registros NSEC . Se agregarán módulos como NSEC3 más adelante.)

Si tienes otras ideas geniales, ¡no dudes en decírmelas! 😎

🌲Estructura de directorios

Para más información, consulta Explicación de la estructura de directorios.

El directorio docs de este proyecto también proporciona algunas ayudas y explicaciones, como Explicación de fuentes de diccionarios de subdominios, Flujo de juicio de resolución comodín.

👏Frameworks utilizados

  • aiohttp - Marco de cliente/servidor http asíncrono
  • beautifulsoup4 - Biblioteca de Python que facilita la extracción de datos de archivos HTML o XML
  • fire - Python Fire es una biblioteca para generar automáticamente interfaces de línea de comandos (CLI) a partir de cualquier objeto de Python
  • loguru - Biblioteca de Python diseñada para proporcionar un registro agradable
  • massdns - Resolvedor DNS de alto rendimiento
  • records - Records es una biblioteca muy simple pero poderosa para realizar consultas SQL sin procesar a la mayoría de las bases de datos relacionales.
  • requests - Requests es la única biblioteca HTTP de Python no transgénica que los humanos pueden usar de forma segura.
  • tqdm - Biblioteca de barras de progreso rápida y extensible para Python y CLI

¡Gracias a estas excelentes bibliotecas de Python!

🔖Control de versiones

Este proyecto utiliza el formato de versiones semánticas SemVer para la gestión de versiones. Puedes consultar Notas de cambios para conocer el historial de cambios.

⌛Planes futuros

  • Optimización y mejora continua de cada módulo
  • Implementación de una interfaz frontal potente e interactiva y amigable

Para más información, consulta Plan de desarrollo futuro.

🙏Contribuciones

¡Damos una calurosa bienvenida a todos los expertos para que contribuyan a mejorar este proyecto!

👨‍💻Contribuidores

  • Jing Ling
    • Desarrollador principal

Puedes ver todos los contribuidores y sus contribuciones en el Documento de contribuidores. Gracias a ellos por hacer que OneForAll sea más potente y fácil de usar.

☕Donaciones

Si sientes que este proyecto te ha ayudado, puedes invitarme a un café como estímulo :)

📄Licencia

Este proyecto está bajo la licencia GPL-3.0. Para más detalles, consulta LICENSE.

😘Agradecimientos

¡Gracias a todos los proyectos de código abierto de recolección de subdominios en línea!

¡Gracias a los miembros de A-Team por sus entusiastas y desinteresadas respuestas a preguntas!

📜Descargo de responsabilidad

Esta herramienta solo puede utilizarse en la construcción de seguridad empresarial con la autorización legal suficiente. Durante el uso de esta herramienta, debe asegurarse de que todas sus acciones cumplan con las leyes y regulaciones locales. Si realiza alguna acción ilegal mientras utiliza esta herramienta, asumirá todas las consecuencias. Todos los desarrolladores y contribuidores de esta herramienta no asumen ninguna responsabilidad legal o solidaria. A menos que haya leído, comprendido completamente y aceptado todos los términos de este acuerdo, no instale ni utilice esta herramienta. Su uso o cualquier otra forma expresa o implícita de aceptación de este acuerdo se considerará como que ha leído y acepta las condiciones de este acuerdo.

💖Tendencia de estrellas

Stargazers over time

Descargar herramienta
Preguntas frecuentes y respuestas
  1. Actualización

Ejecuta los siguientes comandos para actualizar el proyecto (puede guardar las modificaciones a /config/setting.py y /config/api.py):

root@kitploit:~
git stash        # Guarda temporalmente los cambios locales
git fetch --all  # Obtiene las actualizaciones del proyecto
git pull         # Descarga y sobrescribe
git stash pop    # Restaura los cambios locales
example_com_last_result

La tabla similar a example_com_now_result almacena los resultados actuales de recolección de subdominios. En general, basta con prestar atención a esta tabla.

Para más información, consulta Explicación de campos.

Ayuda de oneforall.py

La siguiente información de ayuda puede no ser la más reciente. Puedes usar python oneforall.py --help para obtener la información de ayuda más actualizada.

root@kitploit:~
python oneforall.py --help
root@kitploit:~
NAME
    oneforall.py - OneForAll帮助信息

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

DESCRIPTION
    OneForAll是一款功能强大的子域收集工具

    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:
        参数alive可选值True,False分别表示导出存活,全部子域结果
        参数port可选值有'default', 'small', 'large', 详见config.py配置
        参数fmt可选格式有 'csv','json'
        参数path默认None使用OneForAll结果目录生成路径

ARGUMENTS
    TARGET
        单个域名(二选一必需参数)
    TARGETS
        每行一个域名的文件路径(二选一必需参数)

FLAGS
    --brute=BRUTE
        s
    --dns=DNS
        DNS解析子域(默认True)
    --req=REQ
        HTTP请求子域(默认True)
    --port=PORT
        请求验证子域的端口范围(默认只探测80端口)
    --valid=VALID
        只导出存活的子域结果(默认False)
    --fmt=FMT
        结果保存格式(默认csv)
    --path=PATH
        结果保存路径(默认None)
    --takeover=TAKEOVER
        检查子域接管(默认False)
dnssec
  • Recolección mediante archivos de rastreo web (actualmente 2 módulos: archivecrawl, commoncrawl. Este módulo aún está en depuración, y necesita ser ampliado y mejorado.)
  • Recolección mediante conjuntos de datos DNS (actualmente 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)
  • Recolección mediante consultas DNS (actualmente 5 módulos: enumeración de registros SRV comunes srv, y consulta de registros MX, NS, SOA, TXT de DNS para recolectar subdominios)
  • Recolección mediante datos de plataformas de inteligencia de amenazas (actualmente 6 módulos: alienvault, riskiq_api, threatbook_api, threatminer, virustotal, virustotal_api. Este módulo aún necesita ser ampliado y mejorado.)
  • Recolección mediante motores de búsqueda (actualmente 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). En los módulos de búsqueda, excepto los motores de búsqueda especiales, los motores de búsqueda generales admiten la exclusión automática, la búsqueda completa y la búsqueda recursiva.
  • Soporte para fuerza bruta de subdominios. Este módulo tiene un diccionario convencional de fuerza bruta, así como un modo fuzz personalizado. Admite fuerza bruta por lotes y recursiva, y detecta y maneja automáticamente la resolución comodín.
  • Soporte para validación de subdominios. La validación de subdominios está habilitada por defecto. Resuelve automáticamente los DNS de los subdominios, solicita automáticamente los subdominios para obtener el título y el banner, y determina de manera integral la vivacidad de los subdominios.
  • Soporte para rastreo de subdominios. Basándose en los subdominios existentes, solicita el cuerpo de respuesta y el JS dentro de la respuesta de los subdominios, para descubrir nuevos subdominios nuevamente.
  • Soporte para permutación de subdominios. Basándose en los subdominios existentes, utiliza técnicas de reemplazo de subdominios para descubrir nuevos subdominios.
  • Soporte para takeover de subdominios. La verificación de riesgos de takeover de subdominios está habilitada por defecto. Admite el takeover automático de subdominios (actualmente solo Github, aún por mejorar). Admite verificación por lotes.
  • Potente capacidad de procesamiento. Los resultados de subdominios descubiertos admiten deduplicación automática, resolución DNS automática, sondeo de solicitudes HTTP, filtrado automático de subdominios válidos, expansión de información de banner de subdominios. Los formatos de exportación final admitidos son txt, csv, json.
  • Alta velocidad. El módulo de recolección utiliza llamadas de múltiples hilos. El módulo de fuerza bruta utiliza massdns, capaz de resolver más de 350,000 dominios por segundo. La resolución DNS y las solicitudes HTTP en la validación de subdominios utilizan múltiples corutinas asíncronas. La verificación de riesgos de takeover de subdominios utiliza múltiples hilos.
  • Buena experiencia de usuario. Cada módulo tiene una barra de progreso y guarda los resultados de forma asíncrona.