paint-brush
Pruebas de penetración y escaneo de vulnerabilidadespor@morpheuslord
2,710 lecturas
2,710 lecturas

Pruebas de penetración y escaneo de vulnerabilidades

por Morpheuslord13m2024/01/26
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Sumérgete en el ámbito de la ciberseguridad con nuestra exploración en profundidad de escaneo de vulnerabilidades y pruebas de penetración. Descubra los matices, los problemas de seguridad y las herramientas involucradas, centrándose en Trinkets.io como plataforma líder. Navegue por el panorama dinámico de las ciberamenazas con conocimientos de expertos, desmitificando las complejidades tanto para especialistas como para principiantes. Descubra la importancia de aprovechar los datos y el análisis para abordar los desafíos de ciberseguridad. Únase a nosotros en el viaje hacia un futuro digital seguro con trinkets.io como su aliado. Manténgase informado, manténgase seguro.
featured image - Pruebas de penetración y escaneo de vulnerabilidades
Morpheuslord HackerNoon profile picture
0-item
1-item
2-item
3-item
4-item


En este artículo, exploraré los dominios del escaneo de vulnerabilidades y las pruebas de penetración, destacando las sutiles diferencias y similitudes entre las distintas etapas y procesos involucrados en cada paso. También analizaré más de cerca algunas herramientas al final que se centran en la automatización de la tarea. Para hacer las cosas simples y educativas, desglosaré los pasos fundamentales de una evaluación de vulnerabilidad y pentest. ¡Empecemos!

Tabla de contenidos

  • ¿Qué son las pruebas de penetración?
    • Planificación y reconocimiento
    • Exploración
    • Explotación y obtención de acceso
    • Mantener el acceso
    • Informe y Control
  • ¿Qué es el análisis de vulnerabilidades?
  • Herramientas de pruebas de penetración.
  • Automatización de pruebas de penetración.
  • Desarrollo de flujo de trabajo de automatización de Pentesting
  • Automatización con soluciones de código abierto

¿Qué son las pruebas de penetración?

Pruebas de penetración, también conocido como pentesting , es un proceso que implica identificar y resolver vulnerabilidades de seguridad simulando a un hacker amigable. Es un enfoque sistemático que comienza con la planificación y recopilación de información y, según el objetivo, concluye informando los hallazgos o garantizando el acceso continuo. Este es un procedimiento estándar que ayuda a mejorar la seguridad del entorno digital de una organización. Las siguientes son las etapas involucradas:


Descripción general del proceso Pentest


Planificación y reconocimiento

Durante la fase de planificación, es fundamental obtener toda la información relevante sobre el objetivo, incluidos detalles sobre la tecnología que utiliza y sus datos en caso de un ataque de phishing. Esta información juega un papel vital en la determinación de las herramientas, técnicas y otros detalles que darán forma a todo el proceso.


El siguiente paso es una encuesta, que implica recopilar la mayoría de los datos esenciales. Hay dos enfoques básicos para el reconocimiento: activo y pasivo. Si bien ambos métodos logran el mismo objetivo, el reconocimiento activo es más asertivo y tiene más probabilidades de hacerse notar. Por el contrario, el reconocimiento pasivo recopila información de forma indirecta y es más encubierto y difícil de identificar. Cada método tiene un tiempo de funcionamiento diferente; los métodos pasivos a veces son más complejos y requieren más tiempo, mientras que los métodos activos son más rápidos pero menos detallados.

Exploración

El proceso de escaneo es similar a realizar una investigación exhaustiva. El objetivo principal es profundizar en el objetivo y recopilar información valiosa. Es similar a examinar un montón desordenado de cosas para encontrar las gemas escondidas.


Nuestro objetivo es obtener información crucial que nos permita entrar en el sistema con la mínima sospecha. Utilizamos varios escaneos que se adaptan a la tarea en cuestión. Por ejemplo, cuando trabajamos con una aplicación web, buscamos vulnerabilidades como potencial CSRF y puntos finales XSS. Examinamos puntos de acceso, investigamos servicios que se ejecutan en puertos y determinamos la presencia de firewalls o WAF en una red. Las opciones disponibles para escanear son numerosas y variadas.


Fase de escaneo y sus diversos tipos internos.


Explotación y obtención de acceso

Una vez que un pirata informático descubre una vulnerabilidad que puede explotarse, puede llevar poco tiempo lanzar un ataque a gran escala. Explotar una vulnerabilidad implica obtener acceso no autorizado al sistema de la víctima. Los atacantes deben ser cautelosos y evitar el contacto directo con el sistema objetivo para evitar ser atrapados.

