Pruebas de penetración para principiantes: 5 herramientas para empezar

Realizar pruebas de penetración es una tarea compleja, involucra un proceso en donde se realizan distintos tipos de tareas que identifican, en una infraestructura objetivo, las vulnerabilidades que podrían explotarse y los daños que podría causar un atacante. En otras palabras, se realiza un proceso de hacking ético para identificar qué incidentes podrían ocurrir antes de que sucedan y, posteriormente, reparar o mejorar el sistema, de tal forma que se eviten estos ataques.

Para realizar una prueba de penetración de forma profesional, es necesario sumar a los conocimientos de hacking ético, otros aspectos fundamentales como: programación, metodologías, documentación, entre otros. No obstante, esos aprendizajes suelen venir una vez que se conocen y se saben utilizar muchas herramientas que son parte del proceso de penetration testing.

Lo que verás a continuación, es una pequeña guía de “por dónde empezar” para aquellos principiantes que deseen introducirse en el mundo del hacking ético y de las pruebas de penetración. Estas son, a mi criterio, las primeras herramientas que deberás conocer, no solo para comenzar a prepararte para realizar esta tarea, sino para empezar a comprenderla.

1. NMAP

Imagen 1. Salida tradicional de ejecución de Nmap (nmap.org)

En un proceso completo de pruebas de penetración, existen instancias previas a ejecutar esta herramienta pero, para dar los primeros pasos, probablemente sea la mejor forma de comenzar. Nmap es una herramienta de escaneo de redes que permite identificar qué servicios se están ejecutando en un dispositivo remoto, así como la identificación de equipos activos, sistemas operativos en el equipo remoto, existencia de filtros o firewalls, entre otros.

En palabras sencillas, cuando se va a atacar un servidor o dispositivo, el atacante podrá realizar distintas arremetidas en función del servicio: no es lo mismo dañar un servidor web, un servidor de base de datos o un router perimetral. Por lo tanto, en cualquier despliegue, el primer paso será identificar los servicios en la infraestructura, para decidir cómo avanzar y, considerando que en una prueba de penetración se “imitan” los pasos de un atacante, también se iniciará de la misma manera.

Nmap es una herramienta de línea de comandos (existen algunas interfaces gráficas pero, personalmente, no las recomiendo, aunque es una cuestión de gustos) donde se debe indicar cuál será el o los objetivos y la serie de parámetros que afectarán la forma en que se ejecuten las pruebas y los resultados que se obtienen. Puede instalarse tanto en Linux, Windows, Mac u otros sistemas operativos.

En su forma tradicional, una línea de comando sería la siguiente:

> nmap 172.16.1.1

En donde nmap es el comando en sí mismo y 172.16.1.1 es el objetivo (que también puede ser indicado con un nombre de dominio). La respuesta a estos comandos será un listado de los puertos abiertos o cerrados en dicha dirección. La ejecución sin parámetros ejecuta un escaneo sencillo a los 1000 puertos más comunes (véase que en la imagen se muestra uno abierto y 999 cerrados), realizando anteriormente un ping para ver si el equipo está vivo (si el equipo no responde al ping, no se realizará el test de los puertos).

Cuando agregas parámetros puedes obtener mejores resultados. Algunos parámetros comunes para tener en cuenta son:

  • [-iL] puedes indicar una lista de equipos o redes a escanear > nmap –iL hosts.txt
  • [-sP] solo escanea con un ping. Es una buena forma de ver cuántas direcciones IP se pueden checar. Una vez que se tienen enlistadas, se podrá ir solo con las que están vivas.
  • [-P0] es la forma de omitir el ping e ir directo al escaneo de puertos. Muchos sistemas no responden el ping como método de seguridad, por lo que, escanearlos de todas formas, también puede ser útil en entornos más reales (no es necesario para los entornos de aprendizaje inicial).
  • [-p] lista los puertos que se desean escanear > nmap –iL hosts.txt –p 22,25,80,445
  • [-sV] intenta determinar la versión del servicio en el objetivo.
  • [-O] informa el sistema operativo en el objetivo.

Una vez ejecutado Nmap, ya se conocen cuáles son los servicios (al menos los identificados) que se están ejecutando en el blanco de la prueba de penetración. Ahora ya se puede pasar a las siguientes etapas, en donde se utilizará esta información para comenzar la búsqueda de vulnerabilidades en la infraestructura y en los servicios identificados.

Ficha técnica

  • Herramienta: Nmap
  • Sitio web: http://nmap.org/
  • Cómo empezar: instalarlo, ejecutar un comando sencillo hacia una dirección IP y luego probar agregando parámetros (nmap –help puede brindar más información) o ejecutar para múltiples direcciones IP (que deben ser indicadas en un archivo TXT).
  • Más información: Recomiendo este artículo con 30 comandos para ver y analizar las diferencias en las respuestas. También está el libro oficial para explotar al máximo la funcionalidad de Nmap, escrito por su creador, Gordon “Fyodor” Lyon.

2. NESSUS

Una vez que se tienen identificados los servicios que se están ejecutando, se puede comenzar el uso de las herramientas que sirven para identificar vulnerabilidades en los servicios. En este campo, la mejor herramienta para introducirse en este mundo es Nessus, otra aplicación gratuita (solo para uso hogareño, suficiente para los fines de este artículo; en el caso de fines profesionales es necesario usar la versión de pago) que, por su base de datos y su facilidad de uso, es la preferida en este aspecto.

Aunque posee una línea de comandos, considero que su interfaz gráfica, muy completa e intuitiva, es una forma sencilla de comenzar a probar esta herramienta.

Nessus posee una extensa base de datos de vulnerabilidades conocidas en distintos servicios y, por cada una de éstas, posee plugins que se ejecutan para identificar si la vulnerabilidad existe (o no) en determinado equipo objetivo. En resumen, al ejecutarse Nessus sin parámetros específicos, se probarán miles de vulnerabilidades y se obtendrá como resultado un listado de las vulnerabilidades que fueron identificadas.

La lógica de Nessus es similar a Nmap: hay que indicar el objetivo, en este caso la o las direcciones IP y los parámetros. Estos permiten limitar el campo de búsqueda, especialmente si en una etapa anterior se identificaron los servicios: no tiene sentido buscar vulnerabilidades conocidas en Linux en un equipo que tiene instalado Windows.

Imagen 2. Sección de configuraciones generales de exploración de Nessus (tenable.com)

Ficha técnica

  • Herramienta: Nessus
  • Sitio web: http://www.tenable.com/products/nessus/
  • Cómo empezar: Si tienes Windows, instalarlo ahí por interfaz gráfica es muy sencillo, funciona para conocerlo por primera vez. Recomiendo buscar el listado de plugins y ejecutar pruebas limitando solo a determinados servicios.
  • Más información: Un listado completo de plugins está disponible en el sitio web, la lectura de las descripciones es muy útil para aprender más sobre vulnerabilidades en diversas plataformas (http://www.tenable.com/plugins/index.php?view=all).

Seguir leyendo el artículo en la Revista de Seguridad IT de la UNAM N° 18

Sebastián Bortnik
Gerente de Educación y Servicios

Autor , ESET

Síguenos