REVISTA .SEGURIDAD | 1 251 478, 1 251 477 | REVISTA BIMESTRAL

La importancia de las pruebas de penetración Parte II

El presente artículo está constituido por dos partes, la primera ha sido publicada en la edición número 12 de esta revista, el objetivo es brindar al lector un panorama general sobre el concepto y las ventajas de realizar pruebas de penetración, introducirse en cada etapa de realización de auto-evaluaciones y comprender la importancia de la revisión periódica de seguridad.

En esta parte del artículo se analizará el concepto junto con algunas técnicas de escaneo de vulnerabilidades, de explotación y reporte.

Para hablar de las etapas, es necesario tener una concepción clara de lo que son las pruebas de penetración. Son una evaluación de seguridad ejecutada exactamente como lo haría un atacante real, es decir, se descubren vulnerabilidades y se lanzan exploits intentando obtener acceso no autorizado, modificación de paquetes, negación de servicio, etc., llegando hasta el punto más crítico; el objetivo es dar a conocer a la institución o dueño del activo, las consecuencias que podría tener en caso de no contar con las medidas necesarias de seguridad, agregando elementos para la toma de decisiones en la estrategia de seguridad.

revista seguridad informaciónEl escaneo de vulnerabilidades permite identificar debilidades en el sistema evaluado, toma como base los detalles obtenidos durante las fases previas, el objetivo es identificar el método de ataque más efectivo y prever el tipo de información que se obtendrá cuando se explote la vulnerabilidad encontrada. Se debe tomar el mismo enfoque que tomaría un atacante real, ver a la organización como un adversario potencial e intentar causarle el mayor daño posible.

Existen distintos métodos para descubrir vulnerabilidades, así como también existen distintas herramientas automatizadas que pueden ayudar en esta fase. Se mencionan a continuación algunas técnicas que pueden ser utilizadas para descubrir vulnerabilidades:

  1. Verificar la versión de software: Es una de las técnicas más comunes, basta con identificar el número de versión y compararlo con las listas de versiones vulnerables públicas gratuitamente en distintos sitios de seguridad. En este punto, se deben verificar también los parches y upgrades aplicados que podrían eliminar la vulnerabilidad. Aquí podrían ser utilizadas las herramientas libres nmap y amap.
  2. Verificar la versión del protocolo de comunicación: Probablemente la versión de software no contenga vulnerabilidades, pero podría usar algún protocolo de red con problemas de seguridad.
  3. Verificar la configuración: Es necesario analizar los diferentes accesos que se podrían dar, remotos, locales y con distinto tipo de privilegios, no basta solo con analizar si se tiene configuración por default, es necesario revisar si las configuraciones aplicadas por el administrador bastan para evitar problemas de seguridad.
  4. Ejecución de exploits: Se pueden ejecutar exploits sin conocer las vulnerabilidades presentes, tomando como base el prestigio del exploit y la información obtenida durante las fases previas. Esta técnica puede ser peligrosa ya que podría causar daños al sistema, incluyendo negación de servicio. Sin embargo, es posible representar una técnica muy cercana a lo que pasaría en caso de ser sometidos a ataques reales. Para la ejecución de esta técnica existen herramientas como fast-track.py con la opción de autopwn Automated, es una herramienta escrita en python que forma parte de Metasploit y permite lanzar automáticamente gran cantidad de exploits con tan solo indicar la dirección IP (ver Figura 1 y 2).
Figura 1. Menú Fast-Track
 
Figura 2. Opción Autopwn Automation

Por otro lado, existen herramientas automáticas que permiten la identificación de vulnerabilidades, entre las más comunes se pueden mencionar las siguientes:

1. Nessus: es una herramienta con opción comercial y gratuita, tiene como ventajas la creación de distintos perfiles de escaneo (políticas) dependiendo del tipo de evaluación que se requiera y del sitio desde el cual se ejecuten las pruebas. Proporciona un formato gráfico de interacción (ver Figura 3).

Figura 3. Nessus

Nessus genera reportes categorizando las vulnerabilidades encontradas de acuerdo al impacto y asocia un identificador para cada una de ellas que facilita la búsqueda de información relacionada con la explotación (ver Figura 4).

Figura 4. Reporte

Se puede obtener una breve descripción de la vulnerabilidad, una posible solución, referencias y una calificación dada por la calculadora CVSS disponible en http://www.patchadvisor.com/PatchAdvisor/CVSSCalculator.aspx, la cual asigna un valor al impacto tomando en cuenta distintos parámetros (ver Figura 5).

Figura 5. Detalles de vulnerabilidad

2. OpenVas: Es otra opción de software libre que posee flexibilidad en la aplicación de distintos perfiles de evaluación, es una herramienta cliente-servidor, a pesar de no ser tan “amigable” como Nessus, es una buena opción para verificar las vulnerabilidades arrojadas por otras herramientas (ver figura 6).

Figura 6. OpenVas