Existen múltiples escenarios de acceso ilegal, pero los más comunes son las ejecuciones remotas de código (RCE) y las puertas traseras. Las vulnerabilidades de RCE son problemas centrales que permiten entradas o salidas no deseadas y, en ocasiones, manipulación de la lógica del código. Los RCE son el tipo de vulnerabilidad más peligroso y, a menudo, ofrecen una gran recompensa. Las puertas traseras vienen en dos tipos: personalizadas y mal configuradas. Las puertas traseras personalizadas implican engañar al objetivo para que descargue un archivo malicioso, mientras que las puertas traseras mal configuradas implican acceder a un portal de desarrollador.

Mantener el acceso

Analicemos el concepto de preservar el acceso con más detalle. Considere tener una clave de respaldo almacenada en un lugar seguro en caso de que su clave principal se pierda o necesite tomar un descanso inesperado. Este acceso de respaldo no solo sirve como medida de precaución, sino que también le permite navegar por el mundo digital sin esfuerzo. Tener acceso a información esencial en todo momento es otro beneficio. Por lo tanto, mantener el acceso es como tener un compañero confiable con usted en su viaje digital, asegurando que esté siempre preparado para cualquier situación que pueda surgir.


En el caso de la máquina de la víctima, el acceso a la copia de seguridad es como una clave de copia de seguridad robada. El hacker puede acceder fácilmente al espacio personal o profesional de la víctima cuando quiera, sin ser detectado si va a lo seguro.

Reportar y controlar

Como hacker ético, crear un informe es crucial para su trabajo. En el informe debes explicar cada paso que has dado, los problemas que has descubierto, los exploits que has utilizado, los activos que están en riesgo y los resultados que has obtenido. Aunque el informe puede ser una tarea desalentadora, la información que contiene es valiosa. Saber qué activos están en riesgo puede ayudar a la empresa a priorizar la prevención de ataques para proteger la infraestructura de manera efectiva.


Sin embargo, el proceso de pruebas de penetración no es tan complicado como parece al principio. Implica principalmente comprender las implicaciones de las pruebas. Los piratas informáticos generalmente comprenden bien este concepto, pero algunos se especializan en tareas específicas dentro del proceso.


¿Qué es el análisis de vulnerabilidades?

Ahora discutiremos escaneo de vulnerabilidades , un segmento del proceso de prueba de penetración. Esta fase se incluye en la fase de escaneo e implica revisar una gran lista de problemas y configuraciones incorrectas. El proceso de evaluación de vulnerabilidades tiene como objetivo analizar una gran cantidad de datos e investigar vulnerabilidades y errores de ingeniería inversa que causan las vulnerabilidades. Las bases de datos en línea como exploit-db tienen listados de exploits para CVE a los que se hace referencia con frecuencia. Estas bases de datos proporcionan información como código PoC relacionado con exploits y otros detalles relevantes.


La evaluación de la vulnerabilidad requiere invertir mucho tiempo y esfuerzo. El objetivo aquí es encontrar un exploit, y cuanto más precisa sea la explotación, mejor será la comprensión de la información. Por ejemplo, si tiene una tarea relacionada con el análisis de CSP, puede descubrir que existe una política de CSP para proteger la aplicación web de posibles ataques XSS. Sin embargo, incluso si el comodín está presente, no podrá explotarlo sin conocer los puntos finales vulnerables. Si no hay puntos finales posibles o accesibles para XSS en el sitio web, ¿cómo lo explotará? En tales escenarios, es necesaria una comprensión más profunda de la situación.

Por lo tanto, el escaneo y la evaluación de vulnerabilidades es una tarea crucial pero que requiere mucho tiempo y requiere una comprensión profunda de la interrelación entre diferentes piezas de información.


Herramientas de prueba de penetración

Con el tiempo, las herramientas de pruebas de penetración han experimentado una evolución significativa que ha reflejado el panorama en constante cambio de las amenazas a la ciberseguridad. Las primeras herramientas eran frecuentemente simples y tenían una gama limitada de usos. Sin embargo, las herramientas de prueba de penetración se han convertido en soluciones sólidas e integrales en respuesta a la creciente sofisticación de las amenazas cibernéticas. Estas herramientas brindan a las organizaciones una comprensión profunda de su postura de seguridad al simular ciberataques reales además de identificar vulnerabilidades.


