PHP File Upload
ID de alerta: php_upload
MITRE ATT&CK: T1505.003 – Server Software Component: Web Shell
Severidad / Criticidad
Sección titulada «Severidad / Criticidad»¿Por qué se considera maliciosa?
Sección titulada «¿Por qué se considera maliciosa?»- Web shells: permiten la ejecución remota de comandos en el servidor.
- Backdoors: otorgan acceso persistente al atacante.
- Cryptominers: uso no autorizado de los recursos del servidor.
- Spam mailers: convierten el sitio en una plataforma de envío masivo de spam.
- Exfiltración de datos: robo de información sensible.
¿Cuándo salta la alerta?
Sección titulada «¿Cuándo salta la alerta?»- Detección inmediata de extensiones sospechosas:
.php,.php3,.php4,.php5,.phtml,.phar. - Otras extensiones monitorizadas:
- Scripts:
.asp,.aspx,.jsp,.cgi,.pl,.py,.rb. - Ejecutables:
.exe,.dll,.bat,.sh,.ps1.
- Scripts:
- Análisis de contenido: búsqueda de indicadores PHP (
<?php,<?=). - Ventana de deduplicación: 30 segundos.
Indicadores Técnicos (IOCs)
Sección titulada «Indicadores Técnicos (IOCs)»| Tipo | Patrón | Descripción |
|---|---|---|
file_pattern | eval($_POST['cmd']); | Ejecución de código remoto |
file_pattern | system($_GET['command']); | Ejecución de comandos del sistema |
file_pattern | base64_decode( | Código ofuscado |
file_pattern | file_get_contents('php://input') | Lectura directa desde entrada PHP |
file_pattern | c99.php, r57.php, wso.php | Webshells conocidos |
Falsos positivos comunes
Sección titulada «Falsos positivos comunes»- Plugins legítimos mal diseñados que permiten subir archivos PHP.
- Desarrolladores subiendo código de prueba (mala práctica).
- Herramientas de migración o backup que no usan directorios temporales.
Pasos de investigación
Sección titulada «Pasos de investigación»-
No ejecutar el archivo. Examinarlo con:
Ventana de terminal strings /path/to/file.php | grep -E 'eval|exec|system|base64' -
Calcular hash MD5 y SHA256 del archivo.
-
Verificar su origen mediante timestamp y logs de acceso (usuario/IP).
-
Buscar otros shells:
Ventana de terminal find wp-content/uploads -name "*.php" -type f -
Revisar logs para detectar requests dirigidas al archivo sospechoso.
Mitigaciones recomendadas
Sección titulada «Mitigaciones recomendadas»Respuesta automática en Vulnity
Sección titulada «Respuesta automática en Vulnity»Cuando el plugin detecta un archivo PHP dentro de wp-content/uploads, Vulnity no se limita a crear la alerta:
- Registra evidencia del archivo, incluyendo ruta, nombre y hashes cuando están disponibles.
- Intenta instalar o reforzar una regla para bloquear la ejecución de PHP dentro de
uploads. - Verifica si el servidor sigue ejecutando PHP en esa carpeta.
- Si el bloqueo no se puede aplicar o no resulta efectivo, mueve el archivo a
wp-content/uploads/vulnity-quarantine/con extensión.quarantiney protege esa carpeta con reglas de denegación. - Desde el panel de la alerta, si existe contexto de cuarentena, puedes restaurar el archivo o eliminarlo definitivamente desde WordPress.
La restauración solo debe usarse tras verificar manualmente que el archivo no es malicioso. La eliminación es irreversible desde Vulnity.