Files
pentesting/mafratijuana/recon.md

13 KiB

Reporte de Seguridad Completo - Mafra Tijuana

Objetivo: https://mafratijuana.com IP: 162.210.97.174 Fecha: 2026-03-25 Estado: COMPROMETIDO (evidencia de hackeo previo)


RESUMEN EJECUTIVO

Mafra Tijuana presenta el nivel de riesgo más alto posible. El servidor ya fue comprometido anteriormente (evidencia: archivo inf.txt con mensaje "hacked by EH!" y web shell C99.php presente). La infraestructura está basada en PHP 4.4.9 (fin de vida en 2008), sin prácticamente ningún control de seguridad, con inyección SQL confirmada y el panel de administración accesible sin autenticación.

Hallazgos totales: 27

  • 🔴 CRÍTICOS: 8
  • 🟠 ALTOS: 9
  • 🟡 MEDIOS: 7
  • 🔵 BAJOS: 3

HALLAZGOS CRÍTICOS (8)

C1 — Evidencia de compromiso previo (hacked by EH!)

  • Archivo: /adminm/archivosnoticias/inf.txt
  • Contenido: hacked by EH!
  • Impacto: El servidor ya fue hackeado. No se puede confiar en la integridad de ningún archivo.
  • Recomendación: Asumir compromiso total. Reconstruir desde cero.

C2 — Web Shell C99.php presente

  • URL: /adminm/archivosnoticias/C99.php
  • Estado: Retorna HTTP 500 (ionCube Loaders faltantes impiden ejecución), pero el archivo existe
  • Impacto: C99 es un web shell PHP famoso que da control total del servidor (ejecución de comandos, exploración de archivos, conexión a BD, etc.)
  • Nota: Si se restauran los ionCube Loaders o se actualiza PHP, el shell volvería a funcionar
  • Recomendación: Eliminar inmediatamente. Auditar todos los archivos PHP del servidor.

C3 — Web Shell disfrazado en /phpinfo.php

  • URL: /phpinfo.php
  • Contenido: Muestra una página falsa de "Not Found" pero incluye un formulario de password oculto (<input type=password name=pass>) con CSS que lo camufla (fondo blanco, borde blanco)
  • Impacto: Puerta trasera activa protegida por contraseña. Si alguien conoce el password, tiene acceso al servidor.
  • Recomendación: Eliminar inmediatamente. Investigar quién lo instaló.

C4 — Inyección SQL ciega confirmada (Time-Based Blind SQLi)

  • Endpoint: /adminm/muestraimagen.php?tipo=chica&id=
  • Prueba: id=136 AND SLEEP(3) → respuesta en 3.2s; SLEEP(5) → 5.2s; SLEEP(0) → 0.2s
  • Impacto: Permite extraer toda la base de datos: usuarios, contraseñas, datos de clientes, pedidos
  • DB name: 12 caracteres de longitud (extracción parcial confirmada)
  • ModSecurity: Bloquea OR/UNION/SELECT pero NO bloquea SLEEP() ni IF()
  • Recomendación: Usar prepared statements. Actualizar reglas de ModSecurity.

C5 — Credenciales de SQL Server expuestas

  • Archivo: /adminm/archivosnoticias/SCRIPTPABORRAR.txt
  • Contenido:
    sqlcmd -U sa -P BREVA@1 -S 201.130.120.52\sqlexpress
    
  • Impacto: Credenciales del usuario SA (administrador) de SQL Server con IP pública. Si el puerto 1433 está abierto en esa IP, acceso total a la base de datos.
  • Recomendación: Cambiar contraseña inmediatamente. Eliminar archivo. Auditar accesos.

C6 — Panel de administración sin autenticación

  • URL: /adminm/tipoCambio.php
  • Estado: Totalmente funcional sin login. Permite modificar y eliminar tipos de cambio.
  • Formulario POST activo a tipoCambio_exe2.php con operaciones CRUD
  • Otros endpoints admin accesibles: catalogoUsuarios.php, catalogoPaquetes.php, catalogoNoticias.php, catalogoMarcas.php, catalogoEmail.php, pedidosPrincipal.php, catalogoGalerias2.php, agregarBanner.php
  • Recomendación: Implementar control de acceso en todas las páginas admin.

C7 — PHP 4.4.9 (fin de vida hace 18 años)

  • Header: X-Powered-By: PHP/4.4.9
  • Impacto: Miles de CVEs conocidos. Sin soporte de seguridad desde 2008. Incompatible con prácticas de seguridad modernas.
  • Recomendación: Migrar a PHP 8.x como mínimo.

C8 — Login de administración vulnerable a fuerza bruta

  • URL: /adminm/ → POST a /login/logea.php
  • Campos: txtUsuario, txtPassword (texto plano)
  • Sin protección: No CAPTCHA, no rate limiting, no bloqueo de cuenta, no 2FA
  • Respuesta uniforme: "Usuario y contrasena no valida" (sin diferenciación usuario/contraseña)
  • ModSecurity: Bloquea SQLi con comillas simples en el login, pero no protege contra fuerza bruta

HALLAZGOS ALTOS (9)

