Pentesting - Primeros Pasos

Al momento de pensar en realizar un Pentest dentro de una organización hay que tener presente varias cuestiones. Entre ellas, conocer cuáles son las fases que comprende dicho proceso, decidir si lo que necesita nuestra entidad es un Pentest o un Análisis de Vunerabilidades (de ahora en más lo llamaré VA). Si nuestro Pentest será un BlackBox, GreyBox o WhiteBox.

Primero, empezaré por diferenciar estos colores de cajas. Con respecto al BlackBox se puede definir como un Pentest en el cual disponemos de poca información, en el cual tendremos que ir zurcando nuestro camino al igual que lo haría un atacante real hasta llegar a un objetivo específico.

Por otro lado, si queremos hacer una diferencia con el GreyBox, en este caso tendremos información mínima sobre la Infraestructura y podríamos disponer de un usuario con privilegios mínimos en la aplicación a analizar para ver si es posible el escalamiento de privilegios, entro otras cosas. Por ejemplo, en este caso podríamos ser un usuario descontento de la aplicación.

Por último, cuando hablamos de un Pentest de tipo WhiteBox, nos referimos a que disponemos de un conocimiento completo sobre la Infraestructura Informática, el auditor podrá tener acceso a la configuración de los activos para relevar su configuración o hasta la revisión del código fuente de la aplicación. En este caso, podríamos estar posicionados como un integrante del equipo que conoce de la infraestructura o el código de la aplicación en cuestión.

Una vez analizada rápidamente los distintos colores de la caja, veamos la diferencia principal entre un Pentest y un VA. La principal diferencia está relacionada con que en un VA el auditor va a estar analizando todas las vulnerabilidades disponibles en el objetivo a testear, mientras que en un Pentest podremos explotar aquellas vulnerabilidades que nos permitan llegar a comprometer nuestro objetivo.

Ahora bien, este post está enfocado en dar conocimiento sobre las Fases existentes, con las cuales el analista deberá familiarizarse para inmiscuirse en el proceso del Pentesting. Al finalizar podrán identificar qué fases corresponden a un Pentest y cuáles a un VA.

Fases

Dentro del proceso de un Pentest tendremos diversas fases que deben seguirse y dependerá de la tarea a desarrollarse el tiempo que se le dedique a cada una de estas fases. Entre las mismas nos encontramos con la primera que es la firma del Contrato de Confidencialidad o NDA (Non-Disclosure Agreement) la cual será firmada tanto por el cliente como por nosotros. Para qué? Preguntarás… Paciencia… No te preocupes, en breve estaré especificando cada de las fases, este es el momento de la presentación de cada una de ellas. La siguiente fase se la conoce como Reconocimiento y su fin es precisamente reconocer el campo de batalla. Seguidamente se encuentra la fase de Enumeración, en la cual estaremos haciendo un relevamiento exhaustivo sobre nuestro objetivo. La fase llamada Ganar Acceso será, para los más técnicos, la más entretenida y la que, seguramente, todos los que estén comenzando en esta disciplina estarán ansiosos por poner en práctica. Posteriormente, nos encontramos con la fase conocida como Mantener Acceso, esta es la indicada para utilizar algún tipo de backdoor que nos permita seguir teniendo control de nuestra víctima. Cerrando esta labor técnica nos encontramos con la fase Borrar Rastros, su fin es eliminar los rastros de la intrusión ocasionada. Para finalizar nuestra tarea, requerimos realizar un Informe que explique a nuestro cliente en qué condiciones se encuentra el objetivo víctima planteado.

Llegó el momento de profundizar en cada una de las Fases para una mejor comprensión de las mismas.

NDA

La firma del Contrato de Confidencialidad o también conocido como NDA es esencial en este proceso. El mismo consiste en que se explicite en dicho contrato las labores a realizarse de manera minuciosa, debe estar bien claro cuáles serán las tareas a realizar durante el proceso de Pentesting pactado con el cliente. Debe especificar como será tratada la información Confidencial que vaya recolectándose durante el proyecto.

El fin de este NDA es para dar tranquilidad a ambas partes. Para el cliente será imprescindible, ya que, le dará certeza de cómo serán tratadas las vulnerabilidades encontradas y los datos confidenciales y/o sensibles recolectados. Para nosotros, será de mucha importancia, ya que es un docuento firmado por el responsable de la organización solicitando el servicio evitándonos posibles inconvenientes legales.

Habiendo descripto esta fase meramente burocrática pero no por eso menos importante, pasaré a desarrollar la siguiente fase.

Reconocimiento

Nota mental: No arrancamos ninguna tarea sin haber firmado el NDA!

La fase de Reconocimiento tiene como fin identificar el entorno en el cual se deberá trabajar. El mismo es un reconocimiento pasivo en donde podremos determinar muchas cuestiones que nos facilitarán la siguiente fase. El hecho de que sea un reconocimiento pasivo lo que quiere decir es que no vamos a estar utilizando herramientas invasivas sobre la infraestructura o sistema a analizar. Se buscará información que sea de importancia para el proyecto por medio de redes sociales, buscadores, encabezados de correos electrónicos, registros DNS, navegando los sitios tal como lo haría un usuario estándar, entre otras acciones.