Se han logrado avances notables en las herramientas de evaluación de vulnerabilidad. Las herramientas modernas utilizan tecnologías de vanguardia como la inteligencia artificial y el aprendizaje automático para mejorar su capacidad de reconocer y clasificar vulnerabilidades. Para mantener estas herramientas actualizadas con las amenazas y vulnerabilidades cibernéticas más recientes, la integración de fuentes de inteligencia sobre amenazas se ha convertido en una característica estándar. Además, las interfaces de usuario intuitivas han aumentado la accesibilidad de estas herramientas para una gama más amplia de profesionales de la seguridad.


Los marcos de explotación, ejemplificados por plataformas ampliamente utilizadas como Metasploit, también han experimentado un desarrollo significativo. Estos marcos ahora ofrecen una experiencia más fácil de usar, lo que permite a los expertos en seguridad automatizar el proceso de explotación de manera eficiente. Los marcos han evolucionado para soportar una gama más amplia de vulnerabilidades y se han convertido en componentes esenciales de los arsenales de los probadores de penetración. La integración con fuentes de inteligencia sobre amenazas ha mejorado aún más la precisión y eficacia de los intentos de explotación.

Automatización de pruebas de penetración.

La automatización de los procesos de pruebas de penetración ha transformado la eficacia y eficiencia de las evaluaciones de seguridad. La automatización acelera las pruebas, lo que permite a las empresas realizar evaluaciones de seguridad más frecuentes y profundas. Las plataformas de orquestación se han convertido en elementos esenciales, ofreciendo un marco centralizado para gestionar todo el ciclo de vida de las pruebas de penetración. Con la ayuda de estas plataformas, los equipos de seguridad pueden optimizar el uso de recursos y acortar los tiempos de evaluación al automatizar tareas repetitivas como el escaneo de vulnerabilidades y la ejecución de exploits.


Un avance notable en la automatización es lo bien que se integra con los procesos de DevOps. Las herramientas de pruebas de penetración están evolucionando para adaptarse perfectamente a los flujos de trabajo de DevOps a medida que más empresas las adoptan para una entrega de software continua y más rápida. La seguridad es un componente crucial del ciclo de vida del desarrollo de software porque la automatización garantiza la incorporación de pruebas de seguridad en diferentes fases del proceso de desarrollo.


La automatización también se aplica a los entornos de nube, donde se crean o modifican instrumentos para evaluar la seguridad de la infraestructura de la nube. Con la popularidad de la informática sin servidor, han surgido nuevos desafíos. Para proporcionar evaluaciones de seguridad exhaustivas para arquitecturas sin servidor, las herramientas automatizadas están abordando estos desafíos.


En resumen, el desarrollo de herramientas de pruebas de penetración y la incorporación de la automatización en los flujos de trabajo representan una reacción dinámica a la naturaleza cambiante del panorama de amenazas. Con

Con herramientas cada vez más avanzadas y eficaces disponibles, los profesionales de la seguridad ahora pueden superar a los ciberadversarios y mejorar la postura general de seguridad de una organización. El esfuerzo constante por salvaguardar datos confidenciales y activos digitales dependerá en gran medida de los avances continuos de estas herramientas a medida que avanza la tecnología.

Desarrollo de flujo de trabajo de automatización de Pentesting

Hay varias cuestiones a considerar al crear un sistema de automatización basado en flujo de trabajo para pruebas de penetración. Definir claramente los objetivos y evaluar los procedimientos actuales son los primeros pasos para identificar áreas que están listas para la automatización. Seleccionar las herramientas adecuadas es esencial, ya que requiere un equilibrio entre adaptabilidad, potencial de integración y opciones de personalización.


Un paso crucial en el proceso es diseñar la secuencia del flujo de trabajo, que requiere un flujo lógico de tareas desde el reconocimiento hasta la presentación de informes. Se garantiza que el proceso de desarrollo y las pruebas de seguridad funcionarán juntos a la perfección cuando se integran las prácticas de DevOps. Además, tener en cuenta los entornos híbridos y de nube requiere ajustes a las dificultades particulares que presentan estos entornos.


Las pruebas periódicas y el monitoreo continuo son elementos esenciales que requieren medidas proactivas para identificar y neutralizar rápidamente nuevas amenazas. Para que el equipo de seguridad comprenda y utilice el sistema de forma eficaz, es necesaria una documentación exhaustiva del flujo de trabajo automatizado y formación.


Imagine una situación en la que se asigna a un experto en seguridad la tarea de probar una aplicación web en busca de vulnerabilidades. El objetivo es encontrar posibles debilidades en la infraestructura web de la aplicación. Este ejemplo se concentra en la enumeración de aplicaciones web, el primer paso en el proceso de prueba de penetración.


