Antes de ponernos con lo técnico, debemos conocer más sobre el trabajo y las responsabilidades de un pentester a la hora de realizar sus tests de penetración para descubrir vulnerabilidades en un sistema o aplicación del cliente.

¿Qué es el pentesting o los test de penetración?

Es un intento ético de probar y analizar la seguridad y las defensas de un sistema y los activos que lo componen.

Un test de penetración implica usar las mismas herramientas, técnicas y metodologías que usaría un hacker con intenciones maliciosas.

La ética de los test de penetración

Recordemos que el test de penetración es siempre una auditoría autorizada.

La legalidad es clara, todo lo que caiga fuera del ámbito estipulado con el cliente no está autorizado.

Para definir bien eso, hay un acuerdo previo con el cliente donde se establece el ámbito de la penetración.

En algunos países, como Reino Unido, las empresas que realizan estos servicios tienen que regirse por marcos legales y acreditaciones.

La ética es un debate moral entre lo que está bien o mal. Por ejemplo, realizar un ataque de phishing contra un empleado de la empresa puede estar dentro del acuerdo y el ámbito, y por tanto ser legal. Pero éticamente, es cuestionable.

Normalmente, a los hackers se los identifica con 3 sombreros según la ética de sus acciones.

  • Blancos. Los «buenos», que juegan acorde a la ley y cuyas habilidades benefician a todos, por ejemplo, un pentester.
  • Grises. A menudo benefician a otros con sus acciones, pero no respetan o siguen la legalidad o la ética. Por ejemplo, alguien que tumba un sitio de timadores.
  • Negros. Criminales que ofrecen dañar a organizaciones o ganan dinero a costa de otros. Por ejemplo, los atacantes con ransomware.

Reglas de enfrentamiento (Rules of engagement)

Se trata de un documento creado durante el inicio del test de penetración. Consiste en 3 secciones principales y es el que determina cómo se va a realizar el enfrenamiento.

He aquí un buen ejemplo del SANS Institute.

Veamos esas 3 secciones:

  • Permiso: El documento concede permiso explícito para el enfrentamiento. Este permiso es fundamental para proteger legalmente a los individuos y organizaciones en las actividades que llevarán a cabo.
  • Ámbito del test: Aquí se detallan objetivos específicos y establece el ámbito y el alcance. Por ejemplo, realizar la prueba solo para ciertos servidores, pero no para la red completa.
  • Reglas: Define exactamente las técnicas permitidas durante el enfrentamiento. Por ejemplo, se puede establecer que el phishing queda fuera, pero un ataque MITM (Man in the middle) es adecuado.

Metodologías de test de penetración

Estos tienen multitud de objetivos y ámbitos, así que, a causa de esto, no hay dos test que sean iguales y no hay una metodología que sirva siempre para todos.

Los pasos que se realizan en esos test son dicha metodología y deben ser relevantes para la tarea que tengamos enfrente. Por ejemplo, la empleada para probar una aplicación web no es práctica cuando tienes que probar la seguridad de una red.

Antes de ver algunas metodologías estándar, deberíamos tener en cuenta que todas ellas tienen un marco general que sigue estas fases.

Fase Descripción
Reunir información Recolectar tanta información públicamente accesible como se pueda. Se realiza mediante OSINT e investigación y no implica escanear sistemas.
Enumeración / Escaneo Esta fase implica descubrir aplicaciones y servicios que corren en los sistemas. Por ejemplo, encontrando un servidor web que puede ser potencialmente vulnerable.
Explotación Aprovechando las vulnerabilidades descubiertas en el sistema o aplicación. Puede implicar el uso de exploits públicos o explotar la lógica de una aplicación.
Escalada de privilegios Una vez has explotado con éxito un sistema o aplicación, expandes tu acceso al sistema, horizontalmente a usuarios con el mismo privilegio o verticalmente a usuarios con mayores privilegios.
Posexplotación Esta fase tiene subfases. 1. Qué otras máquinas pueden ser objetivo (pivot). 2. Qué información adicional podemos conseguir de la máquina ahora que somos un usuario privilegiado. 3. Cubrir nuestras huellas. 4. Informar.

Veamos metodologías.

OSSTMM

Siglas de The Open Source Security Testing Methodology Manual, esta metodología nos provee de un marco detallado de estrategias de prueba para sistemas, software, aplicaciones, comunicaciones y el aspecto humano de la ciberseguridad.

La metodología se enfoca principalmente en cómo se comunican las aplicaciones, con lo que incluye una para:

  • Telecomunicaciones (teléfonos, VoIP, etc).
  • Redes cableadas.
  • Redes inalámbricas.
