我注意到sudo
在终端中运行命令或运行使用的管理应用程序后gksudo
,它在一段时间内不会再次询问密码(大约 5 分钟)。
现在让我们假设我正在使用的程序之一(不是以 root 身份运行)存在零日漏洞(例如 Web 浏览器或其插件)。攻击者设法代表我运行任意代码。
攻击者是否有可能在密码过期之前执行sudo
或gksudo
不执行密码提示并接管我的系统?
答案1
是的,以您的用户身份运行代码的攻击者可以执行您自己可以执行的任何操作。它甚至可以更改你的 shell 进程,这样当你认为你正在运行 sudo 时,你实际上正在运行攻击者的程序,该程序只是默默地记录你的 root 密码。
Ptys/ttys 报价不当它们由同一用户拥有时的安全性,与此处的另一个答案相反。
答案2
不,不会的。
sudo 通过 tty 名称(或 pty)维护访问令牌,因为浏览器和终端仿真器在不同的 pty 上运行,所以它不会使用相同的令牌。
找到它的一种简单方法是在一个终端中运行 sudo,然后在另一个终端中再次运行它,系统会再次提示您输入密码(请参阅 /var/db/sudo)
答案3
“攻击者是否有可能在密码过期之前在没有密码提示的情况下执行 sudo 或 gksudo 并接管我的系统?”
是的。
最简单的攻击来自于交互式 shell,并且当您离开键盘时您没有锁定屏幕。
如果担心的话就换线
Defaults timestamp_timeout=90
在您的 中/etc/sudoers
,它更改了 5 分钟超时。