权限提升思路总结
本文章只将思路不讲具体操作
前提:已经拿到webshell或者本地用户权限进行权限提升拿到system或者管理员权限
文章是对小迪安全2022的权限提升进行整理
1.Web权限
web权限不细讲,就是拿webshell的过程
1.1基础
拿到的webshell有哪一些权限 信息收集
有哪一些权限
环境语言用户权限
权限怎么获取
权限能做那些事情
1.2分类
获取思路
网站后台
中间件后台
数据库后台
第三方应用后台
1.3技术
后台功能点(如实现文件操作的功能)
还可以借助网上的公开资料进行利用
1.4补充
部分权限可以实现互相提升转移
如webshell到数据库到本地用户
2.系统权限
2.1windows
2.1.1web->sytem
2.1.1.1溢出漏洞
流程 这个是手工提权的过程 不建议使用
1.信息收集
如收集该受害主机的各种信息
2.筛选exp
windowsVulnScan
wesng
Vulmap
https://Lhacing8.com/tiquan
3.下载exp
kernelHub
Poc-inGithub
exploitdb
4.执行exp
平台
手工提权
cs插件化 利用cs插件进行提权 属于半自动化提权 相对来说好用 可以拿到webshell后 上线cs进行提权
1.taowu
2.ladon
msf全自动化提权 推荐使用
1.生成反弹后门
2.配置监听会话
3.筛选exp模块
4.利用exp溢出提权
2.1.1.2 数据库提权
1.数据库账号密码获取的流程
1.1.网站存在高权限sql注入点
1.2.数据库的存储文件或备份文件
1.3.网站应用源码中的数据库配置文件
1.4.采用工具或脚本爆破(需要解决外联问题 root通常不让外联)
(后面会讲到有一款工具,可以对这五个数据库直接进行提权,前提也是要数据库的账号密码)
2.mysql
2.1条件限制
root密码
-secure-file-priv没进行目录限制, 要求为空 而不是null 或者 在某个目录下面
2.2技术分类
udf提权 建议使用 msf可以一部到位 也可以进行手工udf提权
mysql版本<5.2
mysql版本>5.2
现在的大部分都是>5.2了
数据库启动项目提权
MOF提权
反弹shell
利用工具
navicat
msf
3.mssql
条件限制 需要sa密码
技术分类
xp_cmdshell
sp_orcreate
沙盒
4.oracle
条件限制:数据库的账号密码获取
技术分类
普通用户
dba用户
注入
5.redis
6.postgresql
利用两个爆出的漏洞
cve-2018-1058
本地普通数据库用户
需要数据库管理员数据库触发
cve-2019-9193
本地数据库管理用户
2.1.1.3 第三方应用软件提权
远控类软件
teamvier 向日葵 todesk vnc radmin等 利用网上爆出的漏洞 cs的插件有直接可以利用的
密码类软件
xshell 各大浏览器 navicat 3389 等
服务类 filezilla serv-u zend
cs/msf插件模块 直接利用 第三方软件漏洞进行提权
2.1.2 user->system
2.1.2.1服务命令
条件:需要非web用户权限,不适用常规的webshell权限提升
at命令
win7后弃用
适用win2003,win7之前的版本
at 21:00 /interactive cmd
sc命令
win7之后弃用
sc Create syscmd binPath= “cmd /K start” type=own type=ineract
ps命令 建议 使用
通杀
Pstools 利用这个工具 不会被杀
2.1.2.2进程注入
pinjector
使用msf的migrate命令 注入到有system权限的进程
2.1.2.3令牌窃取
使用msf
use incognito
list_tokens -u
impersonate_token “NT AUTHORITY\SYSTEM”
配合土豆溢出漏洞
适用于web环境
ms16-075
2.1.2.4uac绕过
msf内置模块
ask
bypassua
bypassuac_sluihijack
bypassuac_silentcleanup
可以直接msf search uac 看下有哪一些可以利用的
uac分等级
无
低
中 无 低 中 利用上面的其他模块
高 user exploit/windows/local/ask
2.1.2.5dll劫持
信息收集 看服务器第三方软件情况
劫持探针火绒剑去分析调用的dll (火绒剑已经不让用了 直接用火绒软件上去看软件调用了哪一些dll)
chkdllhijack脚本检测是否可以劫持
dll利用
msf生成恶意dll
删除上传或覆盖原有dll
等待管理员运行被劫持的软件
2.1.2.6不安全的服务路径
条件 不带引号 路径带空格
利用
探针 jaws 命令
生成msf后门
等待启动 利用路径的空格前为后门地址构造上传,启动服务
原理就是服务是以system启动的 不带空格 可以进行路径欺骗 将原有服务的路径 换成后门的路径实现提权
2.1.2.7不安全的服务权限
条件 服务在创建时设置了部分用户的可控
利用 探针 accesscjl powerup
生产msf后门
修改服务路径 sc config “服务名” binpath=‘后门路径’
启动 启动服务 sc start 服务名
可以直接修改路径为后门路径 注意与上面的区分 上面哪个并没有权限修改服务路径
2.2linux权限
2.2.1项目
一个综合类探针:traitor
一个自动化提权:BeRoot(gtfobins&lolbas)
两个信息收集:LinEnum linuxxpivchecker
两个漏洞探针: linux-exploit-suggester
2.2.2web->root
2.2.2.1.内核
步骤
1.漏扫收集 (前面的探针项目)
2.下载exp
3.编译exp
4.执行exp
好用的内核漏洞
脏牛漏洞cve-2016-0847
脏管道dirty pipe cve-2022-0847
2.2.2.2.suid
1.信息收集
2.suid对应查找
namp
vim
find
bash
more
less
nano
cp
3.利用suid资料去利用
2.2.2.3.权限配置不当
查找所有777的文件
查看定时任务有没有777执行文件
直接修改定时任务执行文件内置命令
我们没有权限修改定时任务 因为需要root权限 但是如果定时任务调用了某个文件 某个文件正好是777 我们则可以修改该文件内容
2.2.2.4.数据库提权
数据库类型与windos的5个一致
有自动化提权的项目
mdut2.0
odat
sqlserver利用工具
推荐使用Multiple.Database.Utilization.Tools-2.1.1
2.2.3user->root
2.2.3.1环境变量
条件
定时任务中有自定义的文件执行(只是查看定时任务有哪些文件 我们并不能操作定时任务里面的内容)
自动义程序能探针出执行的相关命令
执行的命令有环境变量的命令(如ps或bash等)
利用
1.先进入定时任务的程序目录
2.写入当前目录到环境变量去
3.复制程序的执行的命令当前目录
4.通过相应的suid命令提权
2.2.3.2定时任务
条件
定时任务 有自定义的某些命令
自动义程序能探针出执行的相关命令
举例 一般网站会有自动备份压缩tar的命令在定时任务中
如存在tar backup.tar.gz -zvf /var/www/* 将/var/www/* 下的目录进行打包
利用tar的相关参数 调用其他命令提权
1.写入参数调用执行
echo “” > --checkpoint=1 #创建一个 ‘–checkpoint=1’ 文件
echo “” > “–checkpoint-action=exec=sh test.sh” 创建一个 'checkpoint-action=exec=sh test.sh’文件
echo ‘cp /bin/bash /tmp/bash; chmod +s /tmp/bash’ >tesh.sh
#cp /bin/bash /tmp/bash; chmod +s /tmp/bash
#复制 /bin/bahs 到 /tmp bash 给tmp/bash suid 权限
chmod +x tesh.sh #给 tesh.sh 执行权限
其实就是在某个目录下创建 --checkpoint=1 --checkpoint-action=exec=sh test.sh 两个文件
在创建一个tesh.sh 文件
由于压缩的是所有文件 在压缩过程中 是执行了 tar backup.tar.gz -zvf /var/www/ --checkpoint=1 --checkpoint-action=exec=sh test.sh
这个命令调用了tesh.sh 去复制/bin/bash 到 /tmp bash 给tmp/bash 实现权限提升
2.2.3.3rsync
该服务可以上传下载文件
利用条件
873端口开放
未授权访问 就是没有密码
流程
下载目标的定时任务
本机创建执行文件进行覆盖定时任务目标
上传覆盖文件 rsync -av nc rsync://x.x.x.x/src/etc/cron.houtrly
下载文件 rsync -av rsync://x.x.x.x/src/etc/cron.houtrly
2.2.3.4 docker挂载提权
条件
有docker服务
当前用户在docker组 groups 用户名
流程
直接就利用 -v -it 进行挂载shell
docker run -v /root:/mnt -it alpine
2.2.3.5sudo
就是利用sudo 爆出来的漏洞
cve-2021-3155 看版本对不对的上 对的上就直接下载exp利用
2.2.3.6polkit
与sudo一样的
cve-2021-4034
域控提权
WIN-域内用户到AD域控-CVE-2014-6324
2、WIN-域内用户到AD域控-CVE-2020-1472
3、WIN-域内用户到AD域控-CVE-2021-42287
4、WIN-域内用户到AD域控-CVE-2022-26923
4个漏洞的利用
权限提升-Win系统权限提升篇&AD内网域控&NetLogon&ADCS&PAC&KDC&CVE漏洞_权限提升ad域-CSDN博客
it 进行挂载shell
docker run -v /root:/mnt -it alpine
2.2.3.5sudo
就是利用sudo 爆出来的漏洞
cve-2021-3155 看版本对不对的上 对的上就直接下载exp利用
2.2.3.6polkit
与sudo一样的
cve-2021-4034
域控提权
WIN-域内用户到AD域控-CVE-2014-6324
2、WIN-域内用户到AD域控-CVE-2020-1472
3、WIN-域内用户到AD域控-CVE-2021-42287
4、WIN-域内用户到AD域控-CVE-2022-26923
4个漏洞的利用
权限提升-Win系统权限提升篇&AD内网域控&NetLogon&ADCS&PAC&KDC&CVE漏洞_权限提升ad域-CSDN博客
直接看文章