Explotación completa: Frasa (15 hallazgos, DNS AXFR, MySQL expuesto) + Grupo Frisa (16 hallazgos, MySQL+FTP+VPN GlobalProtect)
This commit is contained in:
175
frasa/explotacion.md
Normal file
175
frasa/explotacion.md
Normal file
@@ -0,0 +1,175 @@
|
||||
# Explotación - Frasa
|
||||
**Objetivo:** https://www.frasa.com.mx
|
||||
**IP:** 201.158.32.25
|
||||
**Fecha:** 2026-03-25
|
||||
**Hosting:** Hostify/Neoclan (servidor dedicado mexicano)
|
||||
|
||||
## Resumen Ejecutivo
|
||||
|
||||
Frasa presenta una superficie de ataque significativa con **DNS Zone Transfer exitoso**, **MySQL expuesto a internet**, **cPanel/WHM/Webmail accesibles**, y **14 puertos abiertos**. La empresa maneja proyectos inmobiliarios (Villas Loma Bonita, landing pages en Unbounce) con un WordPress como sitio principal.
|
||||
|
||||
## Hallazgos
|
||||
|
||||
### CRÍTICOS
|
||||
|
||||
#### C1 — DNS Zone Transfer Exitoso (AXFR)
|
||||
- **Severidad:** CRÍTICA
|
||||
- **Evidencia:** `dig axfr frasa.com.mx @dns3.neoclan.net.mx` devuelve **53 registros completos**
|
||||
- **Datos expuestos:**
|
||||
- Toda la zona DNS incluyendo subdominios internos
|
||||
- `cpanel.frasa.com.mx` → 201.158.32.25
|
||||
- `whm.frasa.com.mx` → 201.158.32.25
|
||||
- `webmail.frasa.com.mx` → 201.158.32.25
|
||||
- `landing.frasa.com.mx` → unbouncepages.com (CNAME)
|
||||
- `villaslomabonita.frasa.com.mx` (proyecto inmobiliario con CalDAV/CardDAV)
|
||||
- `autoconfig/autodiscover` (configuración automática de email)
|
||||
- Tokens ACME challenges de Let's Encrypt
|
||||
- Verificación Microsoft 365 y Google
|
||||
- IP secundaria: 201.158.32.34 (en SPF)
|
||||
- Hosting provider: secure.hostify.com.mx (en SRV records)
|
||||
- **Impacto:** Un atacante obtiene el mapa completo de la infraestructura sin necesidad de escaneo activo
|
||||
- **CVSS:** 7.5 (High)
|
||||
|
||||
#### C2 — MySQL 5.7.44 Expuesto a Internet
|
||||
- **Severidad:** CRÍTICA
|
||||
- **Puerto:** 3306/tcp abierto
|
||||
- **Versión:** MySQL 5.7.44
|
||||
- **Auth plugin:** mysql_native_password (vulnerable a brute force sin rate limiting nativo)
|
||||
- **Capacidades expuestas:** SupportsLoadDataLocal, SupportsCompression, ConnectWithDatabase
|
||||
- **Impacto:** Brute force viable, y si se obtienen credenciales, acceso completo a todas las bases de datos
|
||||
- **CVSS:** 9.1 (Critical)
|
||||
|
||||
### ALTOS
|
||||
|
||||
#### A1 — cPanel Login Accesible Públicamente
|
||||
- **Severidad:** ALTA
|
||||
- **URLs:**
|
||||
- `https://www.frasa.com.mx:2083/` → HTTP 200 (cPanel Login)
|
||||
- `https://cpanel.frasa.com.mx:2083/` → HTTP 200
|
||||
- `https://cpanel.frasa.com.mx/` → HTTP 200
|
||||
- **Nota:** Expone interfaz de login cPanel sin restricción IP
|
||||
- **CVSS:** 7.2
|
||||
|
||||
#### A2 — WHM (WebHost Manager) Accesible
|
||||
- **Severidad:** ALTA
|
||||
- **URL:** `https://whm.frasa.com.mx/` → HTTP 200
|
||||
- **Impacto:** WHM permite administración completa del servidor si se obtienen credenciales
|
||||
- **CVSS:** 7.2
|
||||
|
||||
#### A3 — Webmail Accesible Públicamente
|
||||
- **Severidad:** ALTA
|
||||
- **URLs:**
|
||||
- `https://webmail.frasa.com.mx/` → HTTP 200
|
||||
- `https://webmail.frasa.com.mx:2096/` → HTTP 200
|
||||
- **Impacto:** Permite ataques de brute force contra cuentas de correo
|
||||
- **CVSS:** 6.5
|
||||
|
||||
#### A4 — Enumeración de Usuario WordPress
|
||||
- **Severidad:** ALTA
|
||||
- **Endpoint:** `/wp-json/wp/v2/users`
|
||||
- **Usuario encontrado:** `guangoadmin` (ID: 8)
|
||||
- **wp-login.php:** Accesible (HTTP 200, 9.9 KB) sin rate limiting visible
|
||||
- **Combinación:** Usuario conocido + login accesible = brute force viable
|
||||
- **CVSS:** 6.5
|
||||
|
||||
#### A5 — 14 Puertos Abiertos (Superficie de Ataque Excesiva)
|
||||
- **Severidad:** ALTA
|
||||
- **Puertos abiertos:**
|
||||
| Puerto | Servicio | Detalle |
|
||||
|--------|----------|---------|
|
||||
| 21 | FTP | Pure-FTPd |
|
||||
| 25 | SMTP | Exim (correo saliente) |
|
||||
| 53 | DNS | Named (permite zone transfer) |
|
||||
| 80 | HTTP | Apache |
|
||||
| 110 | POP3 | Dovecot |
|
||||
| 143 | IMAP | Dovecot |
|
||||
| 443 | HTTPS | Apache + WordPress |
|
||||
| 465 | SMTPS | Exim |
|
||||
| 587 | Submission | Exim |
|
||||
| 993 | IMAPS | Dovecot |
|
||||
| 995 | POP3S | Dovecot |
|
||||
| 2083 | cPanel | cPanel Login |
|
||||
| 2096 | Webmail | cPanel Webmail |
|
||||
| 3306 | MySQL | MySQL 5.7.44 |
|
||||
- **Impacto:** Servidor multifunción (web + email + DB + FTP + DNS) sin segmentación
|
||||
- **CVSS:** 7.0
|
||||
|
||||
### MEDIOS
|
||||
|
||||
#### M1 — Rank Math PRO REST API Expuesta
|
||||
- **Severidad:** MEDIA
|
||||
- **Endpoints expuestos (20+):** saveModule, toolsAction, updateMode, updateSettings, updateRedirection, updateMeta, updateSchemas, updateMetaBulk, setupWizard, importCSV, etc.
|
||||
- **Auth:** Requiere autenticación (401 Forbidden), pero la exposición de rutas revela funcionalidad interna
|
||||
- **Riesgo:** Si se obtiene un token/cookie válido, se puede manipular SEO, redirecciones, y metadatos
|
||||
- **CVSS:** 5.3
|
||||
|
||||
#### M2 — Breakdance Builder REST API Expuesta
|
||||
- **Severidad:** MEDIA
|
||||
- **Endpoints:** `/breakdance/v1/`, `/breakdance/v1/icons/export`
|
||||
- **Auth:** Requiere autenticación
|
||||
- **CVSS:** 4.3
|
||||
|
||||
#### M3 — wp-admin/upgrade.php Accesible
|
||||
- **Severidad:** MEDIA
|
||||
- **URL:** `https://www.frasa.com.mx/wp-admin/upgrade.php` → HTTP 200
|
||||
- **Título:** "Actualización de WordPress"
|
||||
- **Impacto:** Confirma WordPress y podría usarse para fingerprinting de versión
|
||||
- **CVSS:** 4.3
|
||||
|
||||
#### M4 — wp-admin/setup-config.php Retorna 409
|
||||
- **Severidad:** MEDIA
|
||||
- **URL:** `https://www.frasa.com.mx/wp-admin/setup-config.php` → HTTP 409 (Conflict)
|
||||
- **Impacto:** El archivo existe y responde, indica que la instalación base no fue limpiada
|
||||
- **CVSS:** 3.7
|
||||
|
||||
#### M5 — 7/7 Headers de Seguridad Ausentes
|
||||
- **Severidad:** MEDIA
|
||||
- **Headers faltantes:** HSTS, CSP, X-Frame-Options, X-Content-Type-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy
|
||||
- **CVSS:** 5.3
|
||||
|
||||
#### M6 — DMARC sp=none para Subdominios
|
||||
- **Severidad:** MEDIA
|
||||
- **DMARC:** `v=DMARC1;p=reject;sp=none;adkim=r;aspf=r;pct=100`
|
||||
- **Nota:** Dominio principal protegido (p=reject) pero subdominios NO (sp=none)
|
||||
- **Impacto:** Se puede spoofear email desde @villaslomabonita.frasa.com.mx u otros subdominios
|
||||
- **CVSS:** 5.0
|
||||
|
||||
### INFORMATIVOS
|
||||
|
||||
#### I1 — Proyecto Inmobiliario "Villas Loma Bonita" Expuesto en DNS
|
||||
- Subdominio con CalDAV/CardDAV configurado hacia secure.hostify.com.mx
|
||||
- Autodiscover configurado para email
|
||||
- Sugiere operación activa con contactos y calendarios
|
||||
|
||||
#### I2 — Landing Pages en Unbounce
|
||||
- `landing.frasa.com.mx` → CNAME a unbouncepages.com
|
||||
- Actualmente devuelve 404 (posible landing page expirada/eliminada)
|
||||
|
||||
#### I3 — Entorno Híbrido Microsoft 365 + cPanel
|
||||
- Verificación MS365 en TXT records
|
||||
- Google Site Verification presente
|
||||
- Correo posiblemente migrado parcialmente
|
||||
|
||||
#### I4 — XMLRPC Deshabilitado
|
||||
- `xmlrpc.php` devuelve 404 — buena práctica de seguridad
|
||||
|
||||
## Cadena de Ataque Potencial
|
||||
|
||||
1. DNS Zone Transfer → Obtener mapa completo de infraestructura
|
||||
2. Enumerar usuario WP `guangoadmin` via REST API
|
||||
3. Brute force wp-login.php (sin rate limiting visible)
|
||||
4. Alternativamente: brute force MySQL 3306 (mysql_native_password, sin rate limiting)
|
||||
5. Si MySQL exitoso → dump de wp_users → obtener hash de password
|
||||
6. Acceso a cPanel/WHM → control total del servidor
|
||||
|
||||
## Recomendaciones (Priorizadas)
|
||||
|
||||
1. **URGENTE:** Bloquear DNS Zone Transfer (restringir AXFR a IPs autorizadas)
|
||||
2. **URGENTE:** Cerrar MySQL 3306 a internet (solo acceso local o VPN)
|
||||
3. **ALTA:** Restringir acceso a cPanel/WHM/Webmail por IP o VPN
|
||||
4. **ALTA:** Implementar rate limiting en wp-login.php (plugin como Wordfence o Limit Login Attempts)
|
||||
5. **ALTA:** Deshabilitar enumeración de usuarios via REST API
|
||||
6. **MEDIA:** Implementar headers de seguridad (HSTS, CSP, X-Frame-Options, etc.)
|
||||
7. **MEDIA:** Cambiar DMARC sp=none a sp=reject para subdominios
|
||||
8. **MEDIA:** Eliminar archivos innecesarios (setup-config.php, upgrade.php accesibles)
|
||||
9. **BAJA:** Reducir superficie de ataque consolidando servicios o segmentando en diferentes IPs
|
||||
Reference in New Issue
Block a user