让AI给我挂载VC容器,他把系统给我搞坏了

作者:6C6F7665 发布:2026-10-11 13:18 收录:2026-10-13 18:03 4 次阅读 约 2830 字
摘要:本来想试试让cursor能不能自己从DIDCTF上下载题目挂载然后做,前面都挺顺利,结果挂载没成功,重启之后,
推荐理由:本文涉及「CTF」主题。
本来想试试让cursor能不能自己从DIDCTF上下载题目挂载然后做,前面都挺顺利,结果挂载没成功,重启之后,系统进不去了,最后只能重装了。痛定思痛看看这cursor到底多厉害,挂载个加密容器还能给我系统搞崩溃。

VeraCrypt 是怎么挂载的

VeraCrypt 的容器就是硬盘上的一个普通大文件。没挂之前,资源管理器里只能看见这一个文件,点开也没有文件夹,因为真正的分区、文件名、文件内容都还是密文。
挂载要有两样东西。一个是我们平常GUI使用的VeraCrypt.exe。一个是实际负责解密和挂载的驱动,veracrypt.sys。VeraCrypt.exe负责给用户做交互,也就是平常的选择容器,输入密码和选择盘符。驱动负责在内核里把这个文件变成一块盘。没有驱动,程序就是个普通窗口,密码输进去也变不出盘符。
挂的时候,程序把容器路径和密码交给驱动。驱动只读容器文件的文件头。这部分记着用的是哪种算法以及真正用来解密后面数据的主密钥。主密钥本身也是用你的密码包起来的。驱动用密码去解这一小段。解出来后头文件还有一段校验,解出来的数据和校验值对不上,就说明密码错了,后面的解密自然不会继续做。校验对上了,驱动才会在内存里做出一块虚拟磁盘。
这块虚拟盘在系统里看起来像新插上的硬盘,在电脑里读它,请求会先到这块虚拟盘,驱动再算出这段数据落在容器的哪个位置,读出来,解密,然后再返回给文件系统。往容器拷贝也就是反过来,先加密,再写回文件里对应的位置。
Windows 认出这块虚拟盘上的文件系统之后,才给它一个盘符。盘符只是个名字。A、Z 都只是“这块虚拟盘从哪个字母进去”。字母被别的东西占着,换一个字母就行,换字母不会去动 C 盘。
所以平常自己用界面挂载,碰不到系统分区。成功的话多出一个盘符,失败的话还是原来那个文件,最多弹个密码错误或者参数错误。
这次用的程VC版本是 1.26.7,cursor挂了好几次都没有成功,开始他挂到Z盘,但我的Z盘实际上是被占用的,提醒他之后还是失败,实际上它认为是没有驱动的问题。
cursor认为没有驱动,就用管理员执行了:
pnputil /add-driver veracrypt.inf /install
pnputil 是 Windows 用来安装驱动的工具。inf 是这份驱动的安装说明。安装向导本来会按说明做检查,看这台系统肯不肯加载它,再决定要不要留到开机。这里没有走向导,说明被直接执行了。后面看日志驱动是装成功的,驱动包名叫 oem180.inf。veracrypt.sys 被复制到 C:\Windows\System32\drivers\。
这份说明里有两处,和平时挂一个文件不是一回事。
第一处是服务怎么启动。它把 veracrypt 登记成文件系统驱动,启动类型写成 0,加载组写成 Filter。启动类型 0 的意思是:下次开机,内核刚装进内存就要加载它,比登录早,比桌面早。Filter 表示它要插在磁盘读写的中间,而不是进系统之后再慢慢启动的普通服务。简单来说,就是bios的启动项会先去读它。
第二处是改一条所有硬盘都会读的名单。类编号 {4d36e967-e325-11ce-bfc1-08002be10318} 代表磁盘这一类设备,装系统的那块盘也在里面。这类设备有一份上层过滤驱动名单,名字叫 UpperFilters。原来上面写着 PartMgr。PartMgr 是分区管理器,硬盘被认出来之后,靠它把里面的分区交出来,C 盘才有。inf 往这份名单后面追加了 veracrypt,又把 PartMgr 再写一次,免得分区管理器丢了。装完之后名单是 PartMgr、veracrypt、PartMgr。
VeraCrypt 把自己放进这份名单,是为了系统盘全盘加密。整块物理盘都加密时,分区还没交出来,驱动就得已经站在读写中间,否则 Windows 连自己的启动分区都解不开。挂一个文件容器用不到这条。容器是登录之后多出来的虚拟盘,密码交给已经加载好的驱动就够了。
装完之后脚本又执行了 sc start veracrypt,想立刻把服务拉起来。没起来。系统日志里的错误号是 1275,意思是 Windows 禁止加载这个驱动。当时开着内存完整性,也开着易受攻击驱动程序阻止列表。1.26.7 这份 2023 年的 sys 过不了这两项检查,内核拒绝把它映射进内存。
1275 只说明这一次启动失败。名单里的 veracrypt 没有被删掉,启动类型也还是 0。

Windows 启动的时候在做什么

