Zaz*_*Zaz 10 linux security sudo malware
我经常听到人们sudo说这是恶意软件感染 Linux 计算机的主要障碍之一。
最常见的说法似乎是这样的:修改系统配置需要root权限,获得root权限需要密码,因此恶意软件无法在不提示输入密码的情况下修改系统配置。
但在我看来,在大多数系统上,默认情况下,一旦恶意软件感染了管理员帐户,权限提升就变得微不足道——恶意软件只需要等待用户运行即可sudo。
恶意软件有哪些方法可以在用户运行时获得 root 权限sudo,我们如何防范它们?
编辑:我对防止管理员帐户遭到入侵特别感兴趣;也就是说,一个具有完全 root 权限sudo的帐户(例如,典型桌面系统上的用户帐户)。
一旦恶意软件获得了对用户帐户的访问权限,它就可以:
1.~/.bashrc为一个伪造[sudo] password for $USER:提示并窃取用户密码的命令创建一个 bash 别名(在当前 shell 和 in 中)。
alias sudo='echo -n "[sudo] password for $USER: " && \
read -r password && \
echo "$password" >/tmp/sudo-password'
Run Code Online (Sandbox Code Playgroud)
2.同理,可以放置一个名为sudoin的可执行文件~/.bin,修改PATH变量达到同样的效果:PATH="$HOME/.bin:$PATH"
3.通过 X 服务器捕捉按键,注意单词sudo,然后尝试将接下来两次Enter按键之间的文本作为密码。
4.类似的事情可以在任何环境(控制台、Wayland、X)中使用 eg 来完成$LD_PRELOAD。
5.如果恶意软件感染了使用sudo并sudo缓存凭据的外壳,恶意软件可以不断检查是否可以在sudo没有密码的情况下进行:
while : ; do
echo | sudo -S echo "test" &>/dev/null && break
sleep 10
done
sudo echo "We now have root access"
Run Code Online (Sandbox Code Playgroud)
1 & 2.使用\/bin/sudo。该\忽略别名和/bin/…忽略$PATH。或者,添加一个别名,例如:ssudo="\/bin/sudo",并始终使用ssudo而不是sudo。病毒似乎不太可能聪明到重新映射这个别名。
3.使用X11时避免输入密码。相反,请使用虚拟控制台或Weston。
5.设置timestamp_timeout=0在/etc/sudoers。
完全消除sudo密码被嗅探的唯一方法似乎是完全避免它。相反,以 root 身份登录到虚拟控制台。
根据 Alexander Peslyak 的说法:“su [和 sudo] 的唯一安全用途是从特权较高的帐户切换到特权较低的帐户......”
附带说明一下, sudo 确实有一些对策:
sudo读取tty而不是stdin,因此alias sudo='tee -a /tmp/sudo-password | sudo'中断sudo(但确实捕获了密码)。| 归档时间: |
|
| 查看次数: |
1743 次 |
| 最近记录: |