En 1967, los expertos en seguridad informática de la Rand Corporation, Willis Ware, Rein Turn, Harold Petersen y Benard Peters, trabajaron en un informe tras una conferencia conjunta sobre informática que declaraba que los medios de comunicación entre ordenadores eran fácilmente perforables.

Se acuñó la primera penetración de la historia para violar la seguridad informática. Y con ella, James P. Anderson desarrolló un enfoque paso a paso que constituyó la base de las pruebas de penetración.

La estructura era sencilla; los equipos de seguridad pasaban por varias etapas, desde la detección de una vulnerabilidad hasta el desarrollo de formas de contrarrestarla. He aquí una breve historia de las pruebas de penetración.

Explotar la seguridad de una empresa no es fácil y requiere habilidad y tiempo. Pero con la tecnología actual, es fácil para los malos actores encontrar los puntos vulnerables de su organización. Las penetraciones se dirigen a los activos de una empresa visibles en Internet (por ejemplo, una aplicación web, el sitio web, los servidores de nombres de dominio (DNS) y los correos electrónicos) para obtener acceso y extraer datos valiosos.

Mediante las pruebas de penetración, su empresa puede identificar y fortificar la posible superficie de los ataques antes de su explotación. La investigación lo avala: Un enorme 73% de las infracciones con éxito se han producido a través de la penetración en aplicaciones web a partir de sus vulnerabilidades.

Pero más que nunca, las organizaciones necesitan validar la seguridad de sus aplicaciones, sistemas y redes. Lanzar pruebas simuladas es una forma eficaz de ratificar la solidez de la seguridad y las medidas de control de un sistema. No se trata de una actividad puntual, sino periódica. La frecuencia de las pruebas se basa en la estructura organizativa de su empresa y en los riesgos desvelados a partir de las evaluaciones.

Afortunadamente, las pruebas de penetración no son complicadas. Si dota a sus equipos informáticos de las habilidades necesarias, su organización podrá aplicar la seguridad de forma coherente, especialmente en las actualizaciones importantes de la infraestructura o en la introducción de nuevos servicios y activos digitales.

Y todo empieza por comprender en qué consiste el proceso.

¿Qué son las pruebas de penetración?

YouTube video

Antes de sumergirnos en el cómo, lo mejor sería responder al qué y al por qué. Las pruebas de penetración (a menudo abreviadas como pen tests) son un ciberataque oficialmente aceptado y dirigido a las empresas en un entorno seguro y controlado.

Mezcladas dentro de las auditorías de seguridad, las pruebas de penetración se esfuerzan por descubrir vulnerabilidades bajo un ámbito controlado del entorno de la organización. Tácticamente, las pruebas adoptan un enfoque similar al que sigue un pirata informático. Algunas de las principales razones por las que su empresa necesita pen tests incluyen:

  • Descubrir vulnerabilidades ocultas antes que los atacantes.
  • Reforzar los procesos y estrategias de seguridad.
  • Disminuir los costes de reparación y reducir el tiempo de permanencia.
  • Adherirse al cumplimiento normativo en torno a la seguridad/privacidad.
  • Preservar la reputación de su marca y mantener la fidelidad de sus clientes.

Las pruebas de penetración examinan la salud de su empresa (resistencia a los ataques) y demuestran la facilidad con la que los piratas informáticos penetran en sus sistemas. Además, la información recopilada puede ser útil para jerarquizar las inversiones en ciberseguridad, seguir las normas del sector y mejorar las estrategias defensivas para salvaguardar a su empresa de probables amenazas. Pero, todo esto es posible a través de herramientas de pruebas automatizadas llamadas herramientas de penetración.

¿Qué son las herramientas de pruebas de penetración?

YouTube video

Un hacker ético utiliza herramientas de pen test para evaluar la resistencia de la infraestructura informática mediante la simulación de ataques mundiales. Mediante el uso de estas herramientas, los equipos de seguridad pueden eliminar el trabajo repetitivo de las pruebas, generar informes de pruebas más rápidamente y reducir el coste de múltiples escáneres.

