# Reconocimiento y Análisis - Groke S.A. de C.V. **Objetivo:** https://groke.mx **Fecha:** 2026-03-25 **Analista:** Lucy (Consultoría AS) ## Resumen Ejecutivo Groke opera DOS sistemas separados: un sitio Next.js en Vercel (groke.mx) y una aplicación Laravel legacy en un servidor compartido (64.91.245.110). El servidor real tiene **17 puertos abiertos**, Laravel en modo debug, MySQL expuesto externamente, y software severamente desactualizado. ## Infraestructura ### Sitio Público (Vercel) - **IP:** 76.76.21.21 (Vercel CDN) - **Tecnología:** Next.js (React), styled-components 6.0.8 - **Build ID:** hGl4UbLpSWqj5I_F5iXrP - **SSL:** Let's Encrypt R12 (válido hasta 2026-05-26) - **Dominio relacionado:** groke.ca → redirige a groke.mx (307) ### Servidor Real (64.91.245.110) - **Hosting:** sitiosmctech.com.mx (hosting compartido) - **WHM hostname:** host2.sitiosmctech.com.mx - **OS/Server:** Apache (Linux) - **Framework:** Laravel (versión legacy, posiblemente 4.x/5.x basado en estilo Symfony de errores) - **SSH:** OpenSSH 7.4 (lanzado 2016-12-19) - **FTP:** Pure-FTPd con TLS ### DNS - **MX:** mail.groke.mx → 64.91.245.110 - **NS:** ns1/ns2.sitiosmctech.com.mx - **SPF:** `v=spf1 +a +mx +ip4:64.91.245.110 ~all` (softfail) - **DKIM:** Configurado (selector: default, RSA 2048-bit) - **DMARC:** `v=DMARC1; p=none; rua=mailto:errores@groke.mx` (NO enforcement) ### Subdominios Descubiertos | Subdominio | IP | Servicio | |---|---|---| | www.groke.mx | Vercel (CNAME) | Sitio público | | mail.groke.mx | 64.91.245.110 | Servidor de correo | | ftp.groke.mx | 64.91.245.110 | FTP | | cpanel.groke.mx | 64.91.245.110 | Panel de control | | webmail.groke.mx | 64.91.245.110 | Webmail | ### Puertos Abiertos (64.91.245.110) | Puerto | Servicio | Notas | |---|---|---| | 21 | FTP (Pure-FTPd) | TLS habilitado, no anónimo | | 22 | SSH (OpenSSH 7.4) | **Versión obsoleta (2016)** | | 25 | SMTP | Correo saliente | | 80 | HTTP (Apache) | Laravel app | | 110 | POP3 | Sin cifrar | | 143 | IMAP | Sin cifrar | | 443 | HTTPS | Webmail | | 465 | SMTPS | SMTP cifrado | | 587 | Submission | SMTP auth | | 993 | IMAPS | IMAP cifrado | | 995 | POP3S | POP3 cifrado | | 2082 | cPanel (HTTP) | Panel de control | | 2083 | cPanel (HTTPS) | Panel de control | | 2086 | WHM (HTTP) | Admin hosting | | 2087 | WHM (HTTPS) | Admin hosting | | 2095 | Webmail (HTTP) | Roundcube | | 2096 | Webmail (HTTPS) | Roundcube | | **3306** | **MySQL** | **EXPUESTO externamente** | ## Hallazgos ### C1 - Laravel Debug Mode Habilitado [ALTA] - **Evidencia:** Rutas inexistentes muestran página de error Symfony/Whoops con stack trace - **URL:** `http://64.91.245.110/api/nonexistent` (Host: groke.mx) - **Impacto:** Expone estructura interna de archivos, rutas del framework, y potencialmente variables de entorno - **CVSS:** 7.5 ### C2 - MySQL Puerto 3306 Expuesto a Internet [ALTA] - **Evidencia:** Puerto abierto, responde con banner MySQL - **Mitigación parcial:** Filtrado por IP ("Host '201.142.168.178' is not allowed to connect") - **Impacto:** Si se compromete una IP permitida o se cambia la configuración, acceso directo a la BD - **CVSS:** 7.0 ### C3 - OpenSSH 7.4 Obsoleto [ALTA] - **Versión:** OpenSSH 7.4 (diciembre 2016, ~10 años sin actualizar) - **CVEs conocidos:** - CVE-2023-38408 (PKCS#11 provider, potencial RCE) - CVE-2021-41617 (escalación de privilegios) - CVE-2020-15778 (inyección de comandos vía scp) - **CVSS:** 8.1 ### C4 - CORS Wildcard en Sitio Vercel [MEDIA] - **Header:** `access-control-allow-origin: *` - **Impacto:** Cualquier dominio puede hacer peticiones cross-origin al sitio - **Nota:** Bajo riesgo al ser contenido estático, pero podría ser problema si se agregan APIs ### C5 - DMARC Sin Enforcement [MEDIA] - **Configuración:** `p=none` (solo reporta, no bloquea) - **Impacto:** Emails de spoofing desde @groke.mx pueden llegar a destinatarios - **SPF tiene softfail (~all):** Agrava el problema ### C6 - Protocolos de Email Sin Cifrar (POP3/IMAP) [MEDIA] - **Puertos 110 (POP3) y 143 (IMAP) abiertos** sin TLS obligatorio - **Impacto:** Credenciales de correo pueden ser interceptadas en texto plano ### C7 - cPanel/WHM Accesibles Públicamente [MEDIA] - **URLs:** - cPanel: cpanel.groke.mx:2083 - WHM: cpanel.groke.mx:2087 (redirige a host2.sitiosmctech.com.mx:2087) - Webmail: webmail.groke.mx:2096 - **Impacto:** Superficie de ataque para brute force de credenciales ### C8 - FTP Sin Restricción de IP [BAJA] - **Banner:** Pure-FTPd con TLS, no acepta anónimo - **Impacto:** Vector para brute force de credenciales FTP ### C9 - robots.txt Referencia Dominio Incorrecto [INFO] - **Contenido:** `Sitemap: https://groke.ca/sitemap.xml` (no groke.mx) - **Sitemap desactualizado:** Última modificación 2023-09-22 ### C10 - Headers de Seguridad Faltantes [MEDIA] - HSTS: OK (Vercel) - Content-Security-Policy: FALTA - X-Frame-Options: FALTA - X-Content-Type-Options: FALTA - X-XSS-Protection: FALTA - Referrer-Policy: FALTA - Permissions-Policy: FALTA ## Resumen de Severidades | Severidad | Cantidad | |---|---| | Crítica | 0 | | Alta | 3 (C1, C2, C3) | | Media | 5 (C4, C5, C6, C7, C10) | | Baja | 1 (C8) | | Info | 1 (C9) | | **Total** | **10** | ## Recomendaciones Prioritarias 1. **Urgente:** Desactivar debug mode en Laravel (APP_DEBUG=false) 2. **Urgente:** Actualizar OpenSSH a versión actual 3. **Urgente:** Cerrar puerto 3306 al exterior (firewall) 4. **Alta:** Configurar DMARC con `p=reject` y SPF con `-all` 5. **Alta:** Desactivar puertos POP3/IMAP sin cifrar (110, 143) 6. **Media:** Restringir acceso a cPanel/WHM por IP 7. **Media:** Agregar headers de seguridad (CSP, X-Frame-Options, etc.)