Articles

Recopilación de información [Actualizado en 2019]

Introducción a la Recopilación de Información

La prueba de penetración comienza con una fase previa al compromiso en la que el probador de bolígrafos se familiariza con el cliente, los objetivos, las limitaciones y el alcance de la prueba de penetración. Después de eso, el probador de bolígrafos comienza la prueba de penetración real y generalmente procede con un esfuerzo de recopilación de información en el que el probador de bolígrafos localiza información disponible públicamente relacionada con el cliente y busca formas que podrían explotarse para ingresar a los sistemas. En esta fase, el probador de bolígrafos también utiliza herramientas como escáneres de puertos que pueden ayudarlo a comprender los sistemas de la red y el software que se encuentra en ellos. Usando esa información, el probador de bolígrafos puede identificar el impacto que los diferentes hallazgos pueden tener en el cliente y la parte de análisis de vulnerabilidades puede proceder donde la información encontrada se usa para localizar posibles vulnerabilidades en los sistemas y la fase de explotación posterior donde se intenta explotar las vulnerabilidades para ingresar al sistema. Por lo tanto, sin una buena recopilación de información, no habría vulnerabilidades que encontrar y explotar.

Ahora es el momento de hacer una distinción importante: la recopilación de información pasiva y activa. La recopilación pasiva de información se refiere a recopilar la mayor cantidad de información posible sin establecer contacto entre el probador de bolígrafos (usted mismo) y el objetivo sobre el que está recopilando información. La recopilación activa de información implica el contacto entre el probador de bolígrafos y el objetivo real. Cuando consulta activamente los sistemas para obtener la información, se está moviendo a una situación legal oscura, ya que la mayoría de los países prohíben los intentos de ingresar a los sistemas sin el permiso necesario. Por lo tanto, si no tiene permiso para probar un sistema (una tarjeta para salir de la cárcel), no es una buena idea realizar consultas activas contra él. Por ejemplo, si utiliza Nmap para encontrar puertos abiertos y aplicaciones en un sistema remoto deseado, está interactuando activamente con ese sistema en un intento de encontrar debilidades y si está haciendo una búsqueda de whois, navegando por el sitio web de la empresa o consultando a los motores de búsqueda para obtener información sobre la empresa, está recopilando información de forma pasiva. Un ejemplo de recopilación activa de información es llamar al personal de la empresa e intentar engañarlo para que divulgue información privilegiada.

La fase previa al ataque se puede describir de la siguiente manera:

  1. Recopilación pasiva de información para descubrir información preliminar sobre los sistemas, su software y las personas involucradas con el objetivo.
  2. Determinar pasivamente el rango de red para descubrir las máquinas de la red en las que puede centrarse.
  3. El probador de bolígrafos comprueba activamente cuáles de las máquinas localizadas están vivas para saber a qué apuntar.
  4. El probador de bolígrafos busca activamente puertos abiertos y las aplicaciones en ellos para cada una de las máquinas de la red para encontrar la forma óptima de entrar.
  5. El probador de bolígrafos utiliza herramientas como traceroute y Cheops para tomar huellas digitales del sistema operativo detrás de cada una de las máquinas.
  6. El probador de bolígrafos mapea la red anotando y visualizando todos los datos recopilados y comienza con la fase de ataque

Herramientas pasivas de recopilación de información

theHarvester

Podemos usar el Harvester para recopilar correos electrónicos sobre dominios específicos. Luego podemos usar estos correos electrónicos para iniciar ingeniería social o lanzar otros ataques. El Harvester es una herramienta integrada en Python, por lo que para ejecutarlo necesitará Python en su máquina y, preferiblemente, agregarlo a la variable de entorno PATH. Puede descargar Python desde https://www.python.org/downloads/. Si tiene git en su máquina, puede abrir su Terminal, navegar a una carpeta deseada y escribir git clone https://github.com/laramies/theHarvester.git
para descargar la herramienta. De lo contrario, solo tendría que abrir el repositorio de GitHub, hacer clic en «Clonar o descargar» y descargar el código fuente como un ZIP. Una vez que lo haya instalado, puede abrir la línea de comandos/Terminal y navegar a la carpeta en la que ha instalado el Harvester y escribir python theHarvester.py para obtener la pantalla de ayuda.

Figura 1: La pantalla de ayuda de la cosechadora debería verse algo como esto