Como habrá adivinado, existen numerosos tipos: de código abierto, para aplicaciones web, de red, para aplicaciones móviles, en la nube, manuales, automatizadas y de pruebas de penetración como servicio. Abundantes como son, lo mejor sería buscar características clave como informes procesables, integración CI/CD, soporte de remediación y certificados de pruebas de penetración (sólo unos pocos ofrecerán certificados de pruebas de penetración disponibles públicamente).

Con esa base, vamos a desglosar el proceso de pruebas de penetración.

Etapas de las pruebas de penetración

En una prueba de penetración típica, encontrará varias etapas. Aunque diferentes recursos le proporcionarán el proceso en diferentes etapas, la estructura general no cambia. El proceso implica el reconocimiento, la exploración, la evaluación de las vulnerabilidades, la explotación y la elaboración de informes.

Una vez más, los mejores probadores se familiarizan con muchas herramientas para utilizar la adecuada en cada fase de la prueba. Cada hito del proceso puede percibirse de la siguiente manera.

Recopilación de información

Information-Gathering

A menudo omitida, esta fase ayuda a su organización a establecer una base común con el pen tester. En esta fase, usted está definiendo el alcance del trabajo, las reglas de compromiso, los plazos y la logística precisa con metas y objetivos claros.

Para realizar un pen test completo y útil, esta etapa le ayuda a comprender las áreas que necesitan pruebas y los mejores métodos. Como paso inicial, siempre será conveniente no pasarlo por alto.

Antes de probar un sistema, la organización debe dar su consentimiento al probador. De lo contrario, sus acciones pueden considerarse ilegales. Las organizaciones establecen reglas claras (en un contrato) para que el flujo de trabajo sea fluido cuando se contrata a los probadores. El acuerdo también debe describir los activos críticos, los objetivos de las pruebas y las precauciones. Además, este paso influye en todas las acciones posteriores. Al final, todos los planes están alineados con los resultados esperados de las pruebas.

Recopilación de reconocimiento/OSINT

En esta fase, los encargados de las pruebas recopilan toda la información disponible sobre el sistema. Los datos adquiridos se vinculan a las pruebas venideras y se basan en los resultados del primer paso. De este modo, los encargados de las pruebas precisan los datos que deben recopilar y las estrategias que deben aplicar. Si opta por un reconocimiento activo, el encargado de las pruebas interviene directamente en los sistemas. Si opta por el pasivo, se obtiene la información disponible públicamente. Para uno exhaustivo, utilice ambas técnicas.

La obtención activa de datos implica trabajar con redes, sistemas operativos, cuentas de usuario, nombres de dominio, servidores de correo y aplicaciones. La recopilación de datos pasiva se basa en la inteligencia de fuente abierta; se pueden utilizar las redes sociales, la información fiscal, los sitios web y otros datos públicos.

He aquí algunas herramientas de inteligencia de código abierto (OSINT) que mis colegas y yo hemos encontrado útiles y fáciles de utilizar a la hora de recopilar y relacionar información en la web. Utilizando el marco OSINT, puede crear una extensa lista de comprobación de puntos de entrada y vulnerabilidades. Aunque este paso es clave para las pruebas de penetración internas y externas, no se realiza en las aplicaciones web, las aplicaciones móviles y las pruebas de API.

Escaneado

image-1

Una revisión técnica en profundidad del sistema es el siguiente paso. A través de herramientas de escaneado como los escáneres de vulnerabilidades automatizados y los mapeadores de red, puede comprender cómo reacciona el sistema objetivo ante diversas intrusiones, puertos abiertos, tráfico de red, etc.

Los principales componentes de esta etapa son el escaneado y el análisis de activos. Puede utilizar herramientas como Nmap para descubrir servicios informáticos y hosts, enviar paquetes y analizar las respuestas. Al final de esta etapa, estará equipado con información sobre los activos. Esto incluye sistemas operativos, servicios en ejecución y puertos abiertos.

