Files
pentesting/groke/explotacion.md

5.4 KiB

Análisis Profundo y Explotación - Groke S.A. de C.V.

Objetivo: https://groke.mx / 64.91.245.110 Fecha: 2026-03-25 Analista: Lucy (Consultoría AS) Autorizado por: Propietario

Resumen Ejecutivo

Groke opera DOS sistemas: un sitio Next.js moderno en Vercel (groke.mx público) y una aplicación Laravel legacy en servidor compartido cPanel (64.91.245.110). El servidor legacy tiene múltiples vulnerabilidades: directory listing masivo, assets servidos en HTTP plano, 17 puertos abiertos, software desactualizado, y la estructura completa de la aplicación Laravel expuesta.

Hallazgos de Explotación

E1 - Directory Listing Habilitado en Múltiples Directorios [ALTA]

  • Severidad: ALTA (CVSS 6.5)
  • Directorios con listing:
    • /public/img/ — imágenes del sitio con fechas (2016-2020)
    • /public/img/cranes/ — subdirectorios por modelo de grúa (lc500, lc1100, lc1600, lc2100, lc3000, lcl)
    • /css/ — hojas de estilo
    • /js/ — JavaScript files
    • /build/ — archivos compilados
    • /build/css/ — CSS compilados
    • /build/js/ — JS compilados
  • Impacto: Exposición completa de la estructura del proyecto, archivos y fechas de modificación. Facilita reconocimiento avanzado.

E2 - Aplicación Laravel Legacy Expuesta Sin Protección [ALTA]

  • Severidad: ALTA (CVSS 7.5)
  • URL: http://64.91.245.110/public/
  • Evidencia: HTML completo con créditos del desarrollador (JoshZ / dinkbit)
  • Framework: Laravel con Bootstrap 3.3.6 (obsoleto)
  • Rutas activas: /productos, /contacto, /nosotros, /blog (redirect a Vercel)
  • Impacto: Toda la app legacy es accesible directamente sin que el dominio apunte ahí

E3 - Mixed Content Masivo (HTTP en vez de HTTPS) [ALTA]

  • Severidad: ALTA (CVSS 7.4)
  • Evidencia: 66 referencias HTTP vs 11 HTTPS en la página de productos
  • Assets afectados: jQuery, Modernizr, imágenes, CSS compilados
  • Impacto: Todos los assets se cargan sin cifrar. Un atacante en la misma red (MitM) puede inyectar JavaScript malicioso vía los assets HTTP

E4 - OpenSSH 7.4 con CVEs Conocidos [ALTA]

  • Severidad: ALTA (CVSS 8.1)
  • Versión: OpenSSH 7.4 (diciembre 2016, ~10 años sin actualizar)
  • CVEs relevantes:
    • CVE-2023-38408 (PKCS#11 RCE potencial)
    • CVE-2021-41617 (escalación de privilegios)
    • CVE-2020-15778 (inyección via scp)

E5 - MySQL 3306 Expuesto a Internet [ALTA]

  • Severidad: ALTA (CVSS 7.0)
  • Puerto: 3306 abierto
  • Mitigación parcial: Filtrado por IP ("Host not allowed")
  • Impacto: Si una IP permitida es comprometida o la config cambia, acceso directo a la BD

E6 - 17 Puertos Abiertos en Servidor Compartido [MEDIA]

  • Severidad: MEDIA (CVSS 5.3)
  • Puertos: 21 (FTP), 22 (SSH), 25 (SMTP), 80, 110 (POP3), 143 (IMAP), 443, 465, 587, 993, 995, 2082, 2083, 2086, 2087, 2095, 2096, 3306
  • Impacto: Superficie de ataque excesiva para un sitio web

E7 - cPanel/WHM/Webmail Accesibles Públicamente [MEDIA]

  • Severidad: MEDIA (CVSS 5.3)
  • URLs: Puertos 2082-2096
  • cPanel Login: Accesible con página de login completa
  • Webmail (Roundcube): Login accesible en puerto 2096

E8 - CORS Wildcard [MEDIA]

  • Severidad: MEDIA (CVSS 5.3)
  • Header: access-control-allow-origin: * en sitio Vercel
  • Impacto: Cualquier dominio puede hacer requests cross-origin

E9 - DMARC Sin Enforcement [MEDIA]

  • Severidad: MEDIA (CVSS 5.3)
  • Config: p=none (solo reporta, no bloquea)
  • SPF: softfail (~all)
  • Impacto: Email spoofing desde @groke.mx posible

E10 - POP3/IMAP Sin Cifrar [MEDIA]

  • Severidad: MEDIA (CVSS 4.3)
  • Puertos 110 y 143 abiertos sin TLS obligatorio
  • Impacto: Credenciales de correo pueden interceptarse en texto plano

E11 - Bootstrap 3.3.6 y jQuery Obsoletos [BAJA]

  • Severidad: BAJA (CVSS 3.1)
  • Bootstrap: 3.3.6 (2016, tiene XSS conocidos en tooltip/popover)
  • jQuery: versión no determinada pero cargada via HTTP

E12 - Google Ads/GTM Tracking IDs Expuestos [INFO]

  • GTM: GTM-5K78F7M
  • Google Ads Conversion: 960073428
  • Impacto: Permite análisis competitivo y tracking del rendimiento publicitario

E13 - Catch-All Virtual Host [INFO]

  • Evidencia: Cualquier Host header (admin.groke.mx, erp.groke.mx, etc.) retorna 200 del vhost default de cPanel
  • Impacto: No discrimina por dominio, todo va al mismo servidor

E14 - Emails Corporativos Expuestos [INFO]

  • Emails encontrados: ventas@groke.mx
  • Teléfono: (55) 3618 1111
  • Impacto: Vectores para spearphishing

Limitaciones

  • SMTP puerto 25 no respondió (posiblemente filtrado o down)
  • Laravel debug mode muestra páginas Symfony genéricas sin stack traces detallados
  • No se encontraron rutas de autenticación (login/register) en la app legacy
  • CSRF tokens rotan correctamente por sesión
  • reCAPTCHA cargado en formularios de contacto
  • No se encontró debugbar, telescope, horizon ni nova

Recomendaciones

  1. URGENTE: Deshabilitar directory listing en Apache (Options -Indexes)
  2. URGENTE: Actualizar OpenSSH a versión actual (9.x)
  3. ALTA: Cerrar puertos innecesarios (FTP, POP3, IMAP sin cifrar, MySQL, WHM)
  4. ALTA: Forzar HTTPS en todos los assets (eliminar mixed content)
  5. ALTA: Actualizar Laravel, Bootstrap y jQuery
  6. MEDIA: Configurar DMARC con p=quarantine o p=reject
  7. MEDIA: Restringir acceso a cPanel/WHM por IP
  8. BAJA: Migrar o eliminar la app legacy si ya no se usa activamente