Ahora, si queremos buscar correos electrónicos en el dominio dimoff.biz podemos realizar una consulta como esta:

python theHarvester.py -d dimoff.biz -l 100-b google

Esto buscará correos electrónicos en Google ubicados en dimoff.biz y limitará la búsqueda a los primeros 100 resultados de consulta en Google.

Figura 2: No se han encontrado correos electrónicos en mi dominio, ya que los he ofuscado

Intentemos buscar correos electrónicos en el sitio web del Instituto InfoSec. Escribimos la misma consulta pero cambiamos el dominio: python theHarvester.py -d infosecinstitute.com -l 100-b google

Figura 3: La consulta de correos electrónicos en el Instituto InfoSec creó cuatro correos electrónicos que podemos aprovechar para mejorar nuestra investigación, podemos probar la búsqueda con diferentes motores de búsqueda. Si buscamos correos electrónicos dentro de los primeros 30 resultados del motor de búsqueda de Yahoo, terminamos con un solo correo electrónico, pero es diferente de los cuatro que hemos recopilado con Google. Escribimos python theHarvester.py -d infosecinstitute.com -l 20-b yahoo y termina con la siguiente salida:

Figura 4: La búsqueda de Harvester con Yahoo dio un resultado diferente

Como habrás notado, además de escupir los correos electrónicos dentro de ese dominio, el Harvester enumera todos los subdominios que logró encontrar asociados con el dominio dado y los asigna a sus respectivas direcciones IP. Esta información es útil, así como los diferentes subdominios pueden estar utilizando diferentes software de servidor, marcos de desarrollo de software e incluso podrían estar en diferentes máquinas, lo que significaría que esos subdominios pueden ser propensos a diferentes vulnerabilidades y pueden tener diferentes niveles de explotabilidad.

Netcraft

Netcraft es una aplicación web que nos permite ver información detallada sobre el software, el servidor web y el host web involucrado en un sitio web arbitrario. Netcraft hace que la recopilación de esta información sea indolora, ya que toma milisegundos conocer el software detrás del sitio web. Por ejemplo, saber quién es el proveedor de alojamiento web del sitio web podría resultar útil si decide lanzar un ataque de ingeniería social. Luego, puede escribir un correo electrónico a un administrador que parezca originarse en su empresa de alojamiento web, pidiéndole que abra un enlace y cambie una configuración. Además, los diferentes marcos de desarrollo de software que utiliza el sitio web que puedes encontrar con Netcraft pueden tener sus propias vulnerabilidades que luego puedes intentar explotar. La siguiente imagen muestra una búsqueda en InfoSec Institute en http://www.netcraft.com/

Figura 5: Buscando información sobre el Instituto InfoSec en Netcraft

Podemos ver que el proveedor de alojamiento del Instituto InfoSec es Digital Ocean, por lo que podemos notarlo en algún lugar. También podemos ver que el sitio web está utilizando un Sistema de Gestión de Contenidos (CMS) llamado Expression Engine, un marco de desarrollo de software llamado CodeIgniter, que el lenguaje de fondo es PHP, etc. Es posible que busquemos fallas en esas tecnologías que sometan el sitio web a vulnerabilidades. También podemos ver que el software del servidor web se cambió recientemente de Apache / 2.2.31. Conocer la versión exacta del software del servidor es útil, ya que las vulnerabilidades de varios software del servidor se publican en línea regularmente y se parchean con versiones más nuevas del software que a menudo no se implementan a tiempo en la mayoría de los sitios web. Además, conocer el software del servidor reduce el alcance de la investigación. Si sabemos que el servidor está ejecutando Apache, no estaríamos buscando vulnerabilidades para el servidor Microsoft IIS. Sin embargo, a veces la información del servidor proporcionada por el sitio web puede ser un cebo/nido de abeja.

Maltego

Maltego es una herramienta de minería de datos que puede ayudarnos a obtener y visualizar la recopilación de inteligencia. Tiene varias versiones, una de las cuales es gratis para jugar. La versión gratuita es la llamada «Community Edition»y puede descargarla desde https://www.paterva.com/web7/downloads.php#tab-3. Todo lo que tienes que hacer para ejecutarlo es registrar una cuenta con Paterva. La versión gratuita, sin embargo, limita el número de resultados extraídos que se le pueden mostrar.

