Cuando hablamos de Red Team, ya hemos mencionado en otros posts que, el alcance del mismo, no sólo abarca a las tecnologías sino también a las personas y procesos.
Otra cosa que ya hemos mencionado más de una vez es que, a diferencia de un pentest tradicional, el cual mucho más acotado en tiempo y alcance, un servicio de red team justamente es muchísimo más amplio tanto en su ventana de tiempo de ejecución como en su alcance ya que, entre otras cosas se trata de generar la mayor cantidad de escenarios posibles o incluso replicar campañas de APT conocidas, lo cual brinda como resultado un resultado mucho más holístico en relación a la postura de seguridad de una determinada compañía o entidad.
Aclarado el contexto, está claro que la fase de reconocimiento en el mundo del Red Team, a diferencia justamente de un pentest tradicional, es de vital importancia.
Justamente, cuando hablamos de reconocimiento, hablamos de OSINT en todos sus aspectos o lo que se suele llamar tradicionalmente como information gathering pasivo y activo. Dado que justamente en un ejercicio de red team se suele modelar con muchísimo más tiempo un escenario de ataque.
Mientras más tiempo le dediquemos a esta fase más van a ser los vectores de ataque que se puedan utilizar para realizar un ataque exitoso, desde bucket de AWS, servicios que no necesariamente deberían estar expuestos (RDP por ejemplo), paneles de gestión web, posibles cuentas de github en donde los desarrolladores de la compañía guardan código de la misma, etc.
En un ejercicio de Red Team todo y absolutamente todo lo que se encuentre puede ser un expuesto a vulnerar.
Dado que se podría escribir un libro entero de técnicas de OSINT orientadas al pentesting o en este caso al Red Team, iremos cubriendo en diferentes posteos algunas técnicas o herramientas.
En este post veremos una herramienta de tipo «all in one» que no suele realmente ser muy conocida pero que lleva varios años (No no hablamos de Spiderfoot o su versión HX Premium).
La herramienta se llama «Discover Scripts» de Lee Baird @discoverscripts (https://github.com/leebaird/discover) y antes era conocida cómo Backtrack Scripts, se imaginarán porque….pues porque la misma era parte de la suite de herramientas de Backtrack Kali Linux antes de convertirse en Kali Linux.
Esta herramienta o conjunto de scripts, yo la uso mucho en lo particular y lo interesante es que también se puede usarse para otras cuestiones no tan relativas a OSINT sino que a través de la misma se pueden disparar otras tools como Recon-NG o por ejemplo Nikto para un escaneo web.
Discover Scripts, cómo su nombre indica, es un conjunto de scripts que disparan acciones o herramientas. Utiliza herramientas cómo «dnsrecon, goofile, goog-mail, goohost, theharvester, metasploit, urlcrazy, whois, wikto y varias otras.
INSTALACIÓN
Para instalarla solo deberemos clonar el repositorio desde su sitio oficial git clone
Una vez finalizada la instalación deberemos movernos al directorio /opt/discover que es dónde se instala por default
Lo primero que deberemos hacer ahora es correr el script bash de actualización de la herramienta el cual ./update.sh.
Al disparar el script la herramienta empezará a instalar no solamente los componentes necesarios, sino que, además, la misma instalará muchas otras herramientas de las que se vale para hacer las diferentes búsquedas que hace e incluso herramientas ofensivas como impacket y muchas otras. El proceso de instalación lleva un tiempo largo con lo cual sugerimos un poco de paciencia e ir siguiendo el paso a paso de la instalación con un café.
EJECUCIÓN DE LA HERRAMIENTA
Una vez finalizada 100% la instalación y actualización de todos los componentes, y estándo parados en el directorio de la misma ya podemos empezar a utilizar la herramienta, para hacerlo sólo debemos correr el script ./discover.sh con el comando sudo por delante, excepto que estemos trabajando con la cuenta de root en forma directa.
Al disparar el script nos aparecerá la siguiente pantalla:
Cómo podemos ver la herramienta tiene varias opciones que no solamente están limitadas al «Reconocimiento» sino que puede invocar escaneos de puertos (port scanning) con nmap o incluso escaneos web con Nikto, por sólo mencionar algunas de las opciones.
Recomendados mirar el sitio web de github de Lee Baird para ver la documentación del uso ya que es bastante extensivo todo lo que se puede realizar con la herramienta.
En nuestro caso, y dado que estamos hablando de «Reconocimiento» en el marco de un Red Team Engagement, trabajaremos solamente con la opción de «RECON».
Entonces vamos a marcar dentro de RECON la opción 1 llamada Domain, para eso solo tipeamos el número 1 en la consola y le damos enter y nos aparecerá el siguiente menú que se observa:
En este caso, vamos a trabajar con la opción 1 llamada «Passive» dado que queremos recolectar la mayor cantidad de información en forma 100% pasiva sin que la actividad en sí, pueda ser detectada de alguna forma u otra.
NOTA: Si tipeamos la opción «Active» la búsqueda utilizará módulos de herramientas cómo dnsrecon, WAF00W, traceroute, Whatweb, and recon-ng, los cuales no son pasivos y podrían detectar nuestra actividad y que nuestra IP sea baneada.
Vamos a tomar un dominio válido ya que, en principio, no estamos haciendo absolutamente nada más que recolectar información, que es el foco de esta entrada. Para ellos voy a usar el dominio de https://www.nintendo.com/ ya que tengo la consola y uso varios de sus juegos 😎
Para ello entonces, luego de seleccionar la opción 1 de «Passive» como ya dijimos antes, nos va a pedir que ingresemos el nombre de la compañía (Esto sirve para el nombre del reporte que la herramienta va a crear una vez que termine) y por otro lado el nombre del domino, el cual deberá ingresarse con el formato «dominio.com» es decir sin www ni http. En nuestro caso «Nintendo.com»
Si prestamos atención podemos ver la imagen que la herramienta nos dice que va a utilizar entre otras herramientas ARIN, DNSRecon, dnstwist, TheHarvester, recon-ng, y varias más e inclusive nos indica que si queremos generar APIs para maximizar el resultado lo hagamos, lo cual recomendamos tanto para BING, Google CSE, Shodan, Censys, etc.
Las APIs que hayamos generado se pueden cargar en las diferentes herramientas que se utilizan, en este caso por sobre todo recon-ng y theharvester, con lo cual las APIs se cargarían de la siguiente manera:
En recon-ng se puede usar el comando «show keys» y luego ingresar las APIs con el comando «keys add», ejemplo: «keys add bing_api <valor de api>».
Una vez que le damos «enter» la herramienta empieza a correr con lo cual acá recomendamos otro cafecito 😎
Veremos que arranca corriendo y haciendo diferentes querys a través de variadas tools:
Una vez que la herramienta termina de trabajar nos va a decir «Scan Complete» y nos va a mostrar en que ruta se guarda el archivo, en este caso dentro de /root/data/Nintendo.com que es el dominio que especificamos.
Desde una consola como root entonces disparamos el Firefox al archivo index.html generado dentro de /root/data/Nintendo.com/ y veremos en el navegador lo siguiente:
Podemos observar en la pantalla que se nos generan varios tabs en dónde tenemos el de «Home», «General», «DNS», «Domain», «File», «Reports» y «Web». En general vamos a poder encontrar listado de usuarios y correos electrónicos que después se puede usar dicho listado para crear un diccionario customizado aunque hay que validar mucha de esta información.
Sugerimos que esto se haga directamente buscando información en el sitio oficial de la empresa u entidad que se esté mirando en ese momento como a través de técnicas de scrapping por ejemplo de Linkedin de los usuarios de dicha compañía (Cosa que veremos más adelante en otra entrada).
En el caso de DNS es dónde empezamos a ver los mapas y registros de DNS perteneciente a la empresa o entidad, cómo por ejemplo se puede ver a continuación
También podremos ver dentro de este contexto otros dominios DNS registrados por la compañía, en este caso utilizados como mail corporativo.
También los sub dominios, que en este caso particular podemos ver que son muchos dados que es una empresa o compañía extremadamente grande.
En el tab de «Files» podemos ver que la herramienta nos muestra todos los archivos que están públicos, en este caso seleccionamos la opción PDF de entre todos los que nos brinda. Esto es extremadamente útil ya que podríamos complementariamente bajar muchos de estos archivos con herramientas cómo Foca o metagoofil para poder extraer adicionalmente otros datos de utilidad a través de la metadata de los mismos.
Por último (Al menos en lo que este post se refiere) podemos ver también que, cuando nos dirigimos al tab «Reports» se nos despliegan muchas dos opciones de las cuales una es la de «Active Recon» y la segunda la de «Passive Recon». En este caso y dado que desde el principio sólo corrimos un Passive Recon para la opción «Domain», está será la opción que se seleccionaremos.
Al hacerlo veremos que nos muestra un resúmen pormenorizado de todo lo que encontró en una forma súper útil para seguir.
varias o
CONCLUSIONES
Esta herramienta junto con el uso de recon-ng en forma automatizada, yo la uso mucho para recolectar información. Cómo toda herramienta de «botón gordo» ayuda mucho a automatizar y recolectar mucha información en un lapso mucho menor que la búsqueda meramente manual, no obstánte hay que recordar que:
- Muchos de los datos se deben Re validar manualmente
- Que la parte de datos de casillas de correo y de personas conviene sacarlos por otro medio o por algunos módulos específicos de recon-ng que ya veremos más adelante o mismo por scrapping.
- Que se debe utilizar si o si tanto en recon-ng cómo en la herramienta de «TheHarvester» las APIs que ya previamente tengamos registradas (Shodan, Censys, Bing, GoogleCSE, Virustotal, etc.) ya que va a ser mucho más rica la búsqueda que nos genere la herramienta.
Recordemos además que la herramienta puede automatizar escaneos activos, automatizar el uso de metasploit a través de módulos que invoca, automatizar escaneos web con nikto y muchas cosas más ya que, además de la automatización de muchas de las herramientas que ya mencionamos al principio también en el caso de su uso en Kali Linux utiliza y automatiza el «Penetration Tester Framework» (PTF).
Espero que les haya gustado la nota. Happy hacking!
Diego