Saltar a contenido

External Reconnaissance

External Reconnaissance

Si tu compromiso no comienza con una metodología de "assume breach" y necesitas obtener acceso inicial a la red objetivo por ti mismo, será necesario realizar algo de reconocimiento externo. La fase de reconocimiento es vital, ya que proporciona información que se aprovechará para explotar el objetivo o acceder a los datos.

Hay dos aspectos principales del reconocimiento: organisational y technical.

Durante el reconocimiento "organisational", te enfocas en recopilar información sobre la organización. Esto puede incluir las personas que trabajan allí (nombres, trabajos y habilidades), la estructura organizativa, ubicaciones de sitios y relaciones comerciales.

Durante el reconocimiento "technical", estás buscando sistemas como sitios web públicos, servidores de correo, soluciones de acceso remoto y cualquier proveedor o producto en uso, especialmente los defensivos, como proxies web, gateways de correo electrónico, firewalls, antivirus, etc.

La recopilación de cualquiera de estos tipos de información puede realizarse de forma "passive" o "active".

La recolección pasiva depende de fuentes de terceros como Google, LinkedIn, Shodan y redes sociales, donde no estás tocando activamente partes de la red objetivo.

La recolección activa, como su nombre indica, implica tocar directamente esos componentes, lo que podría ser tan simple como visitar el sitio web del objetivo o realizar un escaneo de puertos en sus rangos de IP. El reconocimiento activo es inherentemente más riesgoso que el pasivo, ya que proporciona a una organización su primera indicación potencial de que está siendo observada.

Al realizar reconocimiento activo, considera hacerlo a través de un proxy o servicio VPN para no exponer tu dirección IP pública.

Debido a que el laboratorio no tiene acceso a Internet saliente, debes usar tu propia VM si deseas seguir estos pasos. Sin embargo, son opcionales, así que siéntete libre de no hacerlo.


DNS Records

Los registros de Domain Name System (DNS) pueden proporcionar una gran cantidad de información sobre servicios que pueden estar expuestos a Internet, pero aquí hay peligros.

El "objetivo" que vamos a atacar en el laboratorio es una organización llamada Cyberbotic. Su nombre de dominio es cyberbotic.io. Podemos comenzar realizando una búsqueda simple de cualquier registro A para este dominio.

$ dig cyberbotic.io

;; QUESTION SECTION:
;cyberbotic.io.                 IN      A

;; ANSWER SECTION:
cyberbotic.io.          0       IN      A       172.67.205.143
cyberbotic.io.          0       IN      A       104.21.90.222

Realizar un whois en cada dirección IP pública puede mostrar a quién pertenece. Podemos ver que resuelve a un proveedor externo, Cloudflare.

$ whois 172.67.205.143

OrgName:        Cloudflare, Inc.
OrgId:          CLOUD14
Address:        101 Townsend Street
City:           San Francisco
StateProv:      CA
PostalCode:     94107
Country:        US
RegDate:        2010-07-09
Updated:        2021-01-11
Ref:            https://rdap.arin.net/registry/entity/CLOUD14

Cuando navegamos a https://cyberbotic.io, en realidad estamos siendo enviados a Cloudflare, que hace de proxy del tráfico entre nosotros y un servidor web backend. El problema es que no sabemos si el servidor web está alojado en las instalaciones de la organización objetivo o en otro proveedor de servicios en la nube. Esta información debe ser confirmada con el cliente; proveedores como Amazon y Azure tienen reglas específicas y/o requieren permisos explícitos antes de llevar a cabo cualquier evaluación de seguridad en su infraestructura.

También podrías encontrar direcciones IP que pertenecen a Proveedores de Servicios de Internet (ISPs), ya que algunas organizaciones alquilan su espacio de direcciones públicas.

Algunos servicios de Software as a Service (SaaS) requieren registros DNS en el dominio objetivo para apuntar hacia esos servicios. Un ejemplo notable incluye Microsoft Office 365, que puede encontrarse en autodiscover.target-domain. Si el objetivo usa estos servicios SaaS para correo electrónico y/o almacenamiento de documentos, podría ser posible acceder al objetivo sin necesidad de comprometer su red.

Los subdominios también pueden proporcionar información sobre otros servicios disponibles públicamente, lo que podría incluir webmail, soluciones de acceso remoto como Citrix o un VPN. Herramientas como dnscan vienen con listas de subdominios populares.

~/dnscan$ ./dnscan.py -d cyberbotic.io -w subdomains-100.txt
[*] Processing domain cyberbotic.io
[*] Using system resolvers: 172.19.80.1
[+] Getting nameservers
172.64.32.56 - adi.ns.cloudflare.com
173.245.58.56 - adi.ns.cloudflare.com
108.162.192.56 - adi.ns.cloudflare.com
cyberbotic.io
172.64.33.220 - pablo.ns.cloudflare.com
173.245.59.220 - pablo.ns.cloudflare.com
108.162.193.220 - pablo.ns.cloudflare.com
cyberbotic.io
[-] Zone transfer failed