Analizando los resultados, tiene la base para trazar un exploit. Puede trazar el panorama digital del sistema y localizar posibles puntos de ataque. Puede realizar análisis estáticos y dinámicos para obtener una comprensión clara de la respuesta del sistema a diferentes condiciones.

El análisis estático inspecciona el código de sus aplicaciones mientras aún no se han ejecutado; puede utilizar herramientas para escanear bases de código sin problemas. En el caso del dinámico, inspeccionará el código mientras se ejecuta la aplicación. Recuerde que la información recopilada aquí debe ser precisa y obtenida correctamente, ya que de ella depende el éxito de las fases posteriores.

Evaluación/Ganancia de acceso

En este punto, todos los datos recopilados en los pasos anteriores ayudan a determinar las vulnerabilidades y si pueden explotarse. Si bien esta etapa es útil, es superpoderosa cuando se combina en cascada con otros procesos de pruebas de penetración.

Para evaluar los riesgos asociados de las vulnerabilidades descubiertas, los encargados de las pruebas recurren a múltiples recursos; uno de ellos es la Base de Datos Nacional de Vulnerabilidades (NVD), que analiza las susceptibilidades del software publicadas en Vulnerabilidades y Exposiciones Comunes (CVE).

A continuación, se identifican los objetivos y se mapean los vectores de ataque. Las áreas objetivo incluyen activos de alto valor como datos de empleados, información de clientes, socios/cadenas de suministro, proveedores, puertos, aplicaciones y protocolos. Se lanzan ataques a aplicaciones web.

Los más comunes son la inyección SQL, el cross-site scripting y las puertas traseras. Se explota el sistema escalando privilegios, interceptando el tráfico y robando datos para revelar los efectos dañinos. Siguiendo el alcance definido en las etapas de recopilación de información, el probador se afana en trabajar con las restricciones especificadas.

Explotación

También conocida como etapa de mantenimiento del acceso, el probador comprueba si se pueden utilizar las vulnerabilidades. Esta fase implica una violación real y un ensayo para acceder al sistema. Utilizando herramientas como Metasploit, el probador simula un ataque del mundo real.

A medida que avanza esta fase, el probador se responsabiliza de los recursos de una organización, asegurándose de que los sistemas no se vean comprometidos tras las simulaciones.

Se prefiere Metasploit por su buen funcionamiento a la hora de explotar vulnerabilidades. En esta etapa se calibran los efectos de una brecha. El probador podría intentar cifrar o exfiltrar datos y simular ataques de ransomware y de día cero. La clave para que una prueba de penetración tenga éxito es lograr un equilibrio entre la superación de los límites y el mantenimiento de la integridad de un sistema.

Lo mejor es trabajar con expertos, que explotan las vulnerabilidades que se escapan a la automatización. Al final de esta fase, habrá intentado obtener privilegios de alto nivel en el sistema e información de la red identificando los datos disponibles. El hacker ético también debe explicar los resultados de las explotaciones de objetivos de alto valor.

Análisis de riesgos y recomendación, revisión, elaboración de informes

Risk-Analysis-and-Recommendation-Review-Reporting

Superada la fase de explotación, el probador genera un informe que documenta los hallazgos. El informe debe utilizarse a la hora de solucionar las vulnerabilidades descubiertas.

Un buen informe de pen test es un repositorio de vulnerabilidades bien documentadas y puestas en contenido que ayuda a una organización a remediar los riesgos de seguridad. Pero el mejor será exhaustivo sobre todas las vulnerabilidades descubiertas y sus puntuaciones CVVS, resúmenes de riesgos técnicos, posible impacto en el negocio, cobertura detallada de la dificultad de explotación y consejos tácticos.

