Cuando tienes una web muchas veces puedes encontrarte con que te has convertido en el blanco de algún tipo de cracker que ataca nuestro sitio con el único fin de tener cierto control sobre él, ya no para tirarlo abajo, sino para poder ejecutar código sobre él y así aumentar su ejército de equipos zombie. Veremos en este artículo como bloquear y prevenir el hack nyet.gif.
Este método de hacking es bastante conocido, pero el que veamos aparecer el archivo de imágen nyet.gif en nuestro servidor no significa que hayamos sido hackeados, aunque es bastante probable que así sea.
¿Qué es el hack nyet.gif y cómo funciona?
A grandes rasgos este hack recoge su nombre de la evidencia que es una imágen en el servidor atacado para marcarlo como víctima. Su funcionamiento es el siguiente, el atacante realiza pruebas para tratar de subir archivos por ftp (su bot) hasta que lo consigue y cuelga el archivo de imágen en tu servidor. Una vez colgado hay un segundo bot que es el que se encarga de meter y modificar los archivos que crea convenientes para más adelante utilizarlos para atacar.
Básicamente el archivo nyet.gif solo es un indicio de que alguien ha conseguido subir un archivo y por tanto ya conoce el método que mejor le venga para poder hacerlo (o el usuario y contraseña), aprovechándose de cualquier vulnerabilidad para ello. En este punto aún no hemos sido atacados, y por tanto el bot que viene después sabrá qué servidor es vulnerable o no.
¿Cómo bloquear el hack nyet.gif o al menos que el bot sepa que somos vulnerables?
Como es un poco difícil averiguar cuál ha sido la vulnerabilidad de la que se ha aprovechado el atacante para subir el archivo, y teniendo en cuenta que estos archivos son la prueba que usan para saber a quién atacar, lo que vamos a hacer va a ser directamente bloquear el acceso a este tipo de archivos en todo nuestro servidor. En un principio vamos a necesitar usar apache, aunque si sabes como pasarlo a otros motores como nginx te agradecería lo dejaras en el comentario.
Nos iremos al root de nuestra web, y en el archivo .htaccess agregaremos lo siguiente (al principio mejor):
<Files "nyet.gif"> Order Allow,Deny Deny from all </Files>
Una vez lo tengamos puesto (sin borrar nada de lo que había), le daremos a guardar y a partir de ese momento cada vez que alguien intente entrar al archivo nyet.gif en cualquier carpeta le devolverá una página de error 404, por lo que lo mejor sería que tuvieses configuradas las páginas de error de tu servidor web.
Esto ha sido la primera parte para evitar que una vez abierta una brecha en nuestra seguridad, nos ataquen de verdad, pero vamos a ver también otra cosa para evitar problemas mayores.
¿Cómo evitar que el hack nyet.gif se ejecute en nuestro servidor?
Si ya has sido infectado, y ejecutas el comando «top» en tu servidor, te darás cuenta de que aparecen infinidad de líneas similares a esta:
29977 web11 20 0 316m 99m 67m S 0.0 2.4 0:38.75 bash
Y que la carga de tu servidor puede tener un número desorbitado, por ejemplo rondar el 20 de load average o incluso más. Esto significa que algo está ejecutando código desde tu servidor, con la utilidad o intención que sea, y si no has sido tú que es lo más normal es que has sido hackeado.
Para bloquear la ejecución de código desde nuestras páginas web (siempre y cuando no utilices los comandos), vamos a bloquear ciertas funciones de php, que son las que usará el hack para ejecutar sus scripts.
Nos iremos a /etc/php.ini y lo editaremos con nano, vi o el editor que prefieras. Una vez abierto buscamos la línea que nos indica «disable_functions» y añadiremos lo siguiente para que nos quede así:
disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
Por si acaso deberíamos también bloquear estas dos para evitar más problemas, así que déjalas como estas:
allow_url_fopen=Off allow_url_include=Off
Una vez hecho todo esto simplemente reiniciamos apache
service httpd restart o service apache2 restart Si usas sistemas basados en systemd systemctl restart apache2 o systemctl httpd restart
y desde este momento todas estas funciones dejarán de funcionar, por lo que al ser imposible ejecutar comandos del sistema desde las webs ya no tendremos que preocuparnos por esos scripts que pueden estar atacando otros sitios.
Un consejo, vigila de donde descargas templates y plugins no oficiales, pues generalmente es el foco de infección más fácil ya que tú mismo instalas el hack en tu página.
¿Te ha pasado? ¿Cómo lo has solucionado?