Si su web esta infectada o tiene un código malicioso, es recomendable empezar de análisis de logs de su servidor.

Ejemplo logs sospechosos de servidor con Apache:

Como encontrar ficheros infectados?

abrimos el fichero access_log i buscamos algo parecido a esto:

compbcn.es 85.214.116.86 - - [03/Mar/2015:00:38:04 +0300] "POST /wp-includes/js/tinymce/plugins/paste/toolbar.admin.php HTTP/1.1" 404 69490 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0" 0
compbcn.es 85.214.116.86 - - [03/Mar/2015:00:38:05 +0300] "POST /wp-content/uploads/ultimate-tinymce/imgmgr/1649/files/press.php HTTP/1.1" 404 69490 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0" 0
compbcn.es 85.214.116.86 - - [03/Mar/2015:00:38:06 +0300] "POST /wp-includes/SimplePie/Decode/option.php HTTP/1.1" 404 69490 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0" 0

Vemos que hay unos peticiones (POST) raros a ficheros .php que posiblemente contiene shell o virus o mailer o otro tipo de script malo que envía spam etc…

Si tenéis acceso shell en su alojamiento podemos usar unos comandos de linux, si no, hay que descargar los ficheros en ordenador y hacer la busqueda con notepad++ o similar.

Como detectar archivos sospechosos?

Continuamos con detectar los archivos reciente creados últimos 7 días

find . -type f -name '*.php' -mtime -7

Buscamos en ficheros .php que contenga cosas sospechosos como funciones potencialmente peligrosos de php:

eval, base64_decode, gzinflate o str_rot13.

Primar comando es buscar funcion “eval” en todos ficheros de .php.
El siguente es buscar contenifo codificado con fucnion “base64_decode”.
Para esto usamos:

find . -type f -name '*.php' | xargs grep -l "eval *(" --color
find . -type f -name '*.php' | xargs grep -l "base64_decode *(" --color

Otros comandos útiles:

Comprobar ficheros .htaccess en caso de usar Apache

funciones “auto_append_file” o “auto_prepend_file” incluye otros ficheros .php en principio o al final de ficheros .php

find . -type f -name '\.htaccess' | xargs grep -i auto_prepend_file;
find . -type f -name '\.htaccess' | xargs grep -i auto_append_file;

El otro busca unos re-direcciones:

find . -type f -name '\.htaccess' | xargs grep -i http;

Prevenir ejecutar programas en directorias de imágenes:

Todo simple. A carpetas necesarias añadimos el fichero .htaccess con contenido:

php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp

Por lo cual desactivamos el PHP, si ententar a ejecurar uno, se vera en pantalla el contenido de documento