Files
pentesting/mafratijuana/explotacion-pase3.md

16 KiB

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=<ID>
  • Técnica: Iterar IDs de usuarios conocidos
  • Resultado: El campo <input name='password' value="CONTRASEÑA"> 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=<QUERY>
  • 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:
    • <input type='file' name='banner'> con enctype='multipart/form-data'
    • Sube banners a /imgBanner/ o /imgBanner2/
    • Directory listing habilitado en ambos directorios
  • Vector 2 — catalogoNoticias.php:
    • <input type='file' name='foto_tn'> (thumbnail)
    • <input type='file' name='foto_chica'> (imagen)
    • Sube imágenes asociadas a noticias
  • Vector 3 — dlgAttach.php:
    • MAX_FILE_SIZE: 31457280 (30MB!)
    • <input name="userfile" type="file" />
    • 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=<ID> — 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

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)

  1. Reconstruir servidor desde cero (no se puede confiar en ningún archivo)
  2. Migrar a PHP 8.x con framework moderno (Laravel/Symfony)
  3. Implementar hashing de contraseñas (bcrypt/argon2)
  4. Prepared statements en TODAS las queries SQL
  5. WAF real con reglas actualizadas

MEDIANO PLAZO (1 mes)

  1. Implementar SPF/DKIM/DMARC en el dominio
  2. HTTPS forzado con HSTS
  3. Content Security Policy headers
  4. Separar BD del servidor web
  5. Monitoreo continuo con alertas

LARGO PLAZO

  1. Auditoría de seguridad periódica
  2. Programa de gestión de vulnerabilidades
  3. Capacitación del equipo de desarrollo
  4. 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