La variedad de herramientas para detección de vulnerabilidades es muy amplia, algunas con licencia comercial como Core Impact, Saint, Retina o Qualys.

Una vez identificado el método de ataque de mayor viabilidad, es necesario considerar cómo se tendrá acceso al objetivo, es decir, llega la fase de explotación. Es la parte más interesante de la ejecución de pruebas de penetración y la que lo hace diferente a un escaneo de vulnerabilidades, muchas veces llamado incorrectamente “análisis de vulnerabilidades”, donde solo se llega hasta la etapa anterior, solo se localizan las vulnerabilidades sin comprobar si pueden ser explotadas.

Esta etapa dependerá totalmente de los resultados obtenidos en las etapas anteriores, por lo que cada prueba será diferente de acuerdo a los servicios existentes y las vulnerabilidades presentes. En esta etapa se pueden realizar distintas acciones como resultado de la explotación, por mencionar algunas:

  • Copiar archivos hacia el objetivo
  • Copiar archivos desde el objetivo
  • Visualizar tráfico confidencial
  • Reconfigurar el objetivo
  • Instalar software
  • Tomar control total
  • Causar negación de servicio
  • Usar un objetivo para llegar a otro
  • Obtener contraseñas

Existe una vasta cantidad de herramientas para explotar vulnerabilidades, hay sitios donde pueden ser encontrados exploits independientes y existen frameworks completos de ataque, uno de los más útiles e importantes es Metasploit, el cual contiene cientos de exploits aplicables a distintos sistemas operativos, a distintos servicios y a distintas versiones, contiene tres tipos de interfaces que facilitan la ejecución.

Se mostrará un ejemplo de uso de Metasploit como primer punto, es necesario buscar el exploit que se quiere ejecutar, o bien el servicio que está presente en el sistema, en este caso se realizará la búsqueda de smb (ver Figura 7).

Figura 7. Búsqueda de smb

Los resultados arrojan los exploits relacionados con smb (ver figura 8)

Figura 8. Resultados de búsqueda

Se selecciona el siguiente exploit:

auxiliary/dos/Windows/smb/ms09_050_smb2_negotiate_pidhigh el cual afecta a los siguientes sistemas operativos:

  • Windows Vista
  • Windows 7
  • Windows Server 2008 R2

Se selecciona el objetivo con la siguiente instrucción:

set RHOST 192.168.1.71

Se selecciona el puerto:

set RPORT 445

Para comprobar las opciones seleccionadas se ejecuta:

show options

Y finalmente, se ejecuta:

En el otro lado, en el objetivo, se puede observar una falla en el sistema.

El ejemplo mostrado anteriormente solo es una pequeña parte de lo que un pentester realiza al comprobar vulnerabilidades, existen otras herramientas para explotación, algunas comerciales y algunas libres, es necesario hacer una combinación entre las distintas herramientas. Por otro lado, en algunos casos no existe el exploit para comprobar determinadas vulnerabilidades, por lo que es necesario generarlo, para lo cual también existen distintas herramientas y frameworks, incluyendo nuevamente Metasploit.

La etapa final y la más importante, es la creación del reporte de hallazgos, ya que es en esta fase donde se comunica qué se hizo, cómo se hizo y cómo la organización puede eliminar las vulnerabilidades detectadas durante el análisis, por lo que es de gran importancia generar reportes con la mayor calidad posible.

El formato de un reporte puede ser muy variable, pero a continuación se muestran algunos puntos que deben ser presentados:

  • Tabla de contenido
  • Resumen ejecutivo
  • Metodología utilizada
  • Hallazgos ordenados de acuerdo al impacto
  • Evidencia detallada incluyendo screenshots del hallazgo

Es recomendable presentar la evidencia de manera jerárquica, ya que tomando como hecho que todas las vulnerabilidades deben ser eliminadas, existen algunas que pueden representar mayor impacto a la organización, por lo que es prioritaria la solución inmediata.

Es posible creer que el reporte no es importante cuando se realiza un pentest interno, pero es necesario tener una bitácora que almacene el historial del los problemas de seguridad que se han tenido, esto podría ayudar a resolver problemas en el futuro.

Para concluir, es necesario decir que la tarea de un pentester no es fácil, pero es determinante para una buena estrategia de seguridad, por lo que es recomendable realizar evaluaciones internas y periódicamente (1 o 2 veces por año) solicitar servicios profesionales.

 

Referencias:

[1] Mati Aharoni. Et Al. Metasploit. The Penetration tester’s Guide. EUA. No starch press. 2011.

[2] SANS. Security 560. Network Penetration Testing and Ethical Hacking. 2009.

[3] Allen Harper. Et Al. Grey Hat Hacking. The Ethical Hacker’s Handbook. EUA. Mc. Graw Hill. 2011.

UNAM

[ CONTACTO ]

Se prohíbe la reproducción total o parcial
de los artículos sin la autorización por escrito de los autores

 

Hecho en México, Universidad Nacional Autónoma de México (UNAM) © Todos los derechos reservados 2017.