按下电源,主板固件先找启动设备。它找到这块硬盘上的 Windows 启动管理器。启动管理器再把内核,以及一批“开机就要用”的驱动,从硬盘读进内存。哪些驱动算这一批,写在系统注册表里。启动类型是 0 的都算。veracrypt 已经被写成 0,组又是 Filter,所以它排在很前面,桌面还没有,它就要被装进来。
内核自己跑起来之后,才开始认硬件。存储驱动先看见物理硬盘,然后 disk.sys 给每一块盘建立一个设备。建立的时候,Windows 会去读磁盘类的 UpperFilters,按上面的名字,把过滤驱动一个一个挂到这块盘上。名单里有谁,这块盘的启动就要等谁。veracrypt 写在里面,系统盘也要等它。
这些过滤驱动都挂上,而且都成功,PartMgr 才能从这块物理盘里把各个分区交出来。分区交出来,才有 C 盘这个卷。有了 C 盘,内核才能继续读 Windows 的系统文件、加载剩下的驱动、出现登录界面。登录之后才是你平时看见的桌面,才轮到 VeraCrypt 的窗口去创建一个虚拟盘、分配 A 或者 Z。
这下好了,本来VC需要先进系统,结果现在是先挂VC那自然成功不了。
服务属性里还有一个错误控制,这份驱动写的是普通。普通的意思是:如果只是这个服务自己没启动,服务管理器记一条错误,开机流程可以继续。这个开关管的是“服务起没起来”。它不管“磁盘设备因为过滤驱动失败而整个没启动”。磁盘设备没启动,是设备这一层的失败,不看那个开关。
还有一件事决定了当天晚上为什么看起来还好。UpperFilters 是在磁盘设备被创建的那一刻读的。晚上改注册表的时候,系统盘的设备早就创建完了,正在用,不会因为你后面往名单里加了一个名字,就把整块系统盘拆掉重建。所以人还坐在桌面前面,容器没挂上,事件查看器里已经是 1275,电脑照常能用。新名单要等下一次开机,磁盘重新被创建,才生效。

为什么一重启就进不去

重启之后,上面两节接在一起了。
内核按启动类型 0 去加载 C:\Windows\System32\drivers\veracrypt.sys。存储驱动认出硬盘,disk.sys 创建磁盘设备,读到 UpperFilters,里面有 veracrypt,于是系统盘的启动要等这个驱动挂上来。
代码完整性检查再看一遍这个文件。内存完整性和易受攻击驱动阻止列表还是开着,结论和晚上一样,1275,不准加载。过滤驱动挂不上,这块磁盘设备的启动就失败。PartMgr 虽然还在名单里,也排在后面,轮不到它把分区交出来。没有分区,就没有 C 盘。没有 C 盘,内核找不到自己的启动卷,登录界面出不来。
这种停法一般是蓝屏停止码 0x7B,无法访问启动设备。停在这里的时候,系统还没进到可以手动卸载驱动的地方。
Cursor当时已经看见 1275,给的办法是重启。还说如果重启之后窗口还在,就先关掉内存完整性和那个阻止列表,再重启一次。这两项安全策略同样是重启之后才改变行为。同一次重启里,过滤驱动先卡在系统盘上,策略还没放开,驱动照样被拒绝。
PE还能看见硬盘,数据也不一定被抹掉。PE用的是恢复分区自己的系统和驱动,不读这套已经写上 veracrypt 的过滤名单,所以它自己能起来,也能看见原来的分区。它做的自动修复,看的是启动配置和系统文件在不在,不会去改磁盘类的 UpperFilters。于是你每次选择正常启动本机系统,都会再走一遍:加载 veracrypt,被 1275 拒绝,系统盘起不来。修几次都是同一个结果。
当时还有一条不用重装的路。进恢复命令行,把原来系统的注册表文件挂出来,文件在 C:\Windows\System32\config\SYSTEM。然后找到 ControlSet001\Control\Class\{4d36e967-e325-11ce-bfc1-08002be10318} 的 UpperFilters,把里面的 veracrypt 去掉,只留下 PartMgr。再把 Services\veracrypt 的 Start 改成 4,4 是禁用,下次开机不再加载它。改完卸载这份注册表,再正常启动,原来的系统还能进。这一步没做,就重装了。
换盘符、改 /v、/letter、--mount-options 的那些脚本,没有把容器挂出来,也没有格式化 C 盘。A 盘列目录的结果是路径不存在,因为虚拟盘从头到尾没创建。系统进不去,是因为一份已经被 1275 拒绝的驱动,被写进了开机就要过滤所有物理盘的名单,然后重启了。

总结

实在没想到veracrypt的挂载会有这么多门道,也属实是学到了,这篇大部分实际上是我让Curosr去分析旧Session的记录和写的脚本得出来的结论,本身也不是我写的,最多改了改语句。说实在这要没有AI我的电脑也不至于重装系统,但又说回来,我也不会学到vc的挂载和bios启动的一些知识,所幸没有什么损失,只能说福祸相依了。总之,对AI一定还是不要给太多权限,想让他全自动化很可能会出现莫名的问题,突然感觉今年美亚杯智能体组可能会出现把电脑搞坏的了。

转载声明:本文转载自原发布平台 (作者:6C6F7665), 原文标题《让AI给我挂载VC容器,他把系统给我搞坏了》, 查看原文。 版权归原作者及原发布平台所有,本站仅作收录与展示,未对正文内容作实质性修改; 若涉及侵权请联系本站处理。