例如,有人创建了一个虚假的身份验证对话框来获取我的 root 密码。如何知道它是真是假?
答案1
因此,您 [可能] 正在查看 PolicyKit 升级提示。任何没有这些提示的人都可以运行 run pkexec echo
(或类似命令),他们会得到类似的结果。
我们如何检查它的真的PolicyKit,不是一些定制的网络钓鱼窗口吗?
好吧,您可以使用 获取有关窗口的信息xprop
,也可以使用 获取命令信息,ps
所以让我们将它们结合起来!在我们继续之前,因为我们在这里非常偏执,所以我使用完整路径,以防有人添加了任何这些命令的本地破解副本。这是我在我的pkexec echo
盒子上运行它:
$ /bin/ps $(/usr/bin/xprop _NET_WM_PID | /usr/bin/awk '{print $NF}')
PID TTY STAT TIME COMMAND
3989 ? Sl 0:00 /usr/lib/kde4/libexec/polkit-kde-authentication-agent-1
因此,据我们所知(请注意,我是 KDE 用户),这是一个合法的提示。它没有运行某些本地脚本,因此只要某些恶意程序尚未根植系统(但是,嘿,他们为什么又需要我们的密码?),我们可能就安全了。
我们怎么知道它要做什么?
对于 和gksu
,kdesu
提示pkexec
会非常明确地说明它们要运行什么。对于前两个,上面的命令将告诉您它们计划运行什么:
$ /bin/ps $(/usr/bin/xprop _NET_WM_PID | /usr/bin/awk '{print $NF}')
PID TTY STAT TIME COMMAND
10395 ? Sl 0:00 /usr/lib/kde4/libexec/kdesu -u root -c /usr/sbin/synaptic
对于 PolicyKit,您可以单击该详细信息选项卡,然后您将看到它要执行哪个权限。在 KDE 中,您还将看到可以查找的调用者 PID(ps <PID>
)。以下是它在 KDE 中的样子:
您可以将鼠标悬停在操作上并获取它要执行的 PolicyKit 策略。在 Ubuntu 中,默认情况下会显示该策略。可以查找这些策略。上面的策略来自/usr/share/polkit-1/actions/org.kubuntu.qaptworker2.policy
中指定的服务/usr/share/dbus-1/system-services/org.kubuntu.qaptworker2.service
。您可以看到正在运行的内容以及由谁运行。这些服务只能由 root 添加,因此,除非您已经 root 了,否则您可能可以信任这些服务。
但不要盲目相信 PolicyKit!
PolicyKit 具有这些规则和服务,因此可以以 root 身份执行某些操作,而无需像那样运行整个过程。不过,您需要保持警惕。显然,如果您正在运行gnome-calculator
并且org.freedesktop.policykit.exec
弹出提示,则有些事情很可疑。
在输入密码之前进行调查可能没什么用。输入完就太晚了。
即使一切都是合法的,谁能保证你没有键盘记录器窃取你的所有密码?或者有什么东西可以覆盖你,$PATH
或者在你的电脑里留下一些可怕的东西~/.bashrc
,让你看起来好像没有被黑客入侵?我相当肯定,只要你足够专注,你就能绕过上述所有的检测程序。
睡得好。