Análisis profundo: Cilsatires (26 RDP) + Refaccionarias del Valle (WP+Heroku)
This commit is contained in:
@@ -1,68 +1,103 @@
|
||||
# Reconocimiento - Refaccionarias del Valle
|
||||
**Objetivo:** https://refaccionariasdelvalle.com
|
||||
# Reconocimiento Completo - Refaccionarias del Valle
|
||||
**Objetivo:** https://refaccionariasdelvalle.com + https://refaccionariasdelvalle.herokuapp.com
|
||||
**Fecha:** 2026-03-25
|
||||
**Tipo:** WordPress + WooCommerce (e-commerce) + Ruby on Rails (Heroku)
|
||||
|
||||
## DNS
|
||||
- **IP:** 44.229.95.150 (AWS Oregon)
|
||||
- **MX:** mail.refaccionariasdelvalle.com
|
||||
- **NS:** GreenGeeks (ns1/ns2.greengeeks.net)
|
||||
- **SPF:** `v=spf1 ip4:108.163.225.126 include:spf.greengeeks.net ip4:69.175.98.166 +a +mx ~all`
|
||||
- **DMARC:** `v=DMARC1; p=none;` (sin enforcement)
|
||||
|
||||
## Infraestructura
|
||||
- **Hosting:** GreenGeeks (hosting compartido) → AWS
|
||||
|
||||
### Sitio WordPress (Principal)
|
||||
- **Hosting:** GreenGeeks → AWS Oregon
|
||||
- **Servidor:** Apache
|
||||
- **CMS:** WordPress 6.7.5
|
||||
- **Plugins detectados:** WooCommerce 9.8.7, WPBakery Page Builder, Site Kit by Google 1.151.0, Bootstrap
|
||||
- **CMS:** WordPress 6.7.5 (no es la última 6.9.x)
|
||||
- **Theme:** Woodmart 7.6.0
|
||||
- **SSL:** Let's Encrypt E7 (válido hasta 2026-06-06)
|
||||
- **E-commerce:** Sí (WooCommerce) — maneja datos de clientes/pagos
|
||||
- **E-commerce:** WooCommerce 9.8.7 (moneda: MXN, país: MX/BC)
|
||||
|
||||
## Headers de Seguridad
|
||||
| Header | Estado |
|
||||
|--------|--------|
|
||||
| HSTS | FALTA |
|
||||
| Content-Security-Policy | FALTA |
|
||||
| X-Frame-Options | FALTA |
|
||||
| X-Content-Type-Options | FALTA |
|
||||
| X-XSS-Protection | FALTA |
|
||||
| Referrer-Policy | FALTA |
|
||||
| Permissions-Policy | FALTA |
|
||||
### Aplicación Heroku (Legacy/B2B)
|
||||
- **Plataforma:** Ruby on Rails en Heroku
|
||||
- **CDN:** CloudFront (d134yvfg5nzhu8.cloudfront.net)
|
||||
- **S3:** refaccionariasdelvallepg.s3.us-west-1.amazonaws.com
|
||||
- **Analytics:** Google Analytics UA-40376975-1
|
||||
- **Facebook App ID:** 1652116431482935
|
||||
|
||||
## Hallazgos
|
||||
| # | Hallazgo | Severidad |
|
||||
|---|----------|-----------|
|
||||
| 1 | **Enumeración de usuarios via REST API** — usuario `adminRDelValle` (ID:1) expuesto como `is_super_admin: true` en `/wp-json/wp/v2/users`. Incluye metadatos de WooCommerce y Gravatar hash | ALTA |
|
||||
| 2 | **WooCommerce (e-commerce) sin HSTS** — datos de pago en riesgo de MITM | ALTA |
|
||||
| 3 | **wp-login.php accesible** — sin rate limiting visible, objetivo para fuerza bruta | ALTA |
|
||||
| 4 | **readme.html accesible** — expone versión exacta de WordPress | MEDIA |
|
||||
| 5 | 7 de 7 headers de seguridad ausentes | MEDIA |
|
||||
| 6 | WordPress 6.7.5 (no es la última versión 6.9.x) | MEDIA |
|
||||
| 7 | WPBakery Page Builder 7.9 — historial de CVEs (XSS, RCE) | MEDIA |
|
||||
| 8 | Woodmart theme 7.6.0 — verificar actualizaciones | MEDIA |
|
||||
| 9 | Yoast SEO 24.9, CF7 Conditional Fields 2.5.11, Click to Chat WhatsApp 4.15 | MEDIA |
|
||||
| 10 | SPF con `~all` (softfail en vez de -all) | MEDIA |
|
||||
| 11 | XMLRPC bloqueado (403) | OK |
|
||||
| 12 | Correo self-hosted en mismo dominio | MEDIA |
|
||||
| 13 | Logo servido desde dominio externo: `diseno-studioarsa.com` | BAJA |
|
||||
## Plugins Detectados (WordPress)
|
||||
|
||||
## Enumeración de Usuarios
|
||||
- **Endpoint:** `/wp-json/wp/v2/users`
|
||||
- **Usuario encontrado:** `adminRDelValle` (ID: 1)
|
||||
- **Flags:** `is_super_admin: true`
|
||||
- **Gravatar hash:** `41c8ce28f93662502ca9b9aec99fe2c8`
|
||||
- **Riesgo:** Con el nombre de usuario conocido, solo falta la contraseña para acceder
|
||||
|
||||
## Plugins Detectados
|
||||
| Plugin | Versión | Riesgo |
|
||||
|--------|---------|--------|
|
||||
| WooCommerce | 9.8.7 | Tienda activa, maneja pagos |
|
||||
| WPBakery (js_composer) | 7.9 | CVEs históricos: XSS almacenado, RCE |
|
||||
| Woodmart Theme | 7.6.0 | Theme premium, verificar CVEs |
|
||||
| Yoast SEO | 24.9 | Generalmente seguro |
|
||||
| CF7 Conditional Fields | 2.5.11 | Verificar CVEs |
|
||||
| WPBakery (js_composer) | 7.9 | CVE-2024-6457 (XSS no autenticado < 7.8) — versión 7.9 puede estar parcheada |
|
||||
| WooCommerce | 9.8.7 | Tienda activa con pagos |
|
||||
| Contact Form 7 | 6.0.6 | Generalmente seguro |
|
||||
| CF7 Conditional Fields | — | Extensión de CF7 |
|
||||
| Forminator | 1.42.2 | Plugin de formularios con preview API |
|
||||
| Google Site Kit | 1.151.0 | Integración Google |
|
||||
| Click to Chat WhatsApp | 4.15 | Bajo riesgo |
|
||||
| Real3D FlipBook Lite | — | Verificar CVEs |
|
||||
| Yoast SEO | 24.9 | Generalmente seguro |
|
||||
| WPForms | — | API REST expuesta |
|
||||
| WPMU DEV | — | Hub Connector y Defender/Smush probable |
|
||||
| Jetpack | — | API v4 expuesta |
|
||||
|
||||
## Siguiente Paso
|
||||
- Análisis de WPBakery CVEs específicos para v7.9
|
||||
- Verificar checkout de WooCommerce (pasarela de pago, HTTPS)
|
||||
- Auditoría de plugins con wpscan
|
||||
- Verificar DMARC
|
||||
## Hallazgos
|
||||
|
||||
### Sitio WordPress
|
||||
|
||||
| # | Hallazgo | Severidad |
|
||||
|---|----------|-----------|
|
||||
| C1 | **Directorio de backups accesible** — `/wp-content/ai1wm-backups/` retorna 200. All-in-One WP Migration crea backups completos del sitio (BD + archivos). Si hay archivos .wpress aquí, contienen TODO: credenciales, BD, wp-config | CRÍTICA |
|
||||
| A1 | **Enumeración de usuarios** — `adminRDelValle` (ID:1, super_admin) expuesto via REST API, author pages, y oembed. Gravatar hash: `41c8ce28f93662502ca9b9aec99fe2c8` | ALTA |
|
||||
| A2 | **wp-login.php sin rate limiting** — 5 intentos consecutivos en <2s sin bloqueo. Con usuario conocido (`adminRDelValle`), fuerza bruta es viable | ALTA |
|
||||
| A3 | **WooCommerce sin HSTS** — tienda con pagos en MXN sin Strict-Transport-Security. Datos de pago vulnerables a downgrade HTTPS→HTTP | ALTA |
|
||||
| A4 | **DMARC p=none** — política de correo no enforce. Cualquiera puede enviar emails como @refaccionariasdelvalle.com | ALTA |
|
||||
| A5 | **WooCommerce Store API expone estructura** — atributo "Marca" con 66 valores, carrito accesible sin auth, estructura de checkout visible | ALTA |
|
||||
| M1 | **7/7 headers de seguridad ausentes** — Sin HSTS, CSP, X-Frame-Options, X-Content-Type-Options, etc. | MEDIA |
|
||||
| M2 | **WordPress 6.7.5** — 2 versiones menores atrás de 6.9.x | MEDIA |
|
||||
| M3 | **WPBakery 7.9** — changelog.txt público en `/wp-content/plugins/js_composer/changelog.txt`. Historial de CVEs aunque versión actual puede estar parcheada | MEDIA |
|
||||
| M4 | **Woodmart 7.6.0** — verificar actualizaciones del theme premium | MEDIA |
|
||||
| M5 | **SPF con ~all (softfail)** — debería ser -all para rechazo estricto | MEDIA |
|
||||
| M6 | **wp-admin/install.php accesible** — muestra "Ya instalado" pero confirma WP + revela versión exacta | MEDIA |
|
||||
| M7 | **Forminator API** — endpoint `/wp-json/forminator/v1/preview/forms` acepta requests, retorna `success:false` pero podría explotarse con module_id válido | MEDIA |
|
||||
| M8 | **Application Passwords habilitado** — endpoint de autorización en `/wp-admin/authorize-application.php` expuesto | MEDIA |
|
||||
| M9 | **Logo servido desde dominio externo** — `diseno-studioarsa.com` (developer tercero) aloja el logo oficial. Si ese dominio se compromete, XSS en Refaccionarias | MEDIA |
|
||||
| I1 | **XMLRPC bloqueado (403)** — bien configurado | OK |
|
||||
| I2 | **WooCommerce logs/uploads directorios** — retornan 200 pero sin listing (vacíos) | BAJA |
|
||||
| I3 | **wp-content/uploads bloqueado (403)** — bien configurado | OK |
|
||||
| I4 | **robots.txt** — revela rutas de WooCommerce logs | BAJA |
|
||||
|
||||
### Aplicación Heroku (Legacy)
|
||||
|
||||
| # | Hallazgo | Severidad |
|
||||
|---|----------|-----------|
|
||||
| H1 | **X-Frame-Options: ALLOWALL** — permite clickjacking completo. Cualquier sitio puede embedder la app en un iframe | ALTA |
|
||||
| H2 | **CORS misconfiguration** — `Access-Control-Allow-Credentials: true` + `Allow-Methods: POST, PUT, DELETE, GET, OPTIONS`. Origin fijo a CloudFront pero permite operaciones destructivas | ALTA |
|
||||
| H3 | **Endpoints /users y /products retornan 500** — error no manejado. Devise (autenticación) está roto. Puede revelar stack traces en modo debug | ALTA |
|
||||
| H4 | **Panel admin accesible** — `/admin` redirige a login en `/cuentas/ingresar`. Sin CAPTCHA visible | MEDIA |
|
||||
| H5 | **CSRF token estático en meta tags** — token visible en HTML source para cada request | MEDIA |
|
||||
| H6 | **Facebook App ID expuesto** — 1652116431482935, podría usarse para phishing | MEDIA |
|
||||
| H7 | **Cookie de sesión Rails expuesta** — `_refaccionariasdelvalle_session` con base64-encoded data | BAJA |
|
||||
| H8 | **jQuery 1.12.4** — versión de 2016 con múltiples CVEs de XSS | MEDIA |
|
||||
| H9 | **Google Analytics legacy** — UA-40376975-1 (Universal Analytics, deprecado) | BAJA |
|
||||
|
||||
## Resumen de Severidades
|
||||
- **CRÍTICA:** 1 (directorio backups)
|
||||
- **ALTA:** 7 (usuarios expuestos, sin rate limiting, sin HSTS, DMARC none, store API, X-Frame-Options ALLOWALL, CORS)
|
||||
- **MEDIA:** 12
|
||||
- **BAJA/INFO:** 4
|
||||
|
||||
## Recomendaciones Prioritarias
|
||||
1. **URGENTE:** Eliminar o proteger `/wp-content/ai1wm-backups/` — puede contener backup completo del sitio
|
||||
2. Implementar rate limiting y CAPTCHA en wp-login.php
|
||||
3. Deshabilitar enumeración de usuarios via REST API
|
||||
4. Agregar todos los headers de seguridad (HSTS, CSP, X-Frame-Options DENY)
|
||||
5. Cambiar DMARC a `p=reject` y SPF a `-all`
|
||||
6. Actualizar WordPress a la última versión
|
||||
7. Revisar y actualizar todos los plugins
|
||||
8. Heroku: Cambiar X-Frame-Options a DENY, restringir CORS
|
||||
9. Heroku: Corregir error 500 en /users y /products (Devise roto)
|
||||
10. Heroku: Actualizar jQuery a versión moderna
|
||||
|
||||
Reference in New Issue
Block a user