External Recon and Enumeration Principles
Antes de iniciar cualquier prueba de penetración, puede ser útil realizar un análisis external reconnaissancede su objetivo. Esto puede tener diversas funciones, como:
Validar la información proporcionada en el documento de alcance del cliente
Cómo asegurarse de tomar medidas dentro del alcance adecuado al trabajar de forma remota
Buscando cualquier información que sea de acceso público que pueda afectar el resultado de su prueba, como credenciales filtradas
Piénselo así: intentamos asegurarnos de lay of the landofrecer la prueba más completa posible a nuestro cliente. Esto también implica identificar posibles fugas de información y violaciones de datos. Esto puede ser tan simple como obtener el formato de nombre de usuario del sitio web principal del cliente o de sus redes sociales. También podemos analizar a fondo los repositorios de GitHub en busca de credenciales dejadas en las actualizaciones de código, buscar en documentos enlaces a una intranet o sitios web accesibles remotamente, y simplemente buscar cualquier información que nos permita comprender la configuración del entorno empresarial.
¿Que es lo que estamos buscando?
Al realizar nuestro reconocimiento externo, debemos buscar varios elementos clave. Esta información puede no ser siempre pública, pero conviene analizar la información disponible. Si nos atascamos durante una prueba de penetración, revisar lo que se pudo obtener mediante el reconocimiento pasivo puede darnos el impulso necesario para avanzar, como datos de vulneraciones de contraseñas que podrían utilizarse para acceder a una VPN u otro servicio externo. La tabla a continuación destaca los " What" en lo que buscaríamos durante esta fase de nuestra intervención.
Punto de datos
Descripción
IP Space
ASN válido para nuestro objetivo, bloques de red en uso para la infraestructura pública de la organización, presencia en la nube y proveedores de alojamiento, entradas de registros DNS, etc.
Domain Information
Basándonos en datos de IP, DNS y registros de sitios, ¿quién administra el dominio? ¿Existen subdominios vinculados a nuestro objetivo? ¿Existen servicios de dominio de acceso público? (Servidores de correo, DNS, sitios web, portales VPN, etc.) ¿Podemos determinar qué tipo de defensas existen? (SIEM, antivirus, IPS/IDS en uso, etc.)
Schema Format
¿Podemos descubrir las cuentas de correo electrónico, los nombres de usuario de AD e incluso las políticas de contraseñas de la organización? Cualquier información que nos proporcione información que podamos usar para crear una lista de nombres de usuario válidos y así probar servicios externos en busca de robo de contraseñas, robo de credenciales, ataques de fuerza bruta, etc.
Data Disclosures
Para divulgaciones de datos, buscaremos archivos de acceso público (.pdf, .ppt, .docx, .xlsx, etc.) para obtener cualquier información que ayude a esclarecer la identidad del objetivo. Por ejemplo, cualquier archivo publicado que contenga intranetlistados de sitios, metadatos de usuarios, recursos compartidos u otro software o hardware crítico del entorno (credenciales enviadas a un repositorio público de GitHub, el formato interno de nombre de usuario de AD en los metadatos de un PDF, por ejemplo).
Breach Data
Cualquier nombre de usuario, contraseña u otra información crítica publicada que pueda ayudar a un atacante a obtener un punto de apoyo.
Hemos abordado el whytema whatdel reconocimiento externo; profundicemos ahora en el wheretema how.
¿Hacia dónde estamos mirando?
Nuestra lista de datos anterior puede recopilarse de diversas maneras. Existen numerosos sitios web y herramientas que pueden proporcionarnos parte o toda la información mencionada, la cual podríamos utilizar para obtener información vital para nuestra evaluación. La siguiente tabla enumera algunos posibles recursos y ejemplos que pueden utilizarse.
Recurso
Ejemplos
ASN / IP registrars
IANA , arin para búsquedas en América, RIPE para búsquedas en Europa, BGP Toolkit
Domain Registrars & DNS
Domaintools , PTRArchive , ICANN , solicitudes manuales de registros DNS contra el dominio en cuestión o contra servidores DNS conocidos, como 8.8.8.8.
Social Media
Buscando en Linkedin, Twitter, Facebook, los principales sitios de redes sociales de su región, artículos de noticias y cualquier información relevante que pueda encontrar sobre la organización.
Public-Facing Company Websites
A menudo, el sitio web público de una corporación incluye información relevante. Artículos de noticias, documentos incrustados y las páginas "Sobre nosotros" y "Contáctenos" también pueden ser una mina de oro.
Cloud & Dev Storage Spaces
Breach Data Sources
HaveIBeenPwned para determinar si alguna cuenta de correo electrónico corporativa aparece en los datos públicos de la filtración. Dehashed para buscar correos electrónicos corporativos con contraseñas en texto plano o hashes que podamos descifrar sin conexión. Posteriormente, podemos probar estas contraseñas en cualquier portal de inicio de sesión expuesto (Citrix, RDS, OWA, 0365, VPN, VMware Horizon, aplicaciones personalizadas, etc.) que pueda usar autenticación AD.
Encibtrar espacios de direcciones
El recurso BGP-Toolkitalojado por Hurricane Electric es un recurso fantástico para investigar qué bloques de direcciones están asignados a una organización y en qué ASN residen. Simplemente introduzca un dominio o una dirección IP y el kit de herramientas buscará todos los resultados posibles. Podemos obtener mucha información de esta información. Muchas grandes corporaciones suelen autoalojar su infraestructura y, al tener una presencia tan grande, tendrán su propio ASN. Esto no suele ocurrir con organizaciones más pequeñas o empresas emergentes. Al investigar, tenga esto en cuenta, ya que las organizaciones más pequeñas suelen alojar sus sitios web y otra infraestructura en el espacio de otra persona (Cloudflare, Google Cloud, AWS o Azure, por ejemplo). Comprender dónde reside esa infraestructura es fundamental para nuestras pruebas. Debemos asegurarnos de no interactuar con infraestructura fuera de nuestro alcance. Si no tenemos cuidado al realizar pruebas de penetración en una organización más pequeña, podríamos dañar inadvertidamente a otra organización que comparta esa infraestructura. Usted tiene un acuerdo para realizar pruebas con el cliente, no con otros en el mismo servidor ni con el proveedor. Las preguntas sobre infraestructura autohospedada o administrada por terceros deben abordarse durante el proceso de alcance y enumerarse claramente en cualquier documento de alcance que reciba.
En algunos casos, su cliente podría necesitar la aprobación por escrito de un proveedor de hosting externo antes de poder realizar pruebas. Otros, como AWS, tienen directrices específicas para realizar pruebas de penetración y no requieren aprobación previa para probar algunos de sus servicios. Otros, como Oracle, le solicitan que envíe una Notificación de Pruebas de Seguridad en la Nube . Estos pasos deben ser gestionados por la gerencia de su empresa, el equipo legal, el equipo de contratos, etc. Si tiene dudas, escale el caso antes de atacar cualquier servicio externo del que no esté seguro durante una evaluación. Es nuestra responsabilidad asegurarnos de tener permiso explícito para atacar cualquier host (tanto interno como externo), y detener el ataque y aclarar el alcance por escrito siempre es una buena idea.
DNS
El DNS es una excelente manera de validar nuestro alcance y descubrir hosts accesibles que el cliente no indicó en su documento de alcance. Sitios como domaintools y viewdns.info son excelentes puntos de partida. Podemos obtener numerosos registros y otros datos, desde la resolución DNS hasta las pruebas de DNSSEC y si el sitio es accesible en países con restricciones. A veces, podemos encontrar hosts adicionales fuera del alcance, pero que parecen interesantes. En ese caso, podríamos presentar esta lista a nuestro cliente para ver si alguno de ellos debería incluirse en el alcance. También podemos encontrar subdominios interesantes que no figuraban en los documentos de alcance, pero que residen en direcciones IP dentro del alcance y, por lo tanto, son válidos.
Viewdns.ifo
Esta también es una excelente manera de validar algunos de los datos encontrados en nuestras búsquedas de IP/ASN. No toda la información sobre el dominio encontrado estará actualizada, por lo que realizar comprobaciones que validen lo que vemos siempre es una buena práctica.
Datos públlicos
Las redes sociales pueden ser una mina de oro de datos interesantes que nos dan pistas sobre la estructura de la organización, el tipo de equipo que utilizan, las posibles implementaciones de software y seguridad, su esquema y más. Encabezan la lista sitios web de empleo como LinkedIn, Indeed.com y Glassdoor. Las ofertas de empleo sencillas suelen revelar mucho sobre una empresa. Por ejemplo, eche un vistazo a la oferta de empleo a continuación. Es para una SharePoint Administratory puede darnos mucha información. Podemos ver en la oferta que la empresa lleva un tiempo usando SharePoint y tiene un programa consolidado, ya que hablan de programas de seguridad, copias de seguridad y recuperación ante desastres, entre otros. Lo que nos interesa de esta publicación es que probablemente la empresa use SharePoint 2013 y SharePoint 2016. Esto significa que podrían haber realizado actualizaciones, lo que podría dejar vulnerabilidades que podrían no existir en las versiones más recientes. Esto también significa que podríamos encontrarnos con diferentes versiones de SharePoint durante nuestras interacciones.
Listado de trabajos de administrador de SharePoint
No descarte información pública, como ofertas de empleo o redes sociales. Puede obtener mucha información sobre una organización simplemente por lo que publica, y una publicación bienintencionada podría revelar datos relevantes para nosotros como expertos en pruebas de penetración.
Los sitios web alojados por la organización también son excelentes lugares para buscar información. Podemos recopilar correos electrónicos de contacto, números de teléfono, organigramas, documentos publicados, etc. Estos sitios, en particular los documentos incrustados, suelen contener enlaces a infraestructura interna o sitios de intranet que de otro modo no conocería. Revisar la información de acceso público para obtener este tipo de detalles puede ser una solución rápida para comprender la estructura del dominio. Con el creciente uso de sitios como GitHub, almacenamiento en la nube de AWS y otras plataformas alojadas en la web, los datos también pueden filtrarse involuntariamente. Por ejemplo, un desarrollador que trabaja en un proyecto puede dejar accidentalmente algunas credenciales o notas codificadas en una versión de código. Si sabe dónde buscar esos datos, puede obtener una solución fácil. Podría marcar la diferencia entre tener que rociar contraseñas y forzar las credenciales durante horas o días, o establecerse rápidamente con credenciales de desarrollador, que también pueden tener permisos elevados. Herramientas como Trufflehog y sitios como Greyhat Warfare son recursos fantásticos para encontrar estas migas de pan.
Hemos dedicado tiempo a analizar la enumeración externa y el reconocimiento de una organización, pero esto es solo una parte del rompecabezas. Para una introducción más detallada a OSINT y la enumeración externa, consulte los módulos Footprinting y OSINT: Reconocimiento Corporativo .
Hasta este punto, hemos mantenido una actitud pasiva en nuestras conversaciones. A medida que avance en la prueba de penetración, se involucrará más activamente, validando la información encontrada y explorando el dominio para obtener más información. Dediquemos un minuto a analizar los principios de enumeración y cómo podemos implementar un proceso para realizar estas acciones.
Pasos a seguir
Búscar en viewdns, luego usar las net tools con lo obtenido.
nslookup ns1.<dominio>nslookup ns2.<dominio>Búsqueda de archiovs usando dorks
filetype:pdf inurl:<dominio>Búsqueda de correos electroónicos de caza
intext:"@<dominio>" inurl:<dominio>Podemos utilizar una herramienta como linkedin2username para extraer datos de la página de LinkedIn de una empresa y crear varias combinaciones de nombres de usuario (flast, first.last, f.last, etc.) que se pueden agregar a nuestra lista de posibles objetivos de robo de contraseñas.
Dehashed es una herramienta excelente para buscar credenciales de texto plano y hashes de contraseñas en datos de filtraciones. Podemos buscar en el sitio web o mediante un script que realiza consultas a través de la API. Normalmente, encontraremos muchas contraseñas antiguas de usuarios que no funcionan en portales externos que usan autenticación AD (o interna), ¡pero quizás tengamos suerte! Esta herramienta también puede ser útil para crear una lista de usuarios para la pulverización de contraseñas externa o interna.
sudo python3 dehashed.py -q <domino> -pLast updated