[+] IPv6 (AAAA) records found. Try running dnscan with the -6 option.
2606:4700:3037::ac43:cd8f

2606:4700:3033::6815:5ade

[-] DNSSEC not supported

[+] MX records found, added to target list
10 mail.cyberbotic.io.

[*] Scanning cyberbotic.io for A records
172.67.205.143 - cyberbotic.io
104.21.90.222 - cyberbotic.io
172.67.205.143 - www.cyberbotic.io
104.21.90.222 - www.cyberbotic.io
10.10.15.100 - mail.cyberbotic.io

Del resultado anterior, hemos descubierto los subdominios www y mail.

Info

Los más astutos notarán que mail resuelve a una dirección interna en lugar de una pública. Esta es la dirección IP del servidor Exchange en el laboratorio RTO.

La seguridad débil en correos electrónicos (SPF, DMARC y DKIM) podría permitirnos falsificar correos para que parezcan provenientes de su propio dominio. Spoofy es una herramienta en Python que puede verificar la seguridad del correo electrónico de un dominio dado.

~/Spoofy$ pip3 install -r requirements.txt
~/Spoofy$ python3 spoofy.py -d cyberbotic.io -o stdout
[*] Domain: cyberbotic.io
[*] Is subdomain: False
[*] DNS Server: 1.1.1.1
[?] No SPF record found.
[?] No DMARC record found.
[+] Spoofing possible for cyberbotic.io

Google Dorks

Google "dorking" es una forma avanzada de usar los operadores de búsqueda de Google para encontrar información muy específica. La Google Hacking Database contiene cientos de ejemplos, pero aquí cubriré algunos usos básicos.

site:

Limita los resultados de búsqueda a aquellos de un sitio web específico.

site:apple.com
No es muy útil por sí solo, pero devolverá cada página que Google haya indexado para el dominio apple.com.

intitle:

Encuentra páginas con una palabra específica en el título.

intitle:apple
Esto devolverá cada página que contenga la palabra "apple" en el título.

inurl:

Encuentra páginas con una palabra específica en la URL.

inurl:apple
Esto devolverá cada página donde "apple" aparezca en la URL.

intext:

Encuentra páginas que contengan una palabra (o palabras) específicas en el contenido.

intext:apple
Esto devolverá cada página donde "apple" aparezca en el texto del cuerpo.

filetype:

Busca tipos de archivos que Google pueda interpretar.

site:apple.com filetype:pdf
Esto devolverá todos los PDFs en apple.com. Otros tipos de archivo como docx, pptx y xlsx también funcionan. Esto se podría combinar con
intitle:report
para encontrar todos los PDFs que tienen "report" en el nombre. Google no reconoce todos los tipos de archivo, por lo que se podría usar inurl en su lugar.

#..#:

Busca un rango de números.

site:apple.com filetype:pdf 2020..2022
Esto devolverá todos los PDFs en apple.com que contengan los números 2020, 2021 y 2022. Útil para encontrar información limitada a un período de tiempo específico.

-:

Excluye una frase.

site:apple.com -www -support
Esto devolverá páginas indexadas en apple.com excluyendo los dominios www y support. Útil para encontrar otros subdominios.

Estos dorks pueden usarse para encontrar archivos interesantes, aplicaciones web e información.


Social Media

Las plataformas de redes sociales como LinkedIn, Facebook y Twitter pueden ser una mina de oro de información. LinkedIn es especialmente abundante porque permite (e incentiva) que las personas publiquen información sobre sus habilidades y experiencias. Por ejemplo, podemos ir a la página de LinkedIn de Apple o usar un Google dork para encontrar a sus empleados, y desde ahí analizar sus perfiles. Esto es útil para obtener información sobre los posibles stacks tecnológicos y procesos de negocio que están siendo utilizados.

Muchas personas también enlazan sus perfiles de redes sociales, por lo que puedes encontrar sus cuentas de Twitter/Facebook/Instagram/etc. El phishing sigue siendo el método más prevalente para comprometer un objetivo, y reunir información tanto profesional como personal sobre los objetivos es clave para hacer que esos pretextos sean convincentes y atractivos.

También puedes encontrar herramientas de scraping automatizado como LinkedInt. Sin embargo, en el caso de LinkedIn, a menudo violan sus acuerdos de usuario, lo que puede llevar a que tu cuenta sea baneada. Si necesitas usar una cuenta para fines de scraping, asegúrate de que sea una "burner".

Sitios web como hunter.io pueden usarse para descubrir direcciones de correo electrónico de empleados. Si ingresamos apple.com, nos dirá que el patrón más común para ese dominio es {f}{last}@apple.com. Esto significa que no necesitamos encontrar explícitamente la dirección de correo electrónico de cada persona, sino simplemente adivinar en base a este patrón. Podríamos hacer scraping de una lista de empleados de Apple desde LinkedIn y transformar sus nombres en direcciones de correo electrónico. Por ejemplo, Steve Jobs se convertiría en s.jobs@apple.com. No todas serán correctas, pero con suerte, una buena proporción lo será.