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
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- Snort para Windows, detección de Intrusos y seguridad.
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros
- 7 cosas que incluso los nuevos usuarios de Linux pueden hacer para proteger mejor el sistema operativo
- Recuperar contraseñas de archivos comprimidos en 3 pasos
- Administración: Glances - herramienta de monitoreo y supervisión para Linux
- Cómo monitorear sistemas Linux remotos con Glances
- Los 5 mejores VPN del momento
- Cómo bloquear ataques de fuerza bruta SSH usando SSHGUARD en Linux
- Cómo purgar y limpiar tus discos y borrar archivos en forma segura
- Generar password aletorios en Linux
- LinuxParty 6 meses, estadísticas y crecimiento.
- 10 cortafuegos de seguridad de código abierto útiles para sistemas Linux