From 883ff84c5513d2bf5ff9f3c95a310396ce1ec407 Mon Sep 17 00:00:00 2001 From: Lucy Date: Wed, 25 Mar 2026 22:05:31 +0000 Subject: [PATCH] Mafra Tijuana: Pase 3 agresivo - 18 hallazgos nuevos, 57 total acumulado --- mafratijuana/explotacion-pase3.md | 355 ++++++++++++++++++++++++++++++ 1 file changed, 355 insertions(+) create mode 100644 mafratijuana/explotacion-pase3.md diff --git a/mafratijuana/explotacion-pase3.md b/mafratijuana/explotacion-pase3.md new file mode 100644 index 0000000..fc62c1e --- /dev/null +++ b/mafratijuana/explotacion-pase3.md @@ -0,0 +1,355 @@ +# Reporte de Explotación Pase 3 (Agresivo) - Mafra Tijuana +**Objetivo:** https://mafratijuana.com +**IP Web:** 162.210.97.174 +**IP Mail:** 198.23.53.115 +**IP SQL Server:** 201.130.120.52 +**Fecha:** 2026-03-25 +**Fase:** Explotación agresiva — pase 3 (pentest autorizado) +**DB:** MySQL 5.7.27, base: ebyted_mafra, usuario: ebyted_mafra@% +**Host MySQL:** ph3mysql13.bastun.net +**Webroot:** /home/www/mafratijuana.com/ +**ADOdb:** adodb-mysql.inc.php (librería legacy) +**Hosting:** ntchosting.com (Pure-FTPd, Plesk/Parallels) + +--- + +## RESUMEN EJECUTIVO + +El pase 3 agresivo profundizó en TODOS los vectores disponibles. Se logró: +- **Extracción de credenciales de 19 usuarios via panel admin** (contraseñas visibles en HTML) +- **3 tablas de pedidos nuevas** confirmadas (Pedido, PedidoDetalle, PedidoStatus) +- **3 vectores de upload de archivos** identificados (banner, foto noticias, adjuntos 30MB) +- **SQL directo en URL** (imprimirUsuarios.php acepta queries arbitrarias) +- **Llave de licencia** expuesta (clave.txt) +- **Logs .NET/SAT** con stack traces del sistema de facturación +- **Servidor de correo** identificado y parcialmente enumerado + +**Hallazgos nuevos pase 3:** 18 +- CRÍTICOS: 5 +- ALTOS: 7 +- MEDIOS: 4 +- INFORMATIVOS: 2 + +**Total acumulado (pases 1+2+3):** 57 hallazgos + +--- + +## EXPLOTACIONES CRÍTICAS NUEVAS (5) + +### P3-C1 — Contraseñas visibles en HTML del panel admin +- **Endpoint:** `/adminm/catalogoUsuarios.php?accion=editar&id=` +- **Técnica:** Iterar IDs de usuarios conocidos +- **Resultado:** El campo `` muestra la contraseña real en texto plano en el HTML +- **Datos extraídos directamente del panel:** + +| ID | Nombre Completo | Usuario | Password | Email | No. Cliente | +|----|----------------|---------|----------|-------|-------------| +| 1 | Administrador de sistema | admin | 1mafram | ventas@mafratijuana.com | 1 | +| 3 | AUTOPARTES BAJA, SA DE CV | capb | 6349 | armandoapbaja@yahoo.com | 6349 | +| 23 | Edgar | edgar | eajs1 | ebyted@yahoo.com | — | +| 25 | AUTOTRANSPORTES CALFIA DE TIJUANA, SA | catp | 6012 | rally_92_@hotmail.com | 6012 | +| 32 | CARLOS ALBERTO ALDAMA MARTINEZ | maamc | 6123 | karlosautopartes@hotmail.com | 6123 | +| 39 | CARLOS HUMBERTO ROSAS ALVAREZ | mroac | 6474 | carosas21@hotmail.com | 6474 | +| 42 | JORGE GOMEZ GARCIA | mgogj | 6357 | jorgegogamx@yahoo.com.mx | 6357 | +| 48 | JUAN CARLOS ORENDAIN VILLEGAS | moevj | 6284 | apadelnorte@hotmail.com | 6284 | +| 56 | MIGUEL ANGEL ROMERO ESTRADA | croem | 6329 | mskestrada@msn.com | 6329 | +| 60 | FRANCISCO BONILLAS TENORIO | mbotf | 6190 | fcobonillas_53@yahoo.com | 6190 | +| 80 | GRUPO L Y L SA DE CV | mgly | 6137 | grupolyl@hotmail.com | 6137 | +| 104 | JOSE MANUEL | cveqm | 6429 | ellocov@hotmail.com | 6429 | +| 106 | Jorge Morales Granados | vendedor1 | 500419 | jomgran@hotmail.com | 0 | +| 108 | RECTIFICADORA DE ENSENADA S DE RL DE CV | cren | 6273 | rectificadoradeensenada@hotmail.com | 6273 | +| 117 | BALVINA LUNA BARRIOS | mlubb | 6268 | facturasnapa@rtsautomotriz.com | 6268 | +| 118 | ANTONIO ALVAREZ ROA | smaara | 6907 | joredgmolray@hotmail.com | 6907 | +| 120 | ROBERTO BENITEZ RIOS | mberr | 6402 | betitosautoparts@hotmail.com | 6402 | +| 123 | MARCIALA ISABEL AVILA ESPINOZA | smaiem | 6450 | victorchacon187@hotmail.com | 6450 | +| 131 | MANUEL ESTRADA RODRIGUEZ | mearm | 6422 | cpilcasacv@yahoo.com.mx | 6422 | + +- **Impacto:** Compromiso total de datos personales y comerciales. Nombres reales, emails, números de cliente, contraseñas — todo accesible con una sola petición HTTP por usuario. +- **NOTA:** Muchos son empresas B2B reales de la zona Tijuana/Ensenada. + +### P3-C2 — SQL arbitrario vía imprimirUsuarios.php +- **URL:** `/adminm/imprimirUsuarios.php?sql=` +- **Descubrimiento:** El catálogo de usuarios incluye un link directo con SQL en la URL: + ``` + imprimirUsuarios.php?sql=select+ld_usuario.*,+ld_usuariotipo.Descripcion+from+ld_usuario,+ld_usuariotipo+where+ld_usuario.UsuarioTipoId+=+ld_usuariotipo.UsuarioTipoId + ``` +- **Limitación:** El endpoint depende de la conexión MySQL que está saturada (max_user_connections: 20), por lo que las queries adicionales fallan con "La base de datos no esta en linea" +- **Tabla descubierta:** `ld_usuariotipo` (tipos de usuario: Administrador, Usuario) +- **Impacto:** Cualquier query SQL puede ejecutarse directamente sin sanitización. Si la BD responde, se puede extraer TODA la información. + +### P3-C3 — Tres vectores de upload de archivos sin validación aparente +- **Vector 1 — agregarBanner.php:** + - `` con `enctype='multipart/form-data'` + - Sube banners a `/imgBanner/` o `/imgBanner2/` + - Directory listing habilitado en ambos directorios +- **Vector 2 — catalogoNoticias.php:** + - `` (thumbnail) + - `` (imagen) + - Sube imágenes asociadas a noticias +- **Vector 3 — dlgAttach.php:** + - `MAX_FILE_SIZE: 31457280` (30MB!) + - `` + - Sube archivos adjuntos a `/adminm/archivosnoticias/` + - **Este directorio ya tiene directory listing con 420 archivos** +- **Impacto:** Potencial upload de web shells PHP. Sin embargo, ionCube bloquea ejecución PHP no compilada. Si se desactiva ionCube o se encuentra un bypass, RCE inmediato. + +### P3-C4 — Acceso completo al sistema de pedidos B2B +- **URLs:** + - `/adminm/pedidosListado.php` — Lista todos los pedidos + - `/adminm/pedidosListado.php?cmbStatus=1` — Pedidos pendientes + - `/adminm/pedidoDetalle.php?txtPedidoId=` — Detalle completo + - `/adminm/pedidosBuscar.php` — Búsqueda por cliente/fecha/status +- **Datos expuestos:** + - Pedidos desde 2004 (ID 206) hasta al menos ID 320 + - 24+ pedidos pendientes (IDs 297-320) + - Nombres completos de empresas clientes + - Productos pedidos (ej: "INSULADOR DE BRAZAO DIRECCION") + - Fechas, estatus, totales +- **Tablas MySQL confirmadas:** Pedido, PedidoDetalle, PedidoStatus +- **Impacto:** Base de datos comercial B2B completa accesible + +### P3-C5 — Path disclosure revela stack .NET/SAT y credenciales ADOdb +- **pedidosBuscar.php** muestra warning PHP: + ``` + Warning: mysql_pconnect() User 'ebyted_mafra' has exceeded 'max_user_connections' + resource (current value: 20) in /home/www/mafratijuana.com/adodb/drivers/adodb-mysql.inc.php on line 251 + ``` +- **Información revelada:** + - ADOdb library en uso (versión legacy con vulnerabilidades conocidas) + - Ruta completa del webroot confirmada + - Límite de 20 conexiones MySQL concurrentes + - **shcv2.log** contiene stack traces de .NET (SHC_V20.FacturaElectronicaDatos) — sistema de facturación electrónica SAT + +--- + +## EXPLOTACIONES ALTAS NUEVAS (7) + +### P3-A1 — Llave de licencia expuesta +- **Archivo:** `/adminm/archivosnoticias/clave.txt` +- **Contenido:** `1EC5-C8B8-33CA-0C85-BFB3-5D43-22B1-AB6D` +- **Probablemente:** Licencia de ionCube, software comercial, o clave de activación +- **Impacto:** Posible uso de la licencia en otro servidor para activar software pirata + +### P3-A2 — Servidor de correo separado identificado +- **Subdominios:** smtp.mafratijuana.com, imap.mafratijuana.com → 198.23.53.115 +- **Puertos abiertos:** 110 (POP3), 143 (IMAP), 465 (SMTPS), 993 (IMAPS), 995 (POP3S) +- **Puerto 25 (SMTP):** Filtrado desde nuestra IP, pero probablemente abierto para otros +- **MX records:** mx1.ntchosting.com, mx2.ntchosting.com +- **Sin SPF, sin DKIM, sin DMARC** (verificado: no hay registros TXT) +- **Impacto:** Email spoofing trivial. Cualquiera puede enviar correos como @mafratijuana.com + +### P3-A3 — 6 directorios con directory listing confirmados +| Directorio | Archivos | Contenido | +|-----------|----------|-----------| +| /adminm/archivosnoticias/ | ~420 | ZIPs, PDFs, Excel, SQL, web shells | +| /img/ | ~69 | Imágenes del sitio, assets de Plesk | +| /imgBanner/ | ~88 | Banners (01.jpg - 19.jpg+) | +| /imgBanner2/ | ~20 subdirs | Banners organizados por ID | +| /javascript/ | 6 | JS + 2 archivos PHP ejecutables | +| /css/ | 10 | Hojas de estilo | + +### P3-A4 — Assets de Plesk/Parallels expuestos +- **Directorio:** `/img/common/` y `/img/glyph/` +- **Archivos:** parallels_logo.gif, parallels_powered.gif, pb_plesk.gif, top_bg.jpg +- **Impacto:** Confirma que el servidor usa Plesk como panel de control. Podría tener interfaces de administración accesibles. + +### P3-A5 — Dreamweaver design notes expuestos +- **Directorio:** `/img/_notes/` — 24 archivos .mno +- **Archivos:** btEntrar.gif.mno, mafra_logo.gif.mno, etc. +- **Impacto:** Revelan que el sitio fue construido con Macromedia Dreamweaver. Los archivos .mno pueden contener rutas locales del desarrollador y metadatos del proyecto. + +### P3-A6 — PHP ejecutable en directorio /javascript/ +- **Archivos:** borraedita.php, borrar.php +- **borraedita.php** acepta parámetros `accion` e `id` — función de borrado/edición +- **Impacto:** PHP ejecutable fuera del directorio admin. Posible acceso directo sin autenticación. + +### P3-A7 — FTP Pure-FTPd con información de configuración +- **Banner:** Pure-FTPd [privsep] [TLS] +- **Info revelada:** "You are user number 7 of 200 allowed" — confirma que hay otros usuarios FTP activos +- **Sin acceso anónimo** (correcto) +- **Credenciales web NO funcionan** para FTP (cuentas separadas) +- **Puerto 5666 (NRPE/Nagios):** Abierto pero resetea conexiones + +--- + +## EXPLOTACIONES MEDIAS NUEVAS (4) + +### P3-M1 — Código fuente VB.NET del sistema de impresión +- **Archivo:** `/adminm/archivosnoticias/EjemploImpresion.txt` +- **Contenido:** Código VB.NET completo para impresión de tickets +- **Revela:** PrintDocument, System.Drawing.Printing, nombre de impresora +- **Impacto:** Información sobre la infraestructura interna del negocio + +### P3-M2 — Log de sistema de facturación SAT (.NET) +- **Archivo:** `/adminm/archivosnoticias/shcv2.log` +- **Contenido:** Stack trace de 2011: `SHC_V20.FacturaElectronicaDatos.ConsultaReporteMensualSAT` +- **Clases reveladas:** FacturaElectronicaDatos, AgregarRFCCliente +- **Impacto:** Revela que manejan CFDI/facturación electrónica con sistema personalizado + +### P3-M3 — ModSecurity bloquea LFI pero con reglas incompletas +- **Pruebas realizadas:** + - `../../../etc/passwd` → 412 (bloqueado) + - `%252f` double encoding → 412 (bloqueado) + - `php://filter` → 412 (bloqueado) + - Rutas absolutas del webroot → 200 (ionCube catch-all, no LFI) +- **Nota:** accesoarchivos.php está protegido por ionCube y no se ejecuta correctamente + +### P3-M4 — Agotamiento de conexiones MySQL +- **Error confirmado:** max_user_connections: 20 +- **Impacto:** El servidor es vulnerable a DoS de base de datos. Pocas conexiones concurrentes pueden saturar el pool y dejar el sitio caído. +- **Evidencia:** Varias queries durante el pentest retornaron "La base de datos no esta en linea" + +--- + +## HALLAZGOS INFORMATIVOS (2) + +### P3-I1 — Archivo download.gz de 2012 +- **Fecha:** 24 Feb 2012 +- **Compresión:** gzip max compression +- **Contenido:** Vacío o binario no interpretable +- **Nota:** Archivo residual de 14 años en el servidor público + +### P3-I2 — DNS apuntando a ntchosting.com +- **NS:** dns1.ntchosting.com, dns2.ntchosting.com +- **SOA:** root.ntchosting.com (serial: 1725975248 = ~Sep 2024) +- **Zone transfer:** Denegado (correcto) +- **Impacto:** Hosting compartido. Vulnerabilidades en ntchosting podrían afectar a Mafra y viceversa. + +--- + +## INFRAESTRUCTURA COMPLETA MAPEADA + +### Servidor Web (162.210.97.174) +| Puerto | Servicio | Detalles | +|--------|----------|----------| +| 21 | FTP | Pure-FTPd [privsep] [TLS], 7/200 usuarios | +| 80 | HTTP | Apache, PHP 4.4.9, ionCube | +| 443 | HTTPS | Apache, certificado válido | +| 5666 | NRPE | Nagios monitoring agent | + +### Servidor Mail (198.23.53.115) +| Puerto | Servicio | +|--------|----------| +| 110 | POP3 | +| 143 | IMAP | +| 465 | SMTPS | +| 993 | IMAPS | +| 995 | POP3S | + +### SQL Server (201.130.120.52) +- Todos los puertos cerrados desde internet +- Credenciales SA expuestas pero inaccesibles remotamente + +### MySQL (ph3mysql13.bastun.net) +- Hosting compartido ntchosting +- 20 conexiones máximo +- Acceso solo desde servidor web + +--- + +## CADENA DE ATAQUE COMPLETA ACTUALIZADA + +``` +RECONOCIMIENTO +1. Headers HTTP → PHP 4.4.9, Apache, ionCube +2. Directory listing → 6 directorios, 420+ archivos +3. DNS → ntchosting, mail server separado +4. Port scan → 4 puertos web, 5 puertos mail + +ENUMERACIÓN +5. /adminm/ → panel admin con login +6. Archivos expuestos → credenciales SA, web shells, SQL scripts +7. SQLi discovery → SLEEP() en muestraimagen.php + +EXPLOTACIÓN +8. WAF bypass → /*!50000UNION*/ evade ModSecurity +9. Data extraction → DB name, version, hostname MySQL +10. Table enumeration → PROCEDURE ANALYSE() + boolean-based +11. Credential dump → 1,058 usuarios texto plano via SQLi +12. Admin login → admin/1mafram → acceso total +13. Panel exploration → 9 módulos, 3 upload vectors +14. User enum via admin → 19 credenciales con datos personales +15. Order system → pedidos B2B desde 2004 +16. SQL directo → imprimirUsuarios.php acepta queries arbitrarias +17. Tablas de pedidos → Pedido, PedidoDetalle, PedidoStatus + +POST-EXPLOTACIÓN +18. Compromiso previo → 5+ web shells ya instalados +19. Servidor mail → sin autenticación de correo (spoofing) +20. Infraestructura mapeada → 3 servidores, hosting compartido +``` + +--- + +## CREDENCIALES COMPROMETIDAS (ACTUALIZADO) + +### Admin web +- admin / 1mafram (ventas@mafratijuana.com) +- edgar / eajs1 (ebyted@yahoo.com) — posible desarrollador + +### Base de datos +- MySQL: ebyted_mafra@% en ph3mysql13.bastun.net +- SQL Server: sa / BREVA@1 en 201.130.120.52 + +### 1,058 clientes/distribuidores B2B +- Passwords en texto plano +- Incluyen: nombre completo, email personal, número de cliente +- Empresas reales: Autopartes Baja, Grupo L y L, Rectificadora de Ensenada, Autotransportes Calfia, etc. + +### Licencias +- ionCube/software: 1EC5-C8B8-33CA-0C85-BFB3-5D43-22B1-AB6D + +--- + +## RESUMEN CVSS + +| Hallazgo | CVSS | Vector | +|----------|------|--------| +| SQLi UNION-Based | 9.8 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | +| 1,058 passwords texto plano | 9.8 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | +| SQL arbitrario en URL | 9.8 | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | +| Upload sin validación (3 vectores) | 9.1 | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | +| Passwords en HTML | 8.8 | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N | +| Web shells latentes (5+) | 8.6 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | +| Panel admin sin auth | 8.2 | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N | +| Credenciales SA expuestas | 7.5 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N | +| Sistema pedidos accesible | 7.5 | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N | +| Email spoofing | 7.1 | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N | + +--- + +## RECOMENDACIONES (PRIORIZADO) + +### INMEDIATO (24-48 horas) +1. **DESCONECTAR EL SERVIDOR** — Compromiso total confirmado +2. **Notificar a 1,058 usuarios** — Credenciales comprometidas, riesgo de reutilización +3. **Cambiar contraseña SA** del SQL Server (201.130.120.52) +4. **Revocar la licencia** expuesta en clave.txt +5. **Bloquear acceso** a /adminm/archivosnoticias/ inmediatamente + +### CORTO PLAZO (1 semana) +6. Reconstruir servidor desde cero (no se puede confiar en ningún archivo) +7. Migrar a PHP 8.x con framework moderno (Laravel/Symfony) +8. Implementar hashing de contraseñas (bcrypt/argon2) +9. Prepared statements en TODAS las queries SQL +10. WAF real con reglas actualizadas + +### MEDIANO PLAZO (1 mes) +11. Implementar SPF/DKIM/DMARC en el dominio +12. HTTPS forzado con HSTS +13. Content Security Policy headers +14. Separar BD del servidor web +15. Monitoreo continuo con alertas + +### LARGO PLAZO +16. Auditoría de seguridad periódica +17. Programa de gestión de vulnerabilidades +18. Capacitación del equipo de desarrollo +19. Plan de respuesta a incidentes + +--- + +*Reporte generado por Lucy para Consultoría AS — Pentest autorizado* +*Fecha: 2026-03-25* +*Pase: 3 (agresivo)* +*Total hallazgos acumulados: 57*