la Figura 6: Las máquinas prediseñadas de Maltego restringen los resultados a 12 entidades en la versión gratuita

Maltego Primer

Una vez que haya instalado Maltego, configure su cuenta e inicie sesión, debería ver un paso final como se muestra a continuación:

Figura 7: Maltego instalado correctamente

un gráfico en blanco y déjame jugar.»

En el cuadro de paleta de la izquierda, puede ver las diferentes entidades que puede incorporar en sus búsquedas. Arrastre y suelte la entidad de dominio en la Paleta en el gráfico. Debería ver un solo icono de la Tierra con el sitio paterva.com como etiqueta.

Figura 8: Agregar una entidad de dominio al gráfico

Ahora, cambie el nombre de dominio al dominio para el que desea adquirir nueva información. Para hacer esto, debe hacer doble clic en el nombre de dominio y escribir el nombre de dominio deseado.

Después de haber preparado el dominio para explorar, puede ejecutar transformaciones o consultas para obtener información diferente para el dominio haciendo clic con el botón derecho en la entidad de dominio y eligiendo la consulta deseada.

la Figura 9: Un fragmento de las diferentes transformaciones que están disponibles en Maltego

Para ilustrar cómo funcionan esas transformaciones, si elige transformar la entidad en números de teléfono utilizando motores de búsqueda, obtendrá algunos números de teléfono para InfoSec Institute. Puede usar estos números de teléfono para hacer que su ataque de ingeniería social sea más convincente, emplear vishing, pretextos, etc.

Figura 10: La transformación a números de teléfono mediante motores de búsqueda se aplica en InfoSec Institute y se visualizan cinco números de teléfono.

Ahora, si aplicamos otra transformación, nuestros resultados aumentarán. Aún mejor, podemos aplicar nuevas transformaciones a los resultados que se producen de nuestras transformaciones anteriores.

Para ilustrar esto, si hacemos clic derecho en el primer número de teléfono devuelto, obtendremos diferentes transformaciones que podemos aplicar a él. Digamos que elegimos transformar el número de teléfono en URL (es decir, obtener las URL donde se menciona el número de teléfono). Eso nos llevaría a un nivel más profundo en la jerarquía / relación de los resultados y nos mostrará algunas URL donde se puede verificar manualmente quién responde al número de teléfono y así sucesivamente.

Figura 11: Profundizando en Maltego. Obtener las URL donde se menciona uno de los números de teléfono asociados con el Instituto InfoSec

Como puede ver, hay muchas entidades y transformaciones para explorar.

Herramientas activas de recopilación de información

Nmap permite ejecutar exploraciones en máquinas específicas para ver qué puertos están abiertos en ellas y, por lo tanto, qué aplicaciones se están ejecutando en ellas. La diferencia con las herramientas mencionadas anteriormente es que está interactuando activamente con la máquina dada al enviarle paquetes especialmente diseñados. Además, descubrir puertos abiertos Nmap nos permite potencialmente detectar el sistema operativo de la máquina y descubrir los servicios que se están ejecutando en los puertos abiertos.

Se puede descargar Nmap de https://nmap.org/download.html o http://nmap.en.softonic.com/. Puede usar Nmap desde su CLI o desde una aplicación GUI.

Después de la instalación, para ver las diferentes formas en que puede usar nmap, solo tendrá que escribir nmap y presionar Enter.

Figura 12: Pantalla de ayuda de Nmap

Una simple comprobación de puertos abiertos y los servicios correspondientes en ellos es nmap-sS-Pn <DIRECCIÓN IP>. Esto intentará un descubrimiento sigiloso y tratará a la máquina como viva.

Para detectar el sistema operativo en el que se está ejecutando la máquina, puede usar la bandera-O, etc.

Si Nmap parece una herramienta que desea explorar más, visite el artículo de Irfan Shakeel sobre Nmap.

Conclusión

Hemos demostrado los fundamentos del proceso de pruebas de penetración, el papel de la recopilación de información en este proceso y hemos demostrado algunas de las herramientas más populares para recopilar información. El uso de estas herramientas no solo puede ayudarlo a recopilar información suficiente para una recopilación de información fructífera, sino que también puede ayudarlo a aumentar la eficiencia y la efectividad de todo el proceso de pruebas de penetración.