[[hack_roadmap-0|Up]] ====== Pruebas de Penetración en Aplicaciones Web ====== Las pruebas de penetración en aplicaciones web, también conocidas como pentesting web, son esenciales para identificar y mitigar vulnerabilidades en aplicaciones web. Este proceso involucra una serie de pasos para evaluar la seguridad de la aplicación desde la perspectiva de un atacante. ===== Introducción a las Pruebas de Penetración en Aplicaciones Web ===== ==== Conceptos Clave: ==== * **Aplicaciones Web:** Programas accesibles a través de un navegador web que interactúan con servidores web. * **Vulnerabilidades:** Debilidades en el código o configuración que pueden ser explotadas. * **Metodologías:** Marcos y guías que estructuran el proceso de pruebas. ==== Recursos: ==== * [[https://owasp.org/www-project-web-security-testing-guide/|OWASP Web Security Testing Guide (WSTG)]] * [[https://owasp.org/www-project-top-ten/|OWASP Top Ten]] ===== Preparación y Reconocimiento ===== ==== Definición del Alcance: ==== * Establecer los límites y objetivos de las pruebas. * Identificar las aplicaciones y servicios web que serán evaluados. ==== Recopilación de Información: ==== * **Pasiva:** Recopilar información sin interactuar directamente con la aplicación (ej., WHOIS, DNS, búsqueda en motores de búsqueda). * **Activa:** Interactuar directamente con la aplicación para obtener información detallada (ej., análisis de las respuestas HTTP, identificación de tecnologías utilizadas). ==== Herramientas de Recopilación: ==== * **WHOIS:** Consultar información de registro de dominios. * **Nslookup/Dig:** Consultar registros DNS. * **WhatWeb:** Identificar tecnologías utilizadas en la aplicación web. * **BuiltWith:** Herramienta en línea para identificar tecnologías web. ==== Recursos: ==== * [[https://github.com/urbanadventurer/WhatWeb|WhatWeb Documentation]] * [[https://builtwith.com/|BuiltWith Website]] ===== Escaneo y Enumeración ===== ==== Escaneo de Vulnerabilidades: ==== * Utilizar herramientas automatizadas para identificar vulnerabilidades conocidas en la aplicación web. * Herramientas: **Nikto**, **OpenVAS**, **Nessus** nikto -h ==== Enumeración de Directorios y Archivos: ==== * Identificar directorios y archivos ocultos o no documentados que pueden ser explotados. * Herramientas: **DirBuster**, **Gobuster** gobuster dir -u -w ==== Análisis de Seguridad de SSL/TLS: ==== * Verificar la configuración de SSL/TLS para identificar debilidades en la implementación. * Herramientas: **SSL Labs SSL Test**, **testssl.sh** testssl.sh ==== Recursos: ==== * [[https://cirt.net/Nikto2|Nikto Documentation]] * [[https://github.com/OJ/gobuster|Gobuster GitHub]] ===== Identificación y Explotación de Vulnerabilidades ===== ==== Vulnerabilidades Comunes: ==== * **Inyección SQL (SQLi):** Permite a un atacante manipular las consultas SQL realizadas por la aplicación. * **Cross-Site Scripting (XSS):** Permite a un atacante inyectar scripts maliciosos en páginas vistas por otros usuarios. * **Cross-Site Request Forgery (CSRF):** Permite a un atacante realizar acciones en nombre de otro usuario. * **Inyección de Comandos:** Permite a un atacante ejecutar comandos del sistema en el servidor. ==== Explotación de Vulnerabilidades: ==== * Utilizar herramientas y técnicas para explotar vulnerabilidades identificadas. * Herramientas: **SQLMap** (SQLi), **Burp Suite** (XSS, CSRF), **Commix** (Inyección de Comandos) ==== Ejemplos de Uso: ==== * **SQLMap:** sqlmap -u --batch --dbs * **Burp Suite (para XSS):** * Interceptar la solicitud y modificar los parámetros para inyectar scripts. * Utilizar la herramienta de repetición para probar diferentes cargas útiles. * **Commix:** commix --url= --data="" ==== Recursos: ==== * [[http://sqlmap.org/|SQLMap Official Website]] * [[https://github.com/commixproject/commix|Commix GitHub]] ===== Post-Explotación ===== ==== Mantener el Acceso: ==== * Establecer persistencia en la aplicación comprometida para mantener el acceso. * Herramientas: **Web Shells**, **Metasploit** ==== Elevación de Privilegios: ==== * Aumentar los privilegios del atacante dentro de la aplicación o el servidor. * Técnicas: **Bypassing Authentication**, **Exploit Development** ==== Recopilación de Información: ==== * Extraer información sensible y crítica del sistema comprometido. * Herramientas: **Mimikatz** (si se ha comprometido el servidor subyacente) ==== Recursos: ==== * [[https://www.offensive-security.com/metasploit-unleashed/|Metasploit Unleashed]] ===== Análisis y Reporte de Resultados ===== ==== Documentación de Hallazgos: ==== Describir detalladamente las vulnerabilidades encontradas, incluyendo cómo fueron explotadas y el impacto potencial. ==== Recomendaciones: ==== Proporcionar recomendaciones específicas para mitigar cada vulnerabilidad identificada. ==== Presentación del Informe: ==== Crear un informe claro y conciso para los stakeholders, incluyendo resumen ejecutivo, detalles técnicos y pasos para la remediación. ==== Recursos: ==== * [[https://github.com/0x4D31/pentest_report|Sample Penetration Testing Report]] ===== Conclusión ===== Las pruebas de penetración en aplicaciones web son cruciales para identificar y mitigar vulnerabilidades que podrían ser explotadas por atacantes. Al seguir una metodología estructurada y utilizar herramientas adecuadas, los pentesters pueden descubrir debilidades en la seguridad de las aplicaciones web y ayudar a mejorar la postura de seguridad general de una organización. Dominar estas técnicas es esencial para cualquier profesional en el campo de la seguridad informática y el hacking ético. ===== Recursos Adicionales ===== * [[https://owasp.org/www-project-top-ten/|OWASP Top 10]] (OWASP)