Además, los informes deberán documentar todas las fases, los modelos de prueba, las técnicas utilizadas y los activos objetivo. Si es posible, el probador tendrá una opinión sobre si la prueba satisface las necesidades del marco aplicable. En conclusión, lo mejor es entregar el informe con una explicación general y una guía técnica.

Después de elaborar y presentar los informes, la limpieza del sistema es crucial. Se trata de revertir el sistema a como estaba antes de la prueba restaurar la modificación a los valores predeterminados. Las actividades de limpieza implican retirar todos los ejecutables, archivos temporales y scripts de los sistemas comprometidos, eliminar las cuentas de usuario creadas para conectarse al sistema comprometido y abolir los rootkits en el entorno.

Remediación

Como último de los pasos, la remediación queda en manos de la organización. Guiada por los informes y hallazgos de las pruebas de penetración, la organización se centra en las vulnerabilidades, analizando los impactos potenciales, informando la toma de decisiones para avanzar e influyendo en las estrategias de rectificación.

Dado que esta fase se completa mejorando los errores del pasado, la rectificación de todas las vulnerabilidades explotables se limita a un tiempo razonable. En ocasiones, esta fase puede prolongarse durante un tiempo para repetir las pruebas sobre las actualizaciones realizadas o promulgar pruebas diferentes.

Aplicación práctica de las Pen Tests: Una guía paso a paso

Para este ejemplo, hemos optado por utilizar el framework Metasploit. Puede crear su flujo de trabajo personalizado; aquí tiene uno típico para ponerse en marcha. Comience por instalar el framework.

Si está en Linux/macOS, utilice el comando

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
  chmod 755 msfinstall && \
  ./msfinstall

Si está en Windows, utilice el último instalador de Windows. O utilice el comando Shell

[CmdletBinding()]
Param(
    $DownloadURL = "https://windows.metasploit.com/metasploitframework-latest.msi",
    $DownloadLocation = "$env:APPDATA/Metasploit",
    $InstallLocation = "C:\Tools",
    $LogLocation = "$DownloadLocation/install.log"
)

If(! (Prueba-Ruta $LocalizaciónDescarga) ){
    Nuevo-elemento -Ruta $LugarDescarga -TipoDirectorio
}

Si(! (Prueba-Ruta $LugarInstalación) ){
    Nuevo elemento -Ruta $LugarInstalación -TipoArtículo Directorio
}

$Instalador = "$LocalizaciónDescarga/metasploit.msi"

Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile $Installer

& $Installer /q /log $LogLocation INSTALLLOCATION="$InstallLocation"

Y entonces..

Inicie un proyecto – Este será su almacén de datos y espacio de trabajo. Dado que puede tener diferentes requisitos para varias subredes en su organización, organizar su trabajo mejorará su eficiencia. Por ejemplo, si tiene un pen test para los equipos de TI y de recursos humanos, querrá generar resultados separados.

create new project
Fuente de la imagen – MetaSploit

Obtenga datos de los objetivos – Aquí, está añadiendo datos a su proyecto a través de un escaneo de descubrimiento o importando datos existentes. Escanee objetivos para enumerar los puertos abiertos y ver los servicios de una red. Utilice la opción de escaneo. A continuación, introduzca las direcciones IP sobre las que desea trabajar, cada una en una sola línea. También puede utilizar la opción de importación para importar datos desde un archivo local.

get target data
Fuente de la imagen – MetaSploit

Ver/Gestionar los datos del host – Puede echar un vistazo a los datos desde el nivel del host o del proyecto. Puede alternar entre cada IP para tener una vista única del host.

image-45
Fuente de la imagen – MetaSploit

Escanear Vulnerabilidades – Lance un escaneo de vulnerabilidades a través de las opciones de Nexpose. Este paso aprovecha las bases de datos de vulnerabilidades para comprobar si se encuentra alguna.

Explotar vulnerabilidades – Puede explotar vulnerabilidades a través de un asistente de validación sin fisuras. Alternativamente, el Nexpose seguirá funcionando.

