Bunun gibi bir saldırının işe yarayacağından şüpheliyim, burada "bir şey" rootfs yüklendikten sonra yüklenmeye çalışacak bir çekirdek modülüdür:
$ sudo mkdir -m 777 /lib/modules/`uname -r`/a
$ cp evil.ko /lib/modules/`uname -r`/a/«something».ko
Ayrıca, modülde belirtilen diğer isimlere bağlı olarak diğer isimleri de kullanabileceğinizi unutmayın. Depmod çalıştırılıncaya kadar yüklenmeyeceğini tahmin ediyorum, bu bir sonraki çekirdek güncellemesinde gerçekleşecek - bu yüzden mkdir
son zamanlarda sudo günlüğünde bile gösterilmeyecek.
/ Etc içinde bir dizindeki tüm dosyaları bazen yinelemeli olarak okuyan pek çok şey vardır. Daha da kötüsü, bu dizinlerin bazıları varsayılan olarak mevcut değildir ve bunları bilmenin tek yolu, onları kullanan program için manpage, init betikleri vb. Okumaktır. Bazıları daha da kötüsü geriye dönük uyumluluktan mahrum kalıyor ve artık belgelenmiyor bile olabilir.
düzenleme: Birkaç dizin daha düşündüm, bunlar /usr/local
:
/usr/local/lib/perl/5.14.2
(Perl sürümüne bağlı olarak değişir, perl -V
bulmaya çalışın ). File
Orada bir alt dizin oluşturun ve içine bir koyun Find.pm
. Şimdi ne zaman birileri kullanıyorsa File::Find
, saldırganın sürümünü kullanacaklar. Benzer şekilde, aynı şeyi yapın Getopt::Long
. Sistem yardımcı programları genellikle Perl'de yazılmıştır, bu nedenle bu muhtemelen kökü verir. (Dene ack-grep --color -a 'use.+::' /usr/sbin | less -R
)
- Ben Python, Ruby, vb benzer dizinleri var düşünüyorum. Sistem araçları Python'da da yazılmıştır.
- Birinin alt dizinleriyle derlediği birçok şeyi altüst edin
/usr/local/include
.