
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.
👊OneForAll es una poderosa herramienta de recolección de subdominios 📝English Document
📢 Por favor, tómate un tiempo para leer este documento, te ayudará a familiarizarte rápidamente con OneForAll!
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:
python -V
pip3 -V
Si ves una salida similar a la siguiente, el entorno Python está correcto:
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
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:
git clone https://gitee.com/shmilylty/OneForAll.git
或者:
git clone https://github.com/shmilylty/OneForAll.git
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!
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 Preguntas frecuentes y respuestas. Si aún no se puede resolver, no dudes en unirte al grupo para informar del problema.
Ejecuta los siguientes comandos para actualizar el proyecto (puede guardar las modificaciones a /config/setting.py y /config/api.py):
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
Primero descarga y edita el archivo de configuración, agrega tu propia api y configuraciones personalizadas, y mantén la estructura de archivos original
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
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.
Si instalaste las dependencias mediante pip3, usa los siguientes comandos para ejecutar el ejemplo:
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
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:

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:

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 example_com_last_result almacena los resultados de la recolección anterior de subdominios (se genera después de al menos dos recolecciones).
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.