El proceso de information gathering consiste en el proceso de identificar y obtener información sobre el objetivo para diseñar los ataques que se llevaran a cabo.
Cuanto más se sepa del objetivo, más eficientes podrán ser los ataques.
- Obtención de bloques de red
- Información sobre tecnologías utilizadas
- Información sobre la infraestructura externa
- Información sobre servicios publicados, versiones y configuraciones
- Información sobre aplicaciones
- Información sobre medidas de defensa
- Información sobre servicios de terceros
- Documentos con información relevante
- Direcciones de mail
- Información sobre el personal
-
OSINT
Obtención de cualquier información desde una fuente publica
-
Area tecnológica
Obtención de información relacionada con el aspecto tecnológico del objetivo
-
Area humana
Obtención de información relacionada con el personal del objetivo
-
Revisión manual
La obtención de información se realiza de forma pasiva, sin interactuar con el objetivo
-
Revisión semi-manual
La obtención de información se lleva a cabo mediante tools y una ejecución controlada de las misma
-
Revisión automática La obtención de información se realiza mediante tools que automatizan el proceso. Por contra, se pierde el control de lo que se esta realizando entre bambalinas
Obtención de toda la información posible sobre el objetivo sin interactuar con él. Lo unico que se tiene al inicio de esta fase es el nombre del dominio o algunas direcciónes ip.
-
Google hacking: https://www.exploit-db.com/google-hacking-database
Localizar cualquier tipo de información posible sobre el objetivo.
Ejemplos:
- Buscar el nombre de la empresa
- site: site:*.dominio -www
- intext: intext:password filetype:xlsx
- intitle: intitle:"index of /backup"
- inurl: inurl: readme.htm
- filetype: filetype:ovpn
- Buscar el nombre de la empresa
-
Dnsdumper: https://dnsdumpster.com
-
Censys.io: https://censys.io/login
Localizar información técnica sobre el objetivo
- Certificates: Indicar el nombre del objetivo, el dominio etc
- Otra opción: https://crt.sh/
- Se pueden obtener subdominios, más direcciones ip etc
- Analizar direcciones IP
- Certificates: Indicar el nombre del objetivo, el dominio etc
-
Shodan: https://shodan.io
Localizar información técnica sobre el objetivo usando las direcciones IP o nombres de dominio obtenidas en los pasos 1 y 2
-
Archive
El uso de archive puede facilitar información como subdominios abandonados así como más información técnica.
- archive.org
- archive.is
- archive.vn
-
Github
Revisar github por si hay código del objetivo
-
Redes sociales como twitter, Linkedin, etc
Localizar información de personas que tengan relación con el objetivo, por ejemplo, los empleados de una empresa.
-
Hunter.io
Obtención de direcciones de correo relacionadas con el objetivo
-
Aplicaciones móviles
Revisar aplicaciones móviles que tengan relación con el objetivo
-
Otros recursos:
- Netcraft: https://www.netcraft.com/
- Yougetsignal.com: https://www.yougetsignal.com/
- Viewsdns.info: https://viewdns.info/
- Dehashed: https://dehashed.com/
- Virustotal: https://www.virustotal.com/gui/
- Haveibeenpwned: https://haveibeenpwned.com/
- ipalyzer: https://ipalyzer.com/
- Email Address Verification: https://proofy.io/
- Blogs/foros
- Whois
- whois $domain
- HOST
- host $domain
- DNS
- nslookup
- > set querytype=any
- > $domain
- dig [@server] [dominio] [tipo
- Transferencia de zona:
- dig @server $domain axfr
- dig -x @server
- Transferencia de zona:
- nslookup
- Reverse DNS
- nmap -sL IP | grep "(" | awk '{printf("%s %s\n",$5,$6);}'
- https://bgp.he.net/
- Revisión de Cloud
- Buckets de S3 por ejemplo
En este caso, se usaran herramientas. Esto puede facilitar más información pero el precio a pagar es que se puede tener un exceso de información (repetida o inútil) e incluso en algunos casos, se interactue con el domino que se esta estudiando.
-
Obtención de contraseñas en leaks de información
-
Tool: Karma
- sudo apt install tor python3 python3-pip
sudo service tor start
git clone https://github.com/decoxviii/karma.git
cd karma sudo -H pip3 install -r requirements.txt python3 bin/karma.py –help
- sudo apt install tor python3 python3-pip
sudo service tor start
git clone https://github.com/decoxviii/karma.git
-
-
Herramientas DNS:
- Tools:
- sublist3r.py -d $domainKnock.py
- dnsenum
- Fuerza bruta: Knock.py
- python knock.py domain.com -w world.list
- Tools:
-
Enumeración de subdominios mediante Certificados y Censys:
-
Fuzzing de directorios:
- Gobuster:
- dirb
-
Enumeración de puertos TCP:
- nmap
- nmap -v -sT -Pn -p- -sV
-
Enumeración de puertos UDP
- Metasploit:
- use auxiliary/scanner/discovery/UDP_SWEEP
- Metasploit:
-
Información de las webs:
-
Analisis de protección de la web:
- nmap -v T4 -p --open --script http-waf-detect
-
Metadatos:
-
Información General:
- theHarvester
- theHarvester -d $domain -b all
- Discover
- https://github.com/leebaird/discover
- Esta tool dispone de un parser para los nmap/nessus en XML
- https://ciberpatrulla.com/links/
- theHarvester
Esta es una guía básica para llevar a cabo un "information gathering" que nos asegure un mínimo. Sin embargo, no es una guia cerrada, hay que considerar lo siguiente:
- Cada vez que se detecte un nuevo dato (una dirección IP) es posible que sea una puerta a más información, como un nuevo rango, maquinas, dominios etc. En ese caso, se podría realizar de nuevo todo el proceso sobre ese dato
- Information Gathering no es algo fijo, es mutable. Una fase realimenta a otra, hay que fijarse en los detalles etc
- Detectar y analizar que protocolos se estan publicando al exterior, como snmp, vnc et
- Listas:
- Kali: /opt/SecLists
- https://github.com/danielmiessler/SecLists
- Password spraying
- Credenciales anónimas o por defecto
- Phishing
- Explotacion de vulnerabilidades en web
- Explotación de vulnerabilidades en servicios
- Obtención de la GAL (Global Address list)