Base de conocimientos

Hack de archivos .ico Malware

Este truco se caracteriza por algunas cosas:
1. Aparecen cuentas de administrador que no creaste.
2. Roles que no hiciste apareciendo.
3. Aparecen archivos “ico” maliciosos en el servidor con código php.
4. Archivos php aleatorios que aparecen en los directorios del sitio.
5. Aparece mucho archivo “index.php” adicional en todo el sitio.
6. Archivos php e inc que han sido modificados con código ofuscado.
7. Infecciones entre sitios en un WHM compartido. Archivos infectados en el directorio home / cpeasyapache.

Algunos dicen que hay “puertas traseras” donde los piratas están entrando. Dudé mucho esto después de parchear a 7.59 ya que las cuentas de administrador maliciosas no aparecían de nuevo. Lo que estaba sucediendo es que los archivos “ico” aparecían cada 5 – 10 horas, y estos a su vez creaban un montón de archivos php de cadena aleatoria y archivos index.php que apuntaban al archivo ico. Este código parecía poder afectar a varios sitios que comparten el mismo WHM.

Pasos para corregir el hack sin destruir sus sitios:

Preparación:
1. Haga una copia de seguridad de su sitio y base de datos, ponga el sitio en modo de mantenimiento.
2. Asegúrese de tener acceso SSH a su WHM o Cpanel.
3. Inicie sesión en el sitio y elimine cualquier cuenta de administrador maliciosa.
4. Elimine los roles que no hizo.
5. Desde cpannel, usando phpmyadmin, busque en las tablas de su base de datos usuarios y roles, elimine cualquier tabla que sepa que no debería estar allí. (Se supone que el usuario 0 está allí)
6. Cambie todas las contraseñas de la base de datos y de los usuarios.

Arreglo:
1. De SSH. ejecute una consulta desde la carpeta public_html como esta:

find -name index.php

Si ves una gran cantidad de archivos en Drupal, estás pirateado. Se supone que solo hay 1 index.php.

2. Elimine TODOS los archivos index.php con este comando:

find -name index.php -exec rm -rf {} \;

Reemplazaremos el archivo index.php principal cuando actualicemos a la versión más reciente de Drupal.

3. Busque archivos de iconos que no pertenezcan a este comando:

find -name "*.ico"

Si ve un montón de archivos de iconos extraños que comienzan con un. y teniendo una cadena aleatoria, son archivos php. Acabo de eliminar todos los archivos de iconos ya que no me importan una mierda con:

find -name "*.ico" -exec rm -rf {} \;

Si desea conservar sus archivos de iconos, simplemente elimine manualmente los sospechosos con ftp.Estoy leyendo que también hubo archivos distintos de .ico que se asociaron con este truco. Una forma fácil de identificar qué extensión están usando es abrir uno de sus archivos index.php pirateados y copiar esta línea de texto:

@include "\057h\157m\145/\147l\145n\143c\057p\165b\154i\143_\150t\155l\057p\162o\146i\154e\163/\164e\163t\151n\147/\0564\0621\142e\071a\067.\151c\157";

Pégalo aquí: Unphp.net

Le dirá a qué archivo malicioso apunta. Use esa información para eliminar todos los archivos de ese tipo usando el comando SSH anterior, pero para la extensión maliciosa en lugar de .ico.

4. Busque los otros archivos php maliciosos que no pertenecen. En mi sitio, todos eran archivos php con nombres de caracteres de 8 az. Como dkelfesa.php o algo así. Utilice esta expresión regular para buscar archivos php de 8 caracteres:

find . -type f | egrep './[a-z]{8}\.php'

Elimine los que sospeche que son maliciosos. Normalmente, el nombre no tendrá ningún sentido. Si los abres y ves un fragmento de código php que no puedes leer, son maliciosos.

5. Después de hacer todo eso, todavía estaba siendo pirateado y no podía entenderlo. Decidí abrir mi base de datos para el sitio en phpMyAdmin y ejecutar una búsqueda en todas las tablas para:

<? php

para buscar cualquier código php malicioso que me hubiera perdido. Resulta que cuando ocurrió el hack original, el hacker había utilizado la cuenta de administrador para crear un bloque llamado “Desarrollo”. No le dio ningún título y en el cuerpo insertó su código php malicioso. Luego habilitó esto en el sitio. Podía llamarlo de forma remota y reinfectaría el sitio con los archivos ico, los archivos index.php y los archivos php de cadena aleatoria. Ejecute una búsqueda en la base de datos para la etiqueta php anterior y observe todos los resultados en busca de código malicioso en su sitio en nodos o bloques de contenido. Elimina cualquier código que no puedas leer fácilmente.

6. También había bastantes archivos php e inc en la instalación de Drupal que habían sido modificados con php malicioso en la parte superior del archivo o simplemente no pertenecían. Fueron nombrados inteligentemente y guardados en carpetas de módulos, carpetas de biblioteca, en todas partes. Cuando los descubrí, creé estos patrones grep para ayudar a otros a encontrarlos. Desafortunadamente, encontré 4 archivos maliciosos en el directorio /home /cpeasyapache. Estos parecían tener la capacidad de escanear todos los sitios en el host compartido e infectarlos a todos. Utilice estas búsquedas en el nivel raíz de WHM para buscar archivos php e inc maliciosos. Retirarlos o limpiarlos.

find . -type f -name '*.php' | xargs grep -l " *=PHP_VERSION *" 
find . -type f -name '*.php' | xargs grep -l " *Phar::interceptFileFuncs() *"
find . -type f -name '*.php' | xargs grep -l " *@include *" 
find . -type f -name '*.php' | xargs grep -l " *interceptFileFuncs *"
find . -type f -name '*.php' | xargs grep -l " *eval *( *gzinflate *( *base64_decode *( *"
find . -type f -name '*.php' | xargs grep -l " *base64_decode *"
find . -type f -name '*.php' | xargs grep -l " *function *wscandir *"
find . -type f -name '*.php' | xargs grep -l " *HTTP/1.0 *404 *Not *Found *"
find . -type f -name '*.php' | xargs grep -l " *@gzuncompress *" 
find . -type f -name '*.php' | xargs grep -l " *Array *( *) *; *global *" 
find . -type f -name '*.php' | xargs grep -l " *@unserialize *"

Si no tiene acceso a su raíz, comuníquese con su proveedor de host para que lo escanee en busca de los patrones anteriores y elimine los archivos maliciosos.

A continuación, se muestra un ejemplo de código malicioso que se encuentra en un archivo en el directorio / cpeasyapachy de la raíz de WHM:

El archivo completo tenía algunas funciones que escaneaban la raíz, buscaban archivos inc y php, cambiaban los permisos de las carpetas y creaban los archivos index.php. Había 4 archivos en el directorio cpeasyapache que se parecían a esto:
Malicious.txt

Conclusión: una vez que haya hecho esto. Descargue la última versión de Drupal y cópiela en su sitio. Esto reemplazará el archivo index.php principal y su sitio debería estar funcionando nuevamente.

Instale los módulos más recientes.

Ejecute update.php

Por último, verifique la configuración de permisos de archivo en la carpeta public_html. Los directorios deben establecerse en 755 y los archivos en 644. Una forma rápida de hacerlo es:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Una vez hecho esto, instale el módulo “Hackeado” para inspeccionar su sitio en busca de cambios asociados con este truco.

Otros buenos módulos son la seguridad de inicio de sesión y path2ban.

Borre todos los cachés del sitio y el historial / cachés del navegador web.