El siguiente paso es utilizar Nmap para escanear la red en busca de puertos abiertos y servicios de servidor web. Comprender la superficie de ataque y los posibles puntos de entrada requiere conocer esta información. Nmap utiliza la salida de Sublist3r para dirigir un escaneo específico que se concentra en los subdominios encontrados. Después del escaneo de la red, la atención se centra en el escaneo de aplicaciones web. Herramientas como Burp Suite se utilizan para encontrar vulnerabilidades comunes como inyección SQL y secuencias de comandos entre sitios. La configuración de Burp Suite se basa en los resultados del análisis de la red, lo que garantiza una evaluación específica y eficaz.


El proceso incluye la enumeración de directorios y archivos utilizando Dirb para perfeccionar aún más el análisis. Utilizando los datos de escaneo de la aplicación web como guía, este paso busca recursos ocultos en el servidor web. La configuración de Nikto, un programa para un análisis de vulnerabilidad más exhaustivo, está influenciada por los hallazgos de Dirb. Nikto proporciona un informe completo sobre posibles riesgos de seguridad al escanear el servidor web en busca de vulnerabilidades conocidas, configuraciones incorrectas y versiones de software desactualizadas.


La fluida integración del flujo de trabajo de estas herramientas demuestra cuán interconectadas están. La enumeración de aplicaciones web se facilita mediante un proceso simplificado en el que el resultado de una herramienta influye en la configuración de otra. Para interpretar resultados, modificar configuraciones y detectar posibles puntos de explotación, la experiencia de un profesional de seguridad es crucial para el éxito del flujo de trabajo. El flujo de trabajo debe mejorarse continuamente para mantenerse al día con las amenazas cambiantes y preservar la postura de seguridad de la aplicación web a lo largo del tiempo. Crear y gestionar estos flujos de trabajo requiere una atención constante a los detalles y el conocimiento del panorama de ciberseguridad que cambia rápidamente.


Descripción general del flujo de trabajo para el desarrollo


Pero es fundamental reconocer cuán complicado y desafiante es este proceso. La complejidad de crear y gestionar un flujo de trabajo de automatización sólido aumenta a medida que las empresas intentan mantenerse a la vanguardia del panorama en constante cambio de las amenazas cibernéticas. Los desafíos inherentes a la automatización de las pruebas de penetración se atribuyen a la naturaleza dinámica de los entornos de TI, la diversidad de los requisitos de prueba y el panorama de amenazas en constante evolución. Se necesita un compromiso constante, desarrollo de habilidades y una comprensión sofisticada de los requisitos de seguridad únicos de la empresa para afrontar esta complejidad. Crear un flujo de trabajo de pruebas de penetración automatizado que funcione bien y sea flexible es una tarea difícil que requiere atención constante a los detalles y experiencia para mantenerse a la vanguardia de la curva de ciberseguridad.


Automatización con soluciones de código abierto

El desarrollo de flujos de trabajo con herramientas que se integren fácilmente en ellos es crucial en el campo en constante cambio de la ciberseguridad. Existen múltiples soluciones que se pueden encontrar para desarrollar un código totalmente automatizado que funcione para todas las posibilidades, y la otra forma más sencilla es utilizar una solución ya preparada. Explicaré ambas soluciones.


Codificar el sistema

Discutiremos los pasos sobre cómo podemos codificar esto porque solo conozco el proceso, no todo. Depende principalmente de lo que quieras automatizar. Hay varias cosas que puedes automatizar en ciberseguridad, principalmente en pruebas de penetración. Si está construyendo desde cero, no es factible construir un sistema completo desde cero usted solo. Si desea hacerlo, consiga un grupo de programadores y otras personas y comience una empresa para eso. El mejor curso de acción aquí es crear múltiples scripts que funcionen según el mismo principio pero realicen tareas diferentes.


En la programación de dicha automatización, debemos considerar algunas cosas:

  • La complejidad : la cantidad de herramientas utilizadas y los pasos que sigue una herramienta para completar la tarea. Por ejemplo, digamos que estoy escaneando un sitio web y uso 3 herramientas para este trabajo: Amass, Nmap y DnsDumpster. Los tres se pueden utilizar para la enumeración de aplicaciones web. Veremos cómo se conectan en un momento.
  • El Tiempo: El Tiempo que lleva esta integración es mucho. Desarrollar cualquier cosa desde cero requiere tiempo para desarrollarlo y revisarlo. En este caso, el tiempo invertido se reduce a la investigación. Principalmente cómo se pueden integrar los diferentes componentes o herramientas, digamos que quiero integrar Nmap con Nikto y Wpscan. ¿Qué estoy buscando en Nmap que pueda ayudarme mejor en la optimización y como actualización?
  • La codificación: hay algunas cosas a considerar al codificar esto y son principalmente el manejo de los datos sin procesar de salida. Según su investigación y sus requisitos, puede utilizar expresiones regulares para extraer los datos necesarios como la URL, IP, puerto, etc. Esto es importante ya que así es como conectará todo este mapa.