A1 — 420 archivos públicamente accesibles en /adminm/archivosnoticias/

  • URL: /adminm/archivosnoticias/
  • Contenido: 420 archivos incluyendo:
    • 292 imágenes (.jpg, .JPG)
    • 42 PDFs (catálogos, precios)
    • 22 archivos ZIP (listas de precios en dólares y MN)
    • 18 hojas de cálculo Excel (.xls) — intercambios de marcas, catálogos
    • 14 documentos Word (.doc)
    • 1 archivo SQL (script de vista de base de datos INVENTARIO)
    • 1 archivo PHP (C99 web shell)
    • 6 archivos de texto (incluyen credenciales)
    • 1 archivo de log, 1 .gz, 1 .wmv, 1 .swf
  • Impacto: Datos comerciales confidenciales expuestos (listas de precios, catálogos internos)

A2 — Script SQL expone estructura de base de datos interna

  • Archivo: /adminm/archivosnoticias/Script VWArticuloUltimo.sql
  • Contenido: USE [INVENTARIO] — crea vista VWULTIMASALIDA sobre tabla VWDETALLE4
  • DB: Microsoft SQL Server (no MySQL)
  • Impacto: Revela nombres de tablas, columnas y lógica de negocio del sistema de inventario

A3 — Directory listing habilitado en 15+ directorios

Directorios con listing activo:

  • /img/ (50+ archivos), /img/_notes/, /img/common/, /img/glyph/, /img/icons/, /img/imgMenu/
  • /css/, /Scripts/, /login/ (archivos PHP visibles)
  • /principal/img/, /principal/css/
  • /adminm/img/ (17 archivos), /adminm/css/ (2), /adminm/archivosnoticias/ (420)
  • /uploads/, /files/, /imgBanner2/ (20 subdirectorios)
  • /javascript/ (incluye archivos PHP: borraedita.php, borrar.php)

A4 — Fuga de información en formulario de contacto

  • URL: POST a /principal/contactanos_send.php
  • Fuga: Imprime el array completo de mail() en la respuesta HTTP:
    • Email interno: luissigma@hotmail.com
    • From: contactenos@mafratijuana.com
    • Estructura interna del sistema de correo
  • Impacto: Phishing dirigido, spam, ingeniería social

A5 — Sin SPF, DKIM ni DMARC

  • SPF: No configurado
  • DKIM: No configurado
  • DMARC: No configurado
  • MX: mx1/mx2.ntchosting.com (hosting compartido)
  • Impacto: Cualquiera puede enviar emails como @mafratijuana.com (spoofing)

A6 — Posible LFI en accesoarchivos.php

  • Parámetro: txtDestino
  • Uso legítimo: Incluye archivos como ../adminm/archivosnoticias/*.pdf y ../principal/boletines.php?idNoticia=X
  • ModSecurity: Bloquea ../../../etc/passwd pero permite rutas relativas a archivos PHP del sitio
  • Rutas accesibles: ../adminm/index.php, ../adminm/config.php, ../adminm/conexion.php, ../login/logea.php
  • Impacto: Posible lectura de código fuente PHP y archivos de configuración (requiere análisis más profundo)

A7 — FTP expuesto (Pure-FTPd)

  • Puerto: 21/TCP abierto
  • Versión: Pure-FTPd [privsep] [TLS]
  • Anónimo: Deshabilitado
  • Límite: 200 usuarios concurrentes
  • Impacto: Vector de fuerza bruta para credenciales FTP

A8 — TLS 1.0 y 1.1 habilitados

  • Protocolos: TLSv1.0 ✓, TLSv1.1 ✓, TLSv1.2 ✓, TLSv1.3 ✓
  • TLS 1.0/1.1: Deprecados, vulnerables a BEAST/POODLE
  • Cifrados CBC: Presentes en TLS 1.0/1.1
  • Recomendación: Deshabilitar TLS 1.0 y 1.1

A9 — NRPE (Nagios) expuesto en puerto 5666

  • Puerto: 5666/TCP abierto
  • Servicio: tcpwrapped (NRPE - Nagios Remote Plugin Executor)
  • Impacto: Posible ejecución remota de comandos si NRPE no está restringido

HALLAZGOS MEDIOS (7)

M1 — Todas las headers de seguridad HTTP ausentes (7/7)

  • HSTS, CSP, X-Frame-Options, X-Content-Type-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy: NINGUNA presente
  • Impacto: Clickjacking, MIME sniffing, XSS facilitado
  • Sin Secure flag (transmisión en texto plano posible)
  • Sin HttpOnly flag (accesible via JavaScript)
  • Sin SameSite flag (CSRF posible)

M3 — Versión de PHP expuesta en X-Powered-By

  • Header X-Powered-By: PHP/4.4.9 en cada respuesta

M4 — Estructura del login expuesta via directory listing

  • /login/ muestra: error.php, logea.php, logeacookies.php, logeapartes.php, login.php, logout.php
  • Múltiples endpoints de autenticación revelan la arquitectura interna

M5 — Archivos de Dreamweaver expuestos

  • /img/_notes/ contiene archivos .mno de Adobe Dreamweaver
  • Revelan información sobre el entorno de desarrollo

M6 — Log de aplicación expuesto (shcv2.log)

  • URL: /adminm/archivosnoticias/shcv2.log
  • Contenido: Stack traces de .NET (SHC_V20), errores de facturación electrónica SAT
  • Impacto: Revela tecnología interna, rutas de código, lógica de facturación

M7 — Redirección de logout a HTTP (no HTTPS)

  • /login/logout.php redirige a http://www.mafratijuana.com (sin SSL)

HALLAZGOS BAJOS (3)

B1 — Código legacy (Dreamweaver/Flash era)

  • JavaScript inline: MM_nbGroup, AC_RunActiveContent
  • Flash ActiveX content (.swf)
  • HTML 4.01 Transitional

B2 — Hosting compartido (NTC Hosting)

  • NS: dns1/dns2.ntchosting.com
  • Riesgo de "vecino ruidoso" y compromiso lateral

B3 — Cache-Control con directivas legacy

  • post-check=0, pre-check=0 (directivas IE-only obsoletas)

PUERTOS ABIERTOS

Puerto Servicio Estado
21/TCP FTP (Pure-FTPd) Abierto
80/TCP HTTP (Apache) Abierto
443/TCP HTTPS (Apache) Abierto
5666/TCP NRPE (Nagios) Abierto

INFRAESTRUCTURA

Componente Detalle
IP 162.210.97.174
Hosting NTC Hosting (compartido)
Servidor Apache
PHP 4.4.9 (EOL 2008)
SSL Let's Encrypt E8 (válido hasta 2026-05-02)
FTP Pure-FTPd [privsep] [TLS]
WAF ModSecurity (parcial, bypasseable)
Monitoreo NRPE (Nagios) en puerto 5666
DNS dns1/dns2.ntchosting.com
MX mx1/mx2.ntchosting.com
BD referenciada SQL Server (EDGAR-PC\sqlexpress / 201.130.120.52\sqlexpress)

ENDPOINTS DESCUBIERTOS

Panel de Administración (/adminm/)

  • index.php — Login de administración
  • menu.php — Menú principal (sin auth)
  • header.php — Header con menú completo (sin auth)
  • tipoCambio.php — Gestión tipo de cambio (funcional sin auth)
  • catalogoUsuarios.php — Catálogo de usuarios
  • catalogoPaquetes.php — Catálogo de paquetes
  • catalogoNoticias.php — Catálogo de noticias
  • catalogoMarcas.php — Catálogo de marcas
  • catalogoEmail.php — Catálogo de emails
  • pedidosPrincipal.php — Gestión de pedidos
  • catalogoGalerias2.php — Galerías
  • agregarBanner.php — Gestión de banners
  • muestraimagen.php — Visualización de imágenes (SQLi confirmada)

Sitio Público (/principal/)

  • index.php — Página principal
  • boletines.php?idNoticia= — Boletines
  • novedades.php?idNoticia= — Novedades
  • scrolldetalle.php?idNoticia= — Detalles
  • accesoarchivos.php?txtDestino= — Acceso a archivos (LFI potencial)
  • contactanos.php / contactanos_send.php — Contacto (fuga de info)
  • descargaarchivos.php — Descarga de archivos
  • ventas.php, precios.php, marcas.php, promociones.php, nosotros.php
  • lineasdetemporada.php — Líneas de temporada

Login (/login/)

  • logea.php — Login principal
  • logeacookies.php — Login con cookies
  • logeapartes.php — Login por partes (usado por accesoarchivos)
  • login.php — Login alternativo
  • error.php — Página de error
  • logout.php — Cierre de sesión

RECOMENDACIONES PRIORITARIAS

INMEDIATO (24-48 horas)

  1. Asumir compromiso total — El servidor ya fue hackeado. Eliminar C99.php, phpinfo.php (webshell), y auditar todos los archivos.
  2. Cambiar TODAS las contraseñas — Especialmente el SA de SQL Server (BREVA@1) expuesto en SCRIPTPABORRAR.txt
  3. Eliminar archivos sensibles de /adminm/archivosnoticias/ (credenciales, scripts SQL, web shells)
  4. Deshabilitar directory listing en Apache (Options -Indexes)

CORTO PLAZO (1-2 semanas)

  1. Implementar autenticación en todas las páginas de /adminm/
  2. Corregir SQL Injection en muestraimagen.php y todos los endpoints con parámetros
  3. Actualizar ModSecurity con reglas que bloqueen SLEEP(), IF(), BENCHMARK()
  4. Configurar SPF, DKIM y DMARC para el dominio
  5. Deshabilitar TLS 1.0/1.1

MEDIANO PLAZO (1-3 meses)

  1. Migrar a PHP 8.x — PHP 4.4.9 es insostenible
  2. Reconstruir la aplicación con framework moderno y prepared statements
  3. Implementar headers de seguridad (HSTS, CSP, etc.)
  4. Cerrar FTP o migrar a SFTP
  5. Restringir NRPE solo a IPs de monitoreo autorizadas
  6. Mover hosting a proveedor con mejor soporte de seguridad

Reporte generado por Lucy para Consultoría AS — Pentest autorizado