Danger zone es una herramienta OSINT que correlaciona datos entre dominios, IPs y direcciones de correo electrónico, los presenta como un gráfico y lo almacena todo en archivos Elasticsearch y JSON.
Casos
- Basado en el correo electrónico dado, comprueba los dominios asociados y luego comprueba estos dominios para otros correos electrónicos e IPs.
- Para los dominios comprueba la IP y los correos electrónicos y a continuación busca los dominios asociados.
- Extrae el dominio de la IP, comprueba el dominio para otras IPs y el correo electrónico.
módulos
- Email:
- Trumail – Validación de correo electrónico (https://trumail.io/)
- Whoxy – Servicio de Whois inverso (https://whoxy.com/) NECESITA CLAVE
- haveIbeenPwned – Dumps (https://haveibeenpwned.com/)
- Username check – Comprueba el nombre de usuario, basado en la dirección de correo electrónico, a través de los sitios de medios sociales (https://username-availability.herokuapp.com/)
- Google – Consulta a Google
- IP:
- Geolocation – Geolocaliza la IP (https://extreme-ip-lookup.com/)
- Threatcrowd – Información sobre la IP (https://github.com/AlienVault-OTX/ApiV2)
- VirusTotal – Información sobre la IP (https://www.virustotal.com/) NECESITA CLAVE
- Dominio:
- TLD – Obtener el patrocinio de un determinado dominio de nivel superior (https://raw.githubusercontent.com/mikewesthad/tld-data/master/data/tlds.json)
- Threatcrowd – Información sobre el dominio (https://github.com/AlienVault-OTX/ApiV2)
- Whoxy – Servicio Whois (https://whoxy.com/)
- Whois history – Datos históricos sobre el dominio (https://whoxy.com/)
- Wayback Machine – Versión archivado del sitio web (http://archive.org/)
- VirusTotal – Información sobre el dominio (https://www.virustotal.com/)
Elasticsearch y Kibana
Antes de comenzar la instalación, un par de palabras sobre las dependencias de Elasticsearch y Kibana. Ambas dependencias son opcionales y puedes omitir su instalación, sobre todo porque Kali Linux añade una fuente de aplicaciones de terceros para su instalación (lo cual no es recomendable).
Para decidir si los necesita o no, he aquí una breve descripción (tomada del sitio web oficial – yo también me enteré de estos programas sólo al preparar este artículo):
- Elasticsearch es un motor de búsqueda y análisis distribuido, adecuado para diferentes casos de uso. Enlace: https://www.elastic.co/products/elasticsearch
- Kibana es “tu ventana a Elastic Stack”. Kibana te permite visualizar sus datos de Elasticsearch y navegar por Elastic Stack. Enlace: https://www.elastic.co/products/kibana
Ambos programas pueden ser instalados sin necesidad de añadir un nuevo repositorio – sólo tienes que descargar los archivos .DEB de estas páginas:
- https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html
- https://www.elastic.co/guide/en/kibana/current/deb.html
Instalar Danger-zone
Descarga el propio programa e instala las dependencias: (es necesario Python 2)
git clone https://github.com/woj-ciech/Danger-zone.git
cd Danger-zone/
pip install -r requirements.txt
sudo pip2 install unidecode selenium fake_useragent
sudo pip2 install Google-search-api
Instalar tk:
sudo apt install tk
Abre el archivo settings.json
e introduce la API de virustotal.com y whoxy.com:
nano settings.json
Instala Elasticsearch y Kibana (opcional):
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-amd64.deb.sha512
shasum -a 512 -c elasticsearch-7.16.2-amd64.deb.sha512
sudo dpkg -i elasticsearch-7.16.2-amd64.deb
sudo apt update && sudo apt install kibana
Inicia y comprueba los servicios:
sudo systemctl start elasticsearch.service
sudo systemctl status elasticsearch.service
sudo systemctl start kibana.service
sudo systemctl status kibana.service
Uso de Danger-zone
El modificador de ayuda (-h
) muestra todas las opciones disponibles:
python danger-zone.py -h
usage: dangerzone.py [-h] [--email EMAIL] [--address ADDRESS] [--domain DOMAIN]
[--elasticsearch]
Correlate data between domains, ips and email addresses and present it as a
graph.
optional arguments:
-h, --help show this help message and exit
--email EMAIL Email address
--address ADDRESS IP address
--domain DOMAIN Domain name
--elasticsearch Elasticsearch output
Entonces, el programa debe ejecutarse con una de las opciones --email
, --address
o --domain
. Si has instalado Elasticsearch, cada una de estas opciones puede combinarse con --elasticsearch
, en cuyo caso la información recogida se escribirá en la base de datos de Elasticsearch.
Un ejemplo de ejecución para recopilar información sobre un dominio:
python2 danger-zone.py --domain esgeeks.com --elastic
Ejemplos de resultados:
Un ejemplo de ejecución para recoger información sobre una dirección de correo electrónico:
python2 danger-zone.py --email hola@esgeeks.com --elastic
Esto no funcionó para mi.
Un ejemplo de ejecución para recoger información sobre la dirección IP:
python2 danger-zone.py --address 216.246.112.54 --elastic
Ejemplos de resultados:
Análisis de Datos en Elasticsearch y Kibana
Los datos de Elasticsearch están disponibles en http://127.0.0.1:9200 y se puede hacer una consulta así: http://127.0.0.1:9200/virustotal/_search. El resultado se emitirá en formato JSON, lo cual es útil para el procesamiento por software, pero no para la percepción humana.
Por esta razón hemos instalado Kibana, que está disponible en http://localhost:5601.
Cuando la abras, selecciona “Explore on my own“:
Crea un índice con el nombre de cada módulo que contiene información específica.
Limitaciones
El autor intentó encontrar todos los servicios gratuitos que pude, pero nada bueno es gratis. Por suerte, sólo necesitas crear dos cuentas para usar esta herramienta. La primera es VirusTotal, que es totalmente gratuita pero te permite hacer sólo 4 peticiones por minuto.
El servicio Whoxy te proporciona créditos gratuitos al principio y es suficiente para probarlo y reunir toda la información útil.
Va sólo 2-3 niveles hacia abajo comprobando sólo 3 hallazgos más recientes, la razón detrás de eso es que el gráfico sería ilegible con muchas conexiones, pero la información completa se guarda en archivos JSON y/o ElasticSearch.
Danger-zone (este enlace se abre en una nueva ventana) por woj-ciech (este enlace se abre en una nueva ventana)
Correlate data between domains, IPs and email addresses, present it as a graph and store everything into Elasticsearch and JSON files.