LinuxParty
Justo hoy me dicen que uno de mis sites estaba infectado, los redirigía a una url, como siempre pasa en estos casos los que crean las inyecciones en sitios web saben que los dueños o usan Firefox o Chrome, entonces en el javascript inyectado detectan que navegador usás.
Si es con alguno de esos, no se "muestra", si es con, por ejemplo, Internet Explorer, activa la maldad. Ahora bien, mis lectores con IE no son más que el 10% por lo que, para colmo, había menos chances de que me entere.
Miro y veo que TODO archivo .php del servidor estaba infectado, habían logrado colar un típico "admin" ofuscado gracias a una vulnerabilidad de Wordpress en un theme de uno de los sitios, si, tanta mala suerte como para que in vivaracho aparezca por ahí y lo infecte.
Una vez adentro con un simple script se puede infectar todo archivo que controle el usuario y así lo hicieron, cada .php tenía un código extra en el encabezado que, para evitar ser fácilmente detectado, está codificado en BASE64, pero a esta altura no es tan difícil verlo, donde hay un eval(base64_decode(" en algún lado ya sabemos que nos dejaron un regalito extra.
Pero ¿cómo removerlo de veinte sitios a la vez? si en promedio cada uno tendrá 400-500 archivos tenía que reemplazar algo así como 10.000 archivos y sin romper nada, pues bien, para eso está el shell de Linux.
Una de las genialidades que más cuesta aprender de los sistemas Unix es la capacidad de concatenar comandos, así en una mísma sentencia podemos buscar, reemplazar y guardar lo que encontremos, miren este ejemplo:
find ./ -name "*.php" -type f | xargs sed -i 's#<?php /\*\*/ eval(base64_decode("aWY.*?>##g' 2>&1
Los caracteres. "aWY", pueden variar, por lo que también sería interesante usarlo así:
find ./ -name "*.php" -type f | xargs sed -i 's#<?php /\*\*/ eval(base64_decode(".*?>##g' 2>&1
Con eso estoy buscando cada archivo PHP y dentro de cada uno la parte característica que representa el probelma, luego lo reemplazo por la nada mísma y guardo.
Se toma su tiempito, tiene que buscar recursivamente en todos los directorios pero en dos minutos tenía todo resuelto.
Ahora a emparchar un theme, un maldito theme, que dejó el hueco ¿ven por qué odio usar wordpress? cero control, demasiado expuesto
Más ejemplos aquí y aquí
-
Seguridad
- Drones, vigilancia y reconocimiento facial: una startup llamada 'Sauron' presenta un sistema de seguridad para el hogar de estilo militar
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- ¿Olvidó su contraseña? Cinco razones por las que necesita un administrador de contraseñas
- Cómo limitar las conexiones SSH (puerto TCP 22) con ufw en Ubuntu Linux
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS