155 lines
7.5 KiB
Markdown
155 lines
7.5 KiB
Markdown
# Explotación - Grupo Frisa
|
|
**Objetivo:** https://grupofrisa.com
|
|
**IP:** 35.215.119.143 (Google Cloud)
|
|
**Fecha:** 2026-03-25
|
|
**Empresa:** ADMINISTRACION DE SERVICIOS ESPECIALIZADOS ASESA SA DE CV
|
|
|
|
## Resumen Ejecutivo
|
|
|
|
Grupo Frisa es la empresa mejor protegida del lote, con infraestructura en Google Cloud, SiteGround Security plugin activo, email protegido por Trend Micro, MFA con Duo SSO, y VPN GlobalProtect (Palo Alto). Sin embargo, presenta vulnerabilidades significativas: **MySQL 8.4.6 y FTP expuestos a internet**, **3 usuarios WordPress enumerables**, **archivo .env presente en disco**, y **4 subdominios con servicios adicionales** (webmail, FTP, VPN, staging).
|
|
|
|
## Infraestructura Descubierta
|
|
|
|
### Servidores
|
|
| Servidor | IP | Función |
|
|
|----------|-----|---------|
|
|
| Principal (GCloud) | 35.215.119.143 | WordPress + FTP + MySQL |
|
|
| Webmail | 187.176.187.250 | Email (inaccesible) |
|
|
| FTP dedicado | 200.94.123.171 | FTP (firewall estricto) |
|
|
| VPN | 200.94.123.190 | GlobalProtect Portal (Palo Alto) |
|
|
| Staging | 148.243.153.101 | Staging (inaccesible) |
|
|
|
|
### Stack Tecnológico
|
|
- WordPress + Elementor 3.35.7 + ACF + SiteGround Security
|
|
- Google Cloud + SiteGround cache (Nginx)
|
|
- Email: Microsoft 365 + Trend Micro Email Security
|
|
- Auth: Duo SSO (MFA)
|
|
- VPN: Palo Alto GlobalProtect
|
|
- SSL: DigiCert/GeoTrust wildcard *.grupofrisa.com
|
|
|
|
## Hallazgos
|
|
|
|
### ALTOS
|
|
|
|
#### A1 — MySQL 8.4.6 Expuesto a Internet
|
|
- **Severidad:** ALTA
|
|
- **IP:** 35.215.119.143:3306
|
|
- **Versión:** MySQL 8.4.6-6 (Percona)
|
|
- **Capacidades:** SupportsLoadDataLocal, ConnectWithDatabase, SupportsCompression
|
|
- **Auth plugin:** caching_sha2_password (más seguro que mysql_native_password)
|
|
- **Impacto:** Aunque caching_sha2 dificulta brute force, el servicio NO debería estar expuesto
|
|
- **CVSS:** 7.5
|
|
|
|
#### A2 — FTP Expuesto a Internet (Google Cloud)
|
|
- **Severidad:** ALTA
|
|
- **IP:** 35.215.119.143:21
|
|
- **Versión:** Pure-FTPd
|
|
- **FTP anónimo:** No permitido (bien)
|
|
- **Impacto:** Brute force de credenciales FTP, posible subida de webshells si se obtienen credenciales
|
|
- **CVSS:** 6.5
|
|
|
|
#### A3 — 3 Usuarios WordPress Enumerables
|
|
- **Severidad:** ALTA
|
|
- **Endpoint:** `/wp-json/wp/v2/users` y `/wp-sitemap-users-1.xml`
|
|
- **Usuarios descubiertos:**
|
|
| ID | Slug | Nombre | Notas |
|
|
|----|------|--------|-------|
|
|
| 1 | ipa-at7-dev | ipa.at7.dev | Cuenta de desarrollador (probablemente agencia IPA AT7) |
|
|
| 4 | enriqueti | Enrique | Admin principal, Gravatar vinculado |
|
|
| - | recursos-humanos | Recursos Humanos | Descubierto via sitemap |
|
|
- **Gravatar hash (enriqueti):** `d105db15e9c5af853cce7e5262d47461563226b20f81057a814dbee4876860ce`
|
|
- **wp-login.php:** Accesible (HTTP 200)
|
|
- **CVSS:** 6.5
|
|
|
|
#### A4 — Archivo .env Presente en Servidor
|
|
- **Severidad:** ALTA
|
|
- **URL:** `https://grupofrisa.com/.env` → HTTP 403
|
|
- **También:** `.env.bak`, `wp-config.php.bak`, `.htaccess.bak`, `.git/HEAD`, `debug.log`, `wp-content/debug.log`, `error_log` — todos retornan 403
|
|
- **Nota:** Los archivos EXISTEN en disco pero están bloqueados por Nginx. Si hay una ruta alternativa (proxy bypass, backup) podrían ser accesibles
|
|
- **Impacto:** .env típicamente contiene credenciales de base de datos, API keys, etc.
|
|
- **CVSS:** 6.2
|
|
|
|
### MEDIOS
|
|
|
|
#### M1 — VPN GlobalProtect Portal Expuesto
|
|
- **Severidad:** MEDIA
|
|
- **URL:** `https://200.94.123.190/global-protect/login.esp`
|
|
- **Título:** "GlobalProtect Portal"
|
|
- **Impacto:** Portal de VPN accesible públicamente. Si la versión de PAN-OS es vulnerable (CVE-2024-3400, CVE-2024-0012), podría permitir RCE
|
|
- **Nota:** No se pudo determinar la versión de PAN-OS (API de versión bloqueada)
|
|
- **CVSS:** 5.3
|
|
|
|
#### M2 — SiteGround Security REST API Expuesta
|
|
- **Severidad:** MEDIA
|
|
- **Endpoints descubiertos (30+):** fetch-options, reinstall-plugins, force-password-reset, logout-users, lock-system-folders, disable-editors, hide-wp-version, disable-xml-rpc, disable-feeds, delete-readme, xss-protection, 2fa, disable-admin-username, login-access, limit-login-attempts, custom-login-url, notifications, hardening, activity-unknown, activity-registered, blocked-users, block-ip, login-unblock, block-user, get-visitor-status, weekly-report, notification-emails, manage-activity-log, activity-log-lifetime
|
|
- **Auth:** Todas requieren autenticación (endpoints de acción retornan 404 sin auth)
|
|
- **Impacto:** Si se obtiene un token válido, se puede desactivar toda la seguridad, forzar reset de passwords, desbloquear IPs
|
|
- **CVSS:** 5.3
|
|
|
|
#### M3 — DMARC Débil (pct=10)
|
|
- **Severidad:** MEDIA
|
|
- **DMARC:** `v=DMARC1; p=quarantine; sp=none; pct=10`
|
|
- **Problemas:**
|
|
- `pct=10` → Solo 10% de emails se evalúan contra la política
|
|
- `sp=none` → Subdominios sin protección
|
|
- `p=quarantine` → Debería ser `reject`
|
|
- **Impacto:** 90% del email spoofing pasaría sin evaluación
|
|
- **CVSS:** 5.0
|
|
|
|
#### M4 — readme.html Expone Versión de WordPress
|
|
- **Severidad:** MEDIA
|
|
- **URL:** `https://grupofrisa.com/readme.html` → HTTP 200
|
|
- **Info:** Requiere PHP 8.3+ y MySQL 8.0+ (indica WordPress 6.7+)
|
|
- **CVSS:** 3.1
|
|
|
|
#### M5 — 5/7 Headers de Seguridad Ausentes
|
|
- **Severidad:** MEDIA
|
|
- **Presentes:** X-Content-Type-Options (nosniff), X-XSS-Protection (1; mode=block)
|
|
- **Faltantes:** HSTS, CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy
|
|
- **CVSS:** 5.3
|
|
|
|
#### M6 — Custom Post Types Exponen Información de Negocio
|
|
- **Severidad:** MEDIA
|
|
- **Endpoints:**
|
|
- `/wp-json/wp/v2/portafolio` → Desarrollos inmobiliarios (Multiplaza Tuxtepec, Lindavista, Las Palmas, Cancún, Puerto Aventuras)
|
|
- `/wp-json/wp/v2/job_vacancy` → Vacantes de empleo
|
|
- **Impacto:** Información de negocio accesible programáticamente para scraping masivo
|
|
- **CVSS:** 3.1
|
|
|
|
### INFORMATIVOS
|
|
|
|
#### I1 — wp-admin Bloqueado (SG-Security Custom Login URL)
|
|
- `https://grupofrisa.com/wp-admin/` → HTTP 403
|
|
- `/login` → 302 → wp-login.php (el login SÍ funciona vía redirección)
|
|
- SG-Security tiene custom-login-url habilitado pero el estándar sigue funcionando
|
|
|
|
#### I2 — Infraestructura Corporativa Robusta
|
|
- Email: Microsoft 365 + Trend Micro (buena protección)
|
|
- Auth: Duo SSO (MFA habilitado)
|
|
- VPN: Palo Alto GlobalProtect
|
|
- SSL: DigiCert wildcard con vencimiento 2027
|
|
- Hosting: Google Cloud con SiteGround cache
|
|
|
|
#### I3 — Cuenta de Desarrollador Externa
|
|
- Usuario `ipa-at7-dev` (ID: 1) sugiere que la agencia IPA AT7 desarrolló/mantiene el sitio
|
|
- Riesgo: cuenta de tercero con acceso admin
|
|
|
|
#### I4 — 4 Subdominios Descubiertos
|
|
- `webmail.grupofrisa.com` (187.176.187.250) — inaccesible
|
|
- `ftp.grupofrisa.com` (200.94.123.171) — firewall estricto
|
|
- `vpn.grupofrisa.com` (200.94.123.190) — GlobalProtect
|
|
- `staging.grupofrisa.com` (148.243.153.101) — inaccesible
|
|
|
|
## Recomendaciones (Priorizadas)
|
|
|
|
1. **URGENTE:** Cerrar MySQL 3306 a internet (solo acceso local/VPN)
|
|
2. **URGENTE:** Cerrar FTP 21 a internet o migrar a SFTP con restricción IP
|
|
3. **ALTA:** Eliminar archivos sensibles del webroot (.env, .env.bak, wp-config.php.bak, .htaccess.bak, .git/, debug.log, error_log)
|
|
4. **ALTA:** Deshabilitar enumeración de usuarios via REST API y sitemap de usuarios
|
|
5. **ALTA:** Verificar y actualizar versión de PAN-OS en VPN GlobalProtect
|
|
6. **MEDIA:** Fortalecer DMARC: cambiar pct=10 a pct=100, sp=none a sp=reject, p=quarantine a p=reject
|
|
7. **MEDIA:** Implementar headers de seguridad faltantes (HSTS, CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy)
|
|
8. **MEDIA:** Revisar cuenta de desarrollador externo `ipa-at7-dev` — eliminar si ya no es necesaria
|
|
9. **BAJA:** Eliminar readme.html
|
|
10. **BAJA:** Restringir acceso a custom post types via REST API si no es necesario
|