Reconocimiento y enumeración  avanzada en el Bug Hunting

Reconocimiento y enumeración avanzada en el Bug Hunting

En el hacking, y por lo tanto en el bug hunting, el reconocimiento es una fase fundamental para asegurar un buen análisis del objetivo y aumentar las posibilidades de detección de vulnerabilidades y su posterior explotación. Resulta evidente que no podemos atacar ningún objetivo de manera apropiada si no conocemos nada sobre él.

Hace unos meses me dieron la increíble noticia de que podría formar parte del profesorado del primer Master de bug hunting en España.

El módulo que impartiré será el de Reconocimiento y Enumeración Avanzada aplicado al bug hunting. A finales de año, al igual que otros compañeros que también serán profesores del Master, di una breve charla online a modo de introducción de lo que enseñaré en el curso.
No pude enseñar todo el contenido en tan solo hora y media de directo, así que en este artículo quería comentar más detenidamente la importancia que tiene el reconocimiento y la enumeración en el bug hunting. También compartir el enfoque que daré al temario y sobre todo a la formación de los alumnos, que al final es lo más importante.

Reconocimiento y enumeración avanzada en el Bug Hunting y la importancia de enseñar bien al alumno

Jessica-Perez

Por Jessica Pérez

Bug hunter y tutora del Máster en Bug Hunting del Campus Internacional de Ciberseguridad

En el hacking, y por lo tanto en el bug hunting, el reconocimiento es una fase fundamental para asegurar un buen análisis del objetivo. Al igual que aumentar las posibilidades de detección de vulnerabilidades y su posterior explotación.

Resulta evidente que no podemos atacar ningún objetivo de manera apropiada si no conocemos nada sobre él.

Cuando hablamos de reconocimiento, no solo nos referimos a una simple enumeración de subdominios. En esta fase nos enfocaremos enreconocer toda la superficie de ataque que tenemos delante y, si el scope lo permite, expandiremos esta superficie lo máximo posible. Así aumentaremos nuestras oportunidades de ataque y tomar ventaja frente a otros posibles cazadores que estén en el mismo programa.

Cuando hablamos de reconocimiento, no solo nos referimos a una simple enumeración de subdominios»

En otras palabras, más allá de enumerar subdominios o hacer fuerza bruta, durante la fase de reconocimiento llevaremos a cabo un análisis del objetivo.

Esto lo hacemos para entender qué sistema o aplicación estamos probando y sirve para:

  • La detección de tecnologías utilizadas para el desarrollo y funcionamiento y caracteristicas críticas.
  • La extracción de todos los endpoints, parámetros y peticiones clave.
  • Investigar mediante OSINT posibles URLs y contenidos ocultos.

Primera experiencia en el Bug Hunting

En relación a esto último, para resaltar la importancia de una buena enumeración previa a cualquier ataque, quería compartir con vosotros una de mis primeras experiencias en el bug hunting.

El programa era público, el scope muy cerrado y el objetivo se trataba simplemente de una aplicación web principal importante, nada de subdominios. Cualquiera podría pensar que esa app estaba más que revisada por miles y miles de cazadores.

Mi sorpresa fue cuando comencé a hacer Google dorking, una popular técnica de búsqueda avanzada que utiliza operadores y palabras clave para filtrar información. En el primer resultado encontré una URL muy peculiar.
Cuando accedí a esa página, me encontré nada menos que una versión de prueba de una funcionalidad a medio desarrollar que alguien había dejado ahí expuesta.

Cuando eché un vistazo al código fuente, no podía creer los comentarios que los devs habían dejado en el código. ¡Tenían fecha de 2017!. Alguien había olvidado borrar este código de hace 7 años, y para mi suerte, la funcionalidad utilizaba varios parámetros sin sanitizar para recoger input del usuario.

El resultado; un reflected XSS en la aplicación principal de un programa público. Me pregunté cómo nadie lo había visto antes, si era algo tan simple como hacer un poco de dorking, pero estas cosas pasan más de lo que pensamos.

Es muy importante construir una buena metodología que nos funcione y que además se pueda aplicar con facilidad y de manera eficiente en todos los distintos escenarios»

Reconocimiento y enumeración  avanzada en el Bug Hunting (2)

Como ya hemos comentado, el proceso de reconocimiento, dependiendo de la aplicación objetivo, puede ser breve o extenderse en gran cantidad. Es por eso que investigar y aprender sobre todas las diversas técnicas y herramientas existentes que podemos utilizar en nuestro proceso, según el tipo de scope y aplicación, lleva mucho tiempo. También tendremos que dedicar tiempo y práctica a analizar los distintos escenarios posibles. No utilizaremos las mismas técnicas de enumeración frente a una web puramente estática que frente a una red social.

Aquí es donde nuestra metodología toma protagonismo. Cómo trabajamos, qué herramientas utilizamos, cuándo y por qué. Es muy importante construir una buena metodología que nos funcione y que además se pueda aplicar con facilidad. Todo ello de manera eficiente en todos los distintos escenarios, ya sea desde un rango de IPs hasta un panel de gestión.

Mi objetivo principal es que los alumnospuedan aprender de manera eficiente y más rápido que si estudiasen por su cuenta»

Teniendo esto en mente y pensando en formar a los alumnos de la mejor forma posible. He diseñado un temario acorde a todas las cuestiones necesarias dentro de este módulo de reconocimiento y enumeración avanzada aplicado al bug hunting.

  • Veremos las diferencias entre el reconocimiento pasivo y activo, aprenderemos cuándo aplicar uno y otro. Así como el razonamiento detrás de cada decisión para conseguir un buen análisis.
  • Aprenderemos a utilizar decenas de herramientas para los distintos casos que nos encontremos. También nos habituaremos a filtrar y gestionar los resultados que estas nos den para reconocer posibles riesgos potenciales y actuar en consecuencia.
  • Más adelante podremos automatizar ciertos procesos de enumeración para aliviar la carga de trabajo donde sea necesario.
  • A lo largo de los temas que forman el módulo iremos aplicando las diferentes técnicas según vayamos estudiándolas. Todo ello para que aprendamos a desempeñar estas habilidades con la práctica y no solo quedarnos en la parte teórica.

Es un temario muy completo en el que se aborda todo lo fundamental y más. Sobre todo, está enfocado en la posiblidad de aplicarse en entornos reales, eso es algo que considero indispensable.

Mi objetivo principal es que los alumnos puedan aprender de manera eficiente y más rápido que si estudiasen por su cuenta. Ya que puedo condensar en un temario todo lo que he aprendido en los últimos dos años, pretendo ahorrar tiempo al estudiante y enfocar su esfuerzo en lo importante, de manera que no pierda energías en los vaivenes a los que nos hemos enfrentado los autodidactas.

A la hora de enfrentar esta formación, veo muy importante el huir del modelo sobre-explotado de curso online formado por conceptos copiados y pegados, donde el alumno lee pero no aprende, donde copia pero no aprende, y donde paga pero no obtiene ninguna habilidad a cambio.
Al final del módulo, estoy segura de que el alumno formará una metodología completa para desenvolverse mejor en programas de bug hunting y poder enumerar sin dificultades cualquier entorno real.
Espero que aquellos que tengan ganas de comenzar sus estudios se hayan animado más si cabe a cursar este Master, y agradecer a todos los que vayan a confiar en el profesorado para su formación. Trabajaremos con mucha ilusión para que puedan aprender.

Rellena el formulario para obtener información del Máster en Bug Hunting, el primer máster de esta temática en España.