El tiempo a invertir en esta fase dependerá de la tarea a realizar, por lo general se le dedica algunas horas de investigación, salvo que la labor que debamos llevar a cabo esté asociada con Ingeniría Social, en este caso el tiempo invertido será mayor.

Enumeración

A la fase de Enumeración también se la conoce como un reconocimiento activo, en esta fase empezaremos a utilizar herramientas que analizarán nuestro objetivo profundamente. Dependerá de la labor a realizar, ya que, tenemos herramientas para analizar infraestructura, aplicaciones Web, escaneadores de vulnerabilidades, clonadores de sitios web, técnicas para acceder a información de un usuario por medio de correos electrónicos, entre otros.

Ganar Acceso

Y al fin… Llegamos al proceso que todos estaban esperando, el momento de explotar!. Partiendo de las vulnerabilidades descubiertas en la fase anterior, tendremos que dedicarle un tiempo a la investigación de las herramientas y técnicas para explotar las mismas. Una vez encontrado estos exploits, procederemos a explotar las vulnerabilidades. La pregunta es: Es necesario explotar todas las vulnerabilidades que se encuentren en la fase de Enumeración? La realidad es que si quisiéramos explotar todas las vulnerabilidades se debería invertir muchísimo tiempo, el cual, por lo general los clientes no están dispuestos a pagar. Por esto es que deberemos explotar aquellas vulnerabilidades que nos permitan llegar a cumplir con nuestro objetivo. Por ejemplo, si nuestro objetivo es tomar control de la infraestructura informática y dicho entorno dispone de un Active Directory y encontramos 30 vulnerabilidades críticas en toda la infraestructura informática pero una de ellas es de uno de los DC, entonces ya sabemos por dónde comenzar.

Al ser esta una tarea intrusiva, por más que se haga de manera controlada, debe quedarle claro al cliente de las acciones que llevaremos en esta fase y en nuestro NDA firmado es donde se especifica dicha cuestión.

Mantener Acceso

En la fase de Mantener Acceso, el fin es no perder el control de los recursos tomados. Para ello en primera instancia lo que uno suele hacer es migrar de proceso, no vaya a ser cosa de que explotemos alguna vulnerabilidad de alguna herramienta la cual el usuario pueda cerrar y de esta manera quedarnos sin control del activo informático. El siguiente paso sería dejar persistente nuestro acceso, dejando un backdoor en el activo que nos permitirá volver a tomar el control de dicho recurso.

Este es otro de los puntos que debe tener claro nuestro cliente ya que a nadie le gusta que le dejen backdoors en sus sistemas, no olvidemos informar de todos los backdoors que dejemos en los sistemas para que con posterioridad puedan eliminarlos. Calculo que a esta altura no sería necesario indicar dónde tiene que especificarse, no? Por las dudas, el NDA será el lugar indicado.

Borrar Rastros

Borrar rastros es la técnica antiforense que se utilizará en el proceso. Al mejor estilo Ninja, se borrarán todos los rastros que dejemos durante las fases anteriores. Teniendo en cuenta los residuos de los exploits que utilicemos, los logs de los Sistemas Operativos y aplicaciones con las que hayamos trabajado, de forma tal de identificar cuan seguro se guardan las trazas de las acciones realizadas dentro de los sistemas de la Organización.

Generar Informe

Como última fase tenemos la Generación del Informe. El mismo debe tener el contenido adecuado para su destinatarios. Qué quiere decir esto? Tiene que ver con el lenguaje que utilizaremos en cada reporte. Suelen realizarse 2 (dos) informes finales, un Gerencial y uno Técnico.

En el Informe Gerencial debe especificarse las tareas realizadas, una conclusión con respecto a los resultados obtenidos a partir del análisis realizado. Debe ser claro y conciso, tratando de utilizar palabras no técnicas para que pueda ser comprendido por gente del Negocio. Algo que no debe faltar en este informe es el estado de situación del objetivo analizado.

Luego tenemos el Informe Técnico, este último tendrá todo el contenido necesario como para que el área técnica de la Organización comprenda las acciones realizadas durante el proceso, debe indicar las herramientas utilizadas, evidencias y recomendaciones de mejora. No se asusten si en el primer Informe Técnico en una empresa en la cual no ha realizado este tipo de actividades sean cientos de páginas. Es algo normal que a medida que aumenta el Nivel de Madurez de la Organización con respecto a la Seguridad Informática este número de páginas se reduzca drásticamente.

Concluyendo

Bien, hemos pasado por las diferentes Fases de un Pentest. Obviamente, siempre que no hayamos llegado a nuestro cometido podremos iterar entre la fase de Ganar Acceso y la de Enumeración con el fin de ir identificando nuevos horizontes.

Espero haberles llevado un poco de claridad sobre el proceso de un Pentest. En los siguientes posts empezaremos a utilizar técnicas y herramientas utilizadas por los ciberdelincuentes para comprometer la Infraestructuras Informáticas de las Organizaciones.

Escrito por: Javier J. Vallejos Martínez