Post Exploit Activity – Recopile datos del exploit a través de la pestaña de sesión; haga clic en«recopilar«.

image-46
Fuente de la imagen – MetaSploit

Limpiar – Cuando termine de recopilar datos, utilice la opción«limpiar» para finalizar la sesión y limpiar el sistema.

Generar informes – Al final de la prueba de penetración, Metasploit le proporciona una serie de informes que son un punto de partida para la consolidación de datos y la compilación de resultados.

En la Guía de inicio rápido de Metasploit encontrará una guía de inicio rápido detallada sobre las pruebas de penetración.

Herramientas comunes de Pen Test

Algunas herramientas comunes incluyen Sn1per, Metasploit y Commix.

#1. Sn1per

Sn1per es una herramienta de investigación de vulnerabilidades que valida el impacto de los ataques del lado del cliente en instancias de hackeo. Puede utilizarla para simular ataques remotos y del lado del usuario en un entorno controlado. Sn1per tiene 6k estrellas de GitHub. También actúa como medio de comunicación sobre la herramienta. Con Sn1per, puede ahorrar tiempo automatizando herramientas comerciales y de código abierto para enumerar vulnerabilidades.

#2. Metasploit

Metasploit es un gigantesco marco de pen test desarrollado por la unidad del conocimiento compartido entre comunidades de código abierto. Tiene 31,2k estrellas en GitHub, lo que indica un gran interés en el mundo del software. Metasploit está respaldado por una colaboración de entusiastas de la seguridad cuyo objetivo es abordar las vulnerabilidades y mejorar la concienciación sobre la seguridad.

#3. Commix

Commix es una gran herramienta de explotación de inyección de comandos en sistemas operativos. Aunque Commix se especializa en vulnerabilidades de inyección de comandos, es fácil de usar, libre y de código abierto, compatible con varias plataformas, portátil y modularizada. Tiene 4k estrellas GitHub. Es gratuito y de código abierto.

Palabras finales

Desglosar las etapas de las pruebas de penetración es esencial para que las empresas mejoren la resistencia de sus productos digitales ante el aumento de los ciberataques. A medida que los ciberdelincuentes eluden las soluciones de seguridad tradicionales, simular ataques del mundo real mediante pruebas de penetración es una forma eficaz de navegar por el panorama de las ciberamenazas en constante evolución.

Al adaptar la prueba de penetración a las necesidades específicas de su organización, puede garantizar la eficacia de las políticas de seguridad. Recorrer todas las etapas de la prueba de penetración le garantiza obtener el mejor rendimiento de sus inversiones en ciberseguridad.

Para realizar una prueba de penetración con éxito, sea inteligente al respecto. Comience por adquirir información sobre la prueba. Construya sobre esa información hasta el nivel de reconocimiento. Un buen punto de partida para su reconocimiento es definir los objetivos de alcance a los que debe dirigirse en el sistema que se va a comprobar.

A continuación, escanee el sistema para conocerlo en profundidad e identificar las vulnerabilidades. Proceda a lanzar un ataque procurando no dañar el sistema. A continuación, genere informes útiles que guíen las acciones correctoras. Recuerde limpiar y restaurar el sistema a su estado original.

Cuando se utilizan correctamente, las pruebas de penetración mejoran la postura de seguridad de su organización al identificar y corregir las vulnerabilidades. A medida que muchas organizaciones migran a la nube y adoptan nuevas tecnologías, las pruebas de penetración se están volviendo fundamentales en el ámbito de la seguridad de la información. De hecho, el 75% de las empresas utilizan pruebas de penetración para examinar la postura de seguridad. O por razones de cumplimiento. Si puede prestar la debida atención y tratar cada fase de la prueba de forma independiente, siempre encontrará el valor de realizar pruebas de penetración.

A continuación, consulte las herramientas gratuitas de pruebas de penetración en línea (Pentest ) para comprobar la seguridad de las aplicaciones.