
Escáner de vulnerabilidades de sombrero blanco automatizado que monitoriza activos de HackerOne y Bugcrowd, realiza enumeración de subdominios, rastreo, fingerprinting y escaneo con Nuclei/Xray, luego genera informes y envía notificaciones.
Inglés | 中文
DarkAngel es un escáner de vulnerabilidades white hat completamente automático, que puede monitorear activos de hacker y bugcrowd, generar informes de vulnerabilidades, capturar pantallas de URLs vulnerables y enviar notificaciones de mensajes.
Dirección de descarga de DarkAngel:github.com/Bywalks/DarkAngel
Funcionalidades actualmente soportadas:
Bienvenido a enviar algunas plantillas de vulnerabilidades a este proyecto
Generar automáticamente informe de vulnerabilidad - formato MarkDown - dirección de almacenamiento /root/DarkAngel/vulscan/results/report
Soporte para agregar plantillas de informes de vulnerabilidad personalizadas. Actualmente, se han agregado las siguientes plantillas de informes de vulnerabilidad. El nombre de la vulnerabilidad se puede configurar como el nombre del archivo de la plantilla nuclei
Formato de plantilla de informe de vulnerabilidad personalizada
Puede ver primero cómo obtener la configuración:Tutorial de configuración de TG
Después de obtener los parámetros, configúrelos en /root/markup/vconfig/config.ini para habilitar las notificaciones de TG empresarial
Notificación de TG - Resultados de vulnerabilidades
Notificación de TG - Proceso de escaneo
Puede ver primero cómo obtener la configuración:Documento de interfaz de desarrollo de WeChat empresarial
Después de obtener los parámetros, configúrelos en /root/markup/vconfig/config.ini para habilitar las notificaciones de WeChat empresarial
Notificación de WeChat - Resultados de vulnerabilidades
Notificación de WeChat - Proceso de escaneo
La arquitectura general del proyecto es ES+Kibana+scanner, por lo que la instalación requiere tres partes
Imagen ES:
Pull ES image
docker pull bywalkss/darkangel:es7.9.3
Deploy ES image
docker run -e ES_JAVA_OPTS="-Xms1024m -Xms1024m" -e "discovery.type=single-node" -d -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.9.3
view log
docker logs -f elasticsearch
If there is a problem, execute the command
sysctl -w vm.max_map_count=262144
Restart Docker
docker restart elasticsearch
Imagen Kibana:
Pull Kibana image
docker pull bywalkss/darkangel:kibana7.9.3
Deploy Kibana image (modify the es ip)
docker run --name kibana -e ELASTICSEARCH_ URL= http://es-ip:9200 -p 5601:5601 -d docker.io/bywalkss/darkangel:kibana7.9.3
view log
docker logs -f kibana
If there is a problem, execute the command
sysctl -w vm.max_map_count=262144
Restart Docker
docker start kibana
Imagen del escáner:
Pull Scanner Image
docker pull bywalkss/darkangel:v0.0.5
Deployment Scanner
docker run -it -d -v /root/DarkAngel:/root/DarkAngel --name darkangel bywalkss/darkangel:v0.0.5
Enter the scanner docker
docker exec -it docker_id /bin/bash
Enter the root directory
cd root
Download source code
git clone https://github.com/Bywalks/DarkAngel.git
Add execution permissions
chmod 777 /root/DarkAngel/vulscan/tools/*
chmod 777 /root/DarkAngel/vulscan/tools/whatweb/*
You can use it after into the DarkAngel directory
El directorio montado en el contenedor docker no tiene permisos: Solución 1. Al ejecutar el contenedor: --privileged=true; Solución 2. El host ejecuta el comando: setenforce 0
usage: darkangel.py [-h] [--add-new-domain]
[--scan-domain-by-time SCAN_DOMAIN_BY_TIME SCAN_DOMAIN_BY_TIME]
[--scan-new-domain]
[--add-domain-and-scan ADD_DOMAIN_AND_SCAN [ADD_DOMAIN_AND_SCAN ...]]
[--offer-bounty {yes,no}] [--nuclei-file-scan]
[--nuclei-file-scan-by-new-temp NUCLEI_FILE_SCAN_BY_NEW_TEMP]
[--nuclei-file-scan-by-new-add-temp NUCLEI_FILE_SCAN_BY_NEW_ADD_TEMP]
[--nuclei-file-scan-by-temp-name NUCLEI_FILE_SCAN_BY_TEMP_NAME]
[--nuclei-file-polling-scan]
DarkAngel is a white hat scanner. Every user makes the Internet more secure.
--------------------------------------------------------------------------------
optional arguments:
-h, --help show this help message and exit
--add-new-domain add new domain from h1 and bc
--scan-domain-by-time SCAN_DOMAIN_BY_TIME SCAN_DOMAIN_BY_TIME
scan h1 and bc domain by launched time
--scan-new-domain add and scan new domain from h1 and bc
--add-domain-and-scan ADD_DOMAIN_AND_SCAN [ADD_DOMAIN_AND_SCAN ...]
add and scan new domain self added
--offer-bounty {yes,no}
set add domain is bounty or no bounty
--nuclei-file-scan scan new domain from h1 and bc
--nuclei-file-scan-by-new-temp NUCLEI_FILE_SCAN_BY_NEW_TEMP
use new template scan five file by nuclei
--nuclei-file-scan-by-new-add-temp NUCLEI_FILE_SCAN_BY_NEW_ADD_TEMP
add new template scan five file by nuclei
--nuclei-file-scan-by-temp-name NUCLEI_FILE_SCAN_BY_TEMP_NAME
use template scan five file by nuclei
--nuclei-file-polling-scan
five file polling scan by nuclei
$ python3 darkangel.py --add-new-domain
$ python3 darkangel.py --scan-domain-by-time begin-time end-time
$ python3 darkangel.py --scan-new-domain
$ python3 darkangel.py --add-domain-and-scan program-file-name1 program-file-name2 --offer-bounty yes/no
-Añade dominios de escaneo personalizados y realiza escaneo de vulnerabilidades en estos dominios. -El nombre del archivo es el nombre del fabricante, y la memoria del archivo necesita escanear el dominio. -El parámetro --offer-bounty es necesario para establecer si el dominio ofrece recompensa.
Después del escaneo, los resultados de los subdominios se almacenarán en el directorio /root/DarkAngel/vulscan/results/urls, se almacenan en los archivos bounty_temp_urls_output.txt, nobounty_temp_urls_output.txt
$ python3 darkangel.py --nuclei-file-scan
Ubicación de almacenamiento de la lista de URL
$ python3 darkangel.py --nuclei-file-polling-scan
$ python3 darkangel.py --nuclei-file-scan-by-new-temp nuclei-template-version
La versión actual de la plantilla de nuclei es 9.3.1
Ejecuta el comando para monitorear la actualización de la versión 9.3.2
Notificación de WeChat empresarial
Ubicación de almacenamiento de la lista de URL
$ python3 darkangel.py --nuclei-file-scan-by-new-add-temp nuclei-template-id
Verifica el ID de la plantilla individual de Nuclei, aquí es 6296
Ejecuta el comando para escanear la plantilla
Ubicación de almacenamiento de la lista de URL
$ python3 darkangel.py --nuclei-file-scan-by-temp-name nuclei-template-name
Fabricante de escaneo frontal
Frontal - Dominio de escaneo
Frontal - Resultados de escaneo
Notificación de TG - Resultados de vulnerabilidades
Notificación de TG - Proceso de escaneo
Notificación de WeChat - Proceso de escaneo
Notificación de WeChat - Resultados de vulnerabilidades
En primer lugar, gracias por tomarte el tiempo para mejorar DarkAngel 👍
Informes de errores, sugerencias y envío de plantillas de vulnerabilidades, tu ID de Github se revelará en la siguiente lista de agradecimientos:
Informe de errores
Envía el mensaje de error actual de DarkAngel o una captura de pantalla en GitHub Issues, y describe tus pasos de reproducción en detalle.
Sugerencias de funciones
En GitHub Discussions, puedes hablar libremente y discutir las funciones que deseas con los desarrolladores.
Envío de plantillas de vulnerabilidades
Bienvenido a enviar plantillas de vulnerabilidades en GitHub Discussions. Los proyectos de código abierto requieren la contribución de todos.
Actualización
Actualización
Actualización
Actualización
Actualización
Actualización
Actualización
Actualización
Función