Entonces, en base a eso, supongamos que voy a recopilar direcciones de subdominio, extraer las direcciones IP y luego hacer un análisis de vulnerabilidad basado en script usando Nmap. Y así es como se ve:


Flujo de trabajo de código de ejemplo


Entonces, en la imagen de arriba, he mostrado cómo podemos interconectar tres herramientas. Sé que no tiene sentido usar DnsDumpster en el medio, pero es sólo una referencia. Así es como podemos integrarlo. Al menos una de las formas en que podemos hacer esto es agregar más herramientas y todas las demás sofisticaciones y optimizaciones y hacerlo más complejo, pero mantengámoslo simple.


Imagina ahora el potencial que surge al crear tus procesos de seguridad desde cero con énfasis en la automatización y la eficiencia. Necesita algunas herramientas básicas antes de poder emprender ese viaje. Python es un poderoso aliado para las secuencias de comandos y la automatización, con muchos paquetes que encajan bien con el proceso de desarrollo del flujo de trabajo. Sublist3r es bastante útil para enumerar cada subdominio. Aproveche las capacidades de Nmap para escanear en red. Utilice Burp Suite para mejorar el escaneo de aplicaciones web, Dirb para enumerar directorios y archivos y Nikto para realizar análisis de vulnerabilidad en profundidad. Combinadas, estas herramientas proporcionan un flujo de trabajo sólido y eficiente para pruebas de penetración.


Pero la aventura no termina sólo con las herramientas. Explore los paquetes de Python para integración continua e implementación continua (CI/CD) en GitHub para incorporar elementos colaborativos. El uso de herramientas como GitHub Actions, GitLab CI o Jenkins para configurar un proceso de integración y prueba continuo garantiza que su flujo de trabajo sea efectivo y se actualice y pruebe periódicamente. Su solución de automatización de seguridad gana sofisticación adicional a partir de esta integración con procesos CI/CD, garantizando su flexibilidad frente a las cambiantes amenazas de ciberseguridad.


Utilice un sistema existente.

Entonces, para aquellos que no pueden codificar el sistema o son demasiado vagos para hacerlo y desean una solución fácil, los respaldaré. Tengo una lista de herramientas que pueden automatizar la tarea para ustedes. Las herramientas que se enumeran a continuación son así: las herramientas de código abierto se centran en ciertos aspectos del proceso y no en todo el proceso. Ahora, vayamos a la lista de herramientas. Los enlaces para las herramientas de código abierto se mencionan en las fuentes:

  • Rayder: esta es una herramienta que es una aplicación de flujo de trabajo simplificada para ejecutar mapeos de orquestación complicados. Esta herramienta utiliza YAML para asignar diferentes comandos y herramientas para ejecutar tareas de reconocimiento. Esta herramienta nos permite mencionar cómo se deben ejecutar los comandos, guardar y ubicar las salidas.
  • MetaHub: MetaHub es un marco de contextualización que ayuda a automatizar la compilación y contextualización de todos los activos en función de los entornos y los requisitos básicos. Esta herramienta es para operaciones relacionadas con la nube y AWS, y no se centra en ninguna de las tareas habituales.
  • Vortex: esta herramienta es la automatización para múltiples tareas, incluido el reconocimiento, la enumeración y, finalmente, la explotación. Es una herramienta increíblemente buena y hay que probarla.
  • Osmedeus: Este es un marco enorme y cubre casi todos los requisitos para crear un buen marco de enumeración y reconocimiento para la automatización. Esta herramienta escanea repositorios, dominios y distribuciones en la nube de git. Entonces sí, esto es enorme, rápido y confiable.


Estas fueron las cuatro opciones gratuitas que encontré que valía la pena compartir con todos ustedes. Compartiré los enlaces a cada uno de ellos a continuación. Puedes consultarlos si estás interesado. Si también desea probar algunas herramientas de automatización más que se me ocurrieron, puede consultar mis repositorios de GitHub y, si le gustan, darles una estrella o unirse a las discusiones para brindar sus puntos de vista e ideas.


Esta fue mi opinión sobre la automatización de las pruebas de penetración, ya sea programándolas o utilizando soluciones existentes. Nuestro objetivo final es piratear los sistemas de una forma u otra.

Fuente