Ventajas Disadvantages
Cubre varias estrategias de prueba en profundidad. El marco de trabajo es difícil de entender, muy detallados y tiende a usar definiciones únicas.
Incluye estrategias de prueba para objetivos específicos (p.ej. telecomunicaciones y redes).
Es flexible, dependiendo de la necesidad de las organizaciones.
Pretende establecer un estándar para sistemas y aplicaciones, lo que significa que una metodología universal puede usarse en un escenario de prueba de penetración.

OWASP

El marco de trabajo Open Web Application Security Project se actualiza con frecuencia y se usa para probar la seguridad de aplicaciones web y servicios.

Habitualmente, la fundación realiza informes con el top 10 de vulnerabilidades que puede tener una aplicación, el enfoque de prueba y su mitigación.

Ventajas Desventajas
Fácil de pillar y entender. Puede no estar claro qué tipo de vulnerabilidad tiene una aplicación web (a menudo se solapan).
Mantenida activamente y actualizada con frecuencia. OWASP no realiza sugerencias a ningún ciclo de vida de desarrollo de software.
Cubre todas las fases, desde la prueba hasta los informes y la mitigación. No matienen ninguna acreditación, como CHECK.
Especializada en aplicaciones web y servicios.

NIST Cybersecurity Framework 1.1

La metodología NIST Cybersecurity Framework se usa para mejorar los estándares de ciberseguridad en las organizaciones y gestionar el riesgo de ciberamenazas. Merece mención de honor por su popularidad y detalle.

Provee de líneas base en controles de seguridad y puntos de referencia de éxito para organizaciones con infraestructuras críticas, como centrales de energía.

Ventajas Desventajas
Se calcula que NIST fue usada por el 50% de las organizaciones americanas en 2020. NIST tiene muchas iteraciones, con lo que se hace difícil decidir cuál se aplica a tu organización.
Muy detalladas en establecer estádares que ayudan a las organizaciones a mitigar el peligro de las ciberamenazas. Tiene políticas débiles de auditoría, haciendo difícil determinar cómo ha ocurrido una brecha.
Actualizada de manera frecuente. No considera la computación en la nube, cada vez más popular para las organizaciones.
NIST provee de acreditación para organizaciones que usan su forma de trabajo.
Está diseñada para ser implementada junto con otras estructuras y marcos de trabajo.

NCSC CAF

La Cyber Assessment Framework (CAF) se compone de 14 principios que valoran el riesgo de varias ciberamenazas y las defensas de una organización contra ellas.

Se aplica a organizaciones que realizan actividades y servicios de importancia vital, como bancos, etc. Principalmente se centra en:

  • Seguridad de los datos.
  • Seguridad de los sistemas.
  • Control y acceso de identidad.
  • Resistencia.
  • Monitorización.
  • Respuesta y plan de recuperación.
Ventajas Desventajas
Respaldada por una agencia de ciberseguridad del gobierno. Es nueva y las organizaciones aún no han realizado los cambios necesarios para adaptarse.
Provee acreditación. Basada en principios e ideas, no es tan directa como otras metodologías, que tienen reglas.
Cubre 14 principios que van desde seguridad hasta respuesta.

Respondamos a las preguntas.

¿Qué fase del test de penetración implica usar información disponible públicamente?

Information gathering

Si quisieras usar una metodología para probar la seguridad de telecomunicaciones, ¿cuál usarias? (Acrónimo).

OSSTMM

¿Qué metodología se centrar en aplicaciones web?

OWASP

Test de penetración en Caja Negra, Caja Blanca y Caja Gris

Hay diferentes tipos de pruebas.

Caja Negra

Una prueba de procesos a alto nivel, donde no se le da ninguna información al pentester sobre funcionamiento interno de la aplicación o servicio.

El pentester actúa como un usuario normal, probando la funcionalidad y la interacción con la aplicación.

Aumenta mucho el tiempo durante las fases de recogida de información y enumeración, a fin de entender la superficie de ataque.

Caja Gris

El más popular de los test, es una combinación de cajas blanca y negra, en la que se tiene conocimiento limitado.

Esto ahorra tiempo y normalmente se escoge para superficies de ataque extremadamente blindadas.

Caja Blanca

Un proceso a bajo nivel, que suele realizar un desarrollador que conoce el lenguaje y la lógica de la aplicación.

Probaremos componentes internos de la aplicación, para asegurarnos, por ejemplo, de que funciones específicas funcionan correctamente y a tiempo.

Garantiza que se pueda probar toda la superficie de ataque.

Te piden que pruebes una aplicación, pero no te dan acceso al código fuente, ¿qué clase de prueba es?

Black box

Te piden probar un sitio web y te dan acceso al código fuente, ¿qué clase de prueba es?

White box

Práctica: Test de penetración ACME

En este ejercicio guiado nos piden seguir las fases de un test de penetración en una infraestructura. Desplegamos el sitio y seguimos las instrucciones para conseguir una bandera.

THM{PENTEST_COMPLETE}