Procedimiento de Auditoria Web (Pentesting)

 



1. Fase de Reconocimiento (Information Gathering)

Objetivo: Recopilar información sobre el objetivo sin interactuar directamente con el sistema.

Técnicas:

  • Reconocimiento Pasivo:

    • WHOIS Lookup: Utiliza servicios como whois.domaintools.com para obtener detalles del registro del dominio, como el nombre del propietario, direcciones de correo, fechas de creación y expiración del dominio.
    • DNS Enumeration: Usa herramientas como nslookup o dig para obtener información sobre los servidores DNS asociados con el dominio.
    • Google Dorking: Usa búsquedas avanzadas en Google para encontrar información oculta en la web. Por ejemplo, site:tu-dominio.com para buscar páginas indexadas.
    • Fingerprinting: Utiliza herramientas como Wappalyzer o BuiltWith para identificar las tecnologías utilizadas en la web (servidor web, frameworks, CMS, etc.).
  • Reconocimiento Activo:

    • Port Scanning: Usa Nmap para escanear los puertos abiertos en el servidor web. Esto te ayuda a identificar servicios activos. Comando básico: nmap -sS -Pn tu-dominio.com
    • Service Enumeration: Una vez que identifiques los puertos abiertos, usa Nmap o Netcat para obtener más detalles sobre los servicios y versiones en esos puertos. Comando: nmap -sV -p80,443 tu-dominio.com

2. Análisis de Vulnerabilidades

Objetivo: Identificar vulnerabilidades en la aplicación web.

Técnicas:

  • Escaneo Automático:

    • OWASP ZAP: Es una herramienta gratuita que te permite escanear tu aplicación en busca de vulnerabilidades comunes. Puedes configurarla para que automáticamente explore y ataque la web.
    • Nikto: Es una herramienta de escaneo que revisa la configuración del servidor web y busca archivos y scripts potencialmente peligrosos. Comando básico: nikto -h tu-dominio.com
    • Burp Suite: Es una herramienta más avanzada que te permite interceptar y modificar el tráfico HTTP, así como realizar escaneos automáticos y manuales. Hay una versión gratuita y una paga.
  • Análisis Manual:

    • Revisión del Código Fuente: Si tienes acceso al código, revisa manualmente buscando malas prácticas de seguridad (por ejemplo, entrada de usuario no validada).
    • Inspección de Formularios: Prueba manualmente ingresando diferentes tipos de datos en los formularios para ver cómo la aplicación maneja la entrada. Por ejemplo, intenta ingresar código HTML o JavaScript en los campos de texto.

3. Explotación de Vulnerabilidades

Objetivo: Probar si las vulnerabilidades identificadas pueden ser explotadas.

Técnicas:

  • Inyección SQL:

    • Usa herramientas como SQLMap para automatizar los ataques de inyección SQL. Comando básico: sqlmap -u "http://tu-dominio.com/product?id=1" --batch
    • Manualmente, intenta agregar comillas simples o comentarios en los parámetros de la URL o formularios (' OR '1'='1).
  • Cross-Site Scripting (XSS):

    • Intenta inyectar código JavaScript en formularios o URLs. Por ejemplo, <script>alert('XSS')</script>. Si el script se ejecuta, la aplicación es vulnerable.
    • Usa herramientas como XSSer para automatizar este proceso.
  • CSRF (Cross-Site Request Forgery):

    • Crea formularios maliciosos que intenten realizar acciones en la web en nombre del usuario autenticado. Por ejemplo:
      html

      <form action="http://tu-dominio.com/change-password" method="POST"> <input type="hidden" name="password" value="newpassword"> <input type="submit" value="Submit"> </form>
  • Directory Traversal:

    • Intenta acceder a directorios y archivos fuera del directorio web raíz. Por ejemplo, accediendo a http://tu-dominio.com/../../etc/passwd si el servidor es Unix/Linux.

4. Post-Explotación

Objetivo: Evaluar el impacto de las vulnerabilidades explotadas.

Técnicas:

  • Escalación de Privilegios:

    • Si lograste acceso inicial, intenta explotar otras vulnerabilidades para obtener mayores privilegios en el sistema. Por ejemplo, encontrar archivos de configuración con credenciales de administrador.
  • Extracción de Datos:

    • Si accedes a la base de datos, intenta extraer datos sensibles como información de usuarios, contraseñas, etc.
  • Creación de Puertas Traseras:

    • Intenta cargar un script malicioso que te permita acceder al sistema en el futuro, como un web shell.

5. Reporte y Mitigación

Objetivo: Documentar y mitigar las vulnerabilidades encontradas.

Procedimientos:

  • Documentación Detallada:

    • Registra todas las vulnerabilidades, cómo las encontraste y cómo pueden ser explotadas. Incluye capturas de pantalla y pasos detallados.
  • Recomendaciones de Seguridad:

    • Provee recomendaciones específicas para cada vulnerabilidad. Por ejemplo, para inyecciones SQL, recomienda usar consultas preparadas.
  • Informe Final:

    • Crea un informe final que incluya un resumen ejecutivo (para no técnicos) y detalles técnicos (para el equipo de desarrollo).

Prácticas y Ética en el Pentesting

  • Obtener Permisos: Siempre obtén permisos explícitos antes de realizar pruebas.
  • No Interrumpir Servicios: Asegúrate de no causar interrupciones al servicio mientras realizas pruebas.
  • Confidencialidad: Mantén la confidencialidad de toda la información que encuentres.
  • Responsabilidad: Actúa de manera ética y profesional.

Herramientas Adicionales

  • Wireshark: Para analizar el tráfico de red y detectar posibles vulnerabilidades en la comunicación.
  • Nessus: Para un escaneo completo de vulnerabilidades en redes.
  • OpenVAS: Otra opción gratuita para escaneo de vulnerabilidades.

Espero que esta guía más detallada y simplificada te ayude a comprender mejor cómo realizar un pentesting y a practicar de manera efectiva.