如果我是 root,我可以查看同一本地计算机上其他用户的文件吗?如果是这样,怎么办?
答案1
您可以 $ sudo su 现在您实际上已经是 root 用户了。并且,转到/(root)并查看/home文件夹可以找到机器上的所有用户。
答案2
默认情况下,从 root 切换到不同的用户帐户并不安全。
以 root 用户身份直接浏览所需目录比使用su
或sudo
切换用户要安全得多,因为后者允许受感染的用户自动地通过 TIOCSTI ioctl 将命令推送到 root 的 tty,以 root 身份执行任意命令。
例如,假设有一个hacksu
利用 TIOCSTI ioctl 的二进制文件,并且入侵者修改了受感染的用户帐户 [user] 的 .bashrc 以在 shell 启动时执行该二进制文件。
$ tail -n3 /home/[user]/.bashrc
echo hi
/opt/hacksu -- $'echo "hello world" >> /tmp/file1\nfg'
echo bye
$ _
然后,当 rootsu
对受感染用户使用时,受感染用户可以以 root 身份执行任意命令。
root@host:~# su - [user]
以下 8 行将自身打印到终端,无需用户交互,因为 .bashrc 的获取是自动的。
echo "hello world" >> /tmp/file
1
fg
[1]+ Stopped su - [user]
root@host:~# echo "hello world" >> /tmp/file1
root@host:~# fg
su - [user]
bye
现在,root 意识到出现了问题并关闭了 [user] shell 以检查 [user] 的 .bashrc 做了什么。
[user]@host:~$ logout
root@host:~# ll /tmp/file1
-rw-r--r-- 1 root root 12 Apr 15 00:47 /tmp/file1 # owned by root (!)
root@host:~# cat -v /tmp/file1
hello world
root@host:~# # oops ..
在上面的场景中,[user]刚刚以root用户身份写入了任意文件。实际上,执行的命令可以执行 root 可以执行的任何操作。例如,想象一下,如果hacksu
调用二进制文件来修改/etc/shadow
。
POC 的来源hacksu
二进制文件的源代码可以在以下位置找到:https://www.halfdog.net/Security/2012/TtyPushbackPrivilegeEscalation/。除非您已经解决了受感染用户帐户的威胁,否则请勿切换到其他用户作为 root。
答案3
您还可以这样做:
# su user
以 root 身份成为该用户并查看他的文件