Security for AI 8小时前 · 2026-10-07 00:49:52 · 0 阅读
失控AIAgent如何滥用urlquery远程浏览器执行,抽取俄罗斯政府数据
近期看到的一篇文章分享,比较系统性的梳理了自主性失控Agent的真实攻击过程原文:https://labs.zenity.io/post/rogue-ai-agents-abuse-urlquery-remote-browser-execution-to-extract-russian-government-data摘要我们发现了这批失控AI Agent集群的更多活动与沙箱绕过手法。它们尝试抽取俄罗斯政府数据、劫持远程浏览器服务,并运行JavaScript,以扩展能力、绕过网络与沙箱限制,完成任务。Agent将JavaScript藏入Base64编码的URL,再提交给URL扫描器。此举滥用了这些服务用于扫描的远程浏览器,以扩大集群活动范围,并尝试多阶段VNC跨会话劫持等手法。下文拆开我们观察到的最明显活动,并逐步说明绕过步骤。Agent的目标这些Agent瞄准了各类政府数据门户,试图抽取统计数据。数据中最突出的一段,是针对fedresurs.ru(俄罗斯联邦破产登记处)上某个法律实体破产数据的活动。这些Agent找到一种方法:通过urlquery.net运行代码。这是一个公开URL扫描器,会在真实浏览器中打开链接。
目标:与某一法律实体相关的破产公告,译为有限责任公司"TECH-PROGRESS"即便urlquery的浏览器也无法直接访问fedresurs.ru的API,失控Agent只能另寻途径。失控Agent集群尝试了VNC跨会话劫持,以及后文所述的其他新恶意手法。
在一次被捕获的尝试中,Fedresurs API 返回 403 Forbidden本文延续Transluce与Corridor的工作。他们记录了urlquery上的Agent活动,并公开了所观察有效载荷的数据集。
公开扫描提交表单urlquery的提交表单,以及它自己对如何在真实浏览器中打开页面的说明Agent为什么要用URL扫描器?失控AI Agent受限于沙箱环境,仅能访问有限网段内的网站和外部数据源。Agent发现urlquery可帮助绕过部分网络限制:每个被提交的URL都会在具备完整互联网访问的真实浏览器中打开。只要将JavaScript藏入提交的URL,并让urlquery的浏览器代为执行,即可获得完整的浏览器能力与JavaScript执行。
urlquery对其 JavaScript 执行与网络能力的说明
一条被记录的请求,识别出 urlquery 使用的是 FirefoxAgent如何使用远程浏览器执行Agent使用类似http bin的服务,将JavaScript Base64编码进URL,手法与我们上一篇文章所述相同。随后将这些URL提交给urlquery扫描,以便在其远程浏览器中执行文档内嵌的JavaScript。Base64编码的文档经浏览器处理后作为网页返回。以下取自真实活动:此前文章:https://labs.zenity.io/post/rogue-ai-agents-swarm-encoded-url-messages-laundering
这段JavaScript向澳大利亚政府门户aihw.gov发起fetch。其他关于这批失控AI Agent集群的在线报告中也出现过该门户。下一阶段:URL伪装投递与上一篇博文所述的URL伪装投递类似,这一次使用了JavaScript,手法更为复杂。以下为这次提交给urlquery的请求:https://urlquery.net/report/3bad0896-3ef4-4b2a-afd6-5e10c667c530
嵌入的JavaScript是一段专门编写的脚本,用于从前文同一澳大利亚政府门户取回仪表盘初始化数据。失控Agent还使用分块压缩,并借助第三方服务处理、保存响应,存放至其随后可访问的位置。
受阻之处即便如此,Agent仍无法以直接请求查询fedresurs.ru的API。它们面对的是以下两点:
明文 fedresurs.ru URL 在 urlquery 中成功加载(urlquery 扫描)
urlquery 中一次被归档的失败桥接尝试Agent远程劫持浏览器桥接尝试失败。Agent的代码从httpbun.com运行,试图在frame和弹出窗口中加载fedresurs.ru,但远程浏览器似乎阻止了这些尝试。将明文fedresurs.ru的/companies地址直接提交给urlquery可以成功。但Agent所需数据位于/backend接口之后,它们无法将浏览器导航至该处。若集群能够劫持已成功的浏览器会话,并进一步操控它呢?接管另一个浏览器VNC(Virtual Network Computing,虚拟网络计算)是一种远程查看并控制另一台计算机屏幕的协议。urlquery通过VNC暴露每次扫描的浏览器,供操作员实时观看。Agent利用这一点,从一个浏览器会话接管另一次扫描的浏览器。这次VNC劫持要求Agent同时调度2个独立的浏览器会话,让它们同时运行在urlquery的基础设施上。VNC劫持Agent连续向urlquery提交了2个URL:
目标扫描正常加载了 fedresurs.ru
解码后,它连接扫描A的VNC端点并取得交互控制。
同一会话连接到目标会话时,还出现了HTTP 101连接升级:
控制器的网络日志显示一次被接受的 VNC 连接在urlquery记录的HTTP请求中,该载荷从tinyurl.com开始,先混淆再重定向,再用httpbun.com封装,接着到jsdelivr.net导入VNC功能,最后连接回urlquery.net自身。
远程键盘注入VNC连接建立后,控制器即可看到目标浏览器屏幕并注入击键。载荷按下Ctrl+L以定位地址栏,再重新输入URL:
未能一次成功失控Agent似乎并未一次成功。
一次失败尝试返回错误它们提交了7次VNC扫描,覆盖4种载荷变体,每次调整以下内容:
目标:与某一法律实体相关的破产公告,译为有限责任公司"TECH-PROGRESS"即便urlquery的浏览器也无法直接访问fedresurs.ru的API,失控Agent只能另寻途径。失控Agent集群尝试了VNC跨会话劫持,以及后文所述的其他新恶意手法。
在一次被捕获的尝试中,Fedresurs API 返回 403 Forbidden本文延续Transluce与Corridor的工作。他们记录了urlquery上的Agent活动,并公开了所观察有效载荷的数据集。- Transluce:https://transluce.org
- Corridor:https://corridor.dev
- urlquery上的Agent活动:https://transluce.org/agent-activity
公开扫描提交表单urlquery的提交表单,以及它自己对如何在真实浏览器中打开页面的说明Agent为什么要用URL扫描器?失控AI Agent受限于沙箱环境,仅能访问有限网段内的网站和外部数据源。Agent发现urlquery可帮助绕过部分网络限制:每个被提交的URL都会在具备完整互联网访问的真实浏览器中打开。只要将JavaScript藏入提交的URL,并让urlquery的浏览器代为执行,即可获得完整的浏览器能力与JavaScript执行。
urlquery对其 JavaScript 执行与网络能力的说明
一条被记录的请求,识别出 urlquery 使用的是 FirefoxAgent如何使用远程浏览器执行Agent使用类似http bin的服务,将JavaScript Base64编码进URL,手法与我们上一篇文章所述相同。随后将这些URL提交给urlquery扫描,以便在其远程浏览器中执行文档内嵌的JavaScript。Base64编码的文档经浏览器处理后作为网页返回。以下取自真实活动:此前文章:https://labs.zenity.io/post/rogue-ai-agents-swarm-encoded-url-messages-launderinghttps://httpbun.com/base64/PHNjcmlwdD5mZXRjaCgnaHR0cHM6Ly92aXpwcm9kLmFpaHcuZ292这段Base64解码后为以下JavaScript,来自集群中实际发现的活动:
这段JavaScript向澳大利亚政府门户aihw.gov发起fetch。其他关于这批失控AI Agent集群的在线报告中也出现过该门户。下一阶段:URL伪装投递与上一篇博文所述的URL伪装投递类似,这一次使用了JavaScript,手法更为复杂。以下为这次提交给urlquery的请求:https://urlquery.net/report/3bad0896-3ef4-4b2a-afd6-5e10c667c530
嵌入的JavaScript是一段专门编写的脚本,用于从前文同一澳大利亚政府门户取回仪表盘初始化数据。失控Agent还使用分块压缩,并借助第三方服务处理、保存响应,存放至其随后可访问的位置。
受阻之处即便如此,Agent仍无法以直接请求查询fedresurs.ru的API。它们面对的是以下两点:- 直接访问/companies路径可以成功:
https://fedresurs.ru/companies/61065761-3be6-47f7-afe5-e597c74ef44c/publications
明文 fedresurs.ru URL 在 urlquery 中成功加载(urlquery 扫描)- 访问站点API的/backend路径并附带查询参数,会返回403或404。Agent似乎将其视为反机器人保护的一部分:
https://fedresurs.ru/backend/companies/61065761-3be6-47f7-afe5-e597c74ef44c/publications?limit=100&offset=0Agent如何尝试绕过限制我们估计,Agent将所面临的问题理解为:- 有些网站会在首次访问时设置会话cookie。缺少该cookie时,API可能拒绝访问。这是常见的反机器人保护机制。
- 若Agent能从站点上另一个活动会话取得有效cookie,而该会话原本用于访问站点未受限部分,即可用该cookie绕过对API的查询限制。
- 在隐藏iframe中加载网站,等待后重定向
- 在弹出窗口中打开网站,等待后更改弹出窗口的地址

- 创建两个链接,按顺序、带延迟地点击
urlquery 中一次被归档的失败桥接尝试Agent远程劫持浏览器桥接尝试失败。Agent的代码从httpbun.com运行,试图在frame和弹出窗口中加载fedresurs.ru,但远程浏览器似乎阻止了这些尝试。将明文fedresurs.ru的/companies地址直接提交给urlquery可以成功。但Agent所需数据位于/backend接口之后,它们无法将浏览器导航至该处。若集群能够劫持已成功的浏览器会话,并进一步操控它呢?接管另一个浏览器VNC(Virtual Network Computing,虚拟网络计算)是一种远程查看并控制另一台计算机屏幕的协议。urlquery通过VNC暴露每次扫描的浏览器,供操作员实时观看。Agent利用这一点,从一个浏览器会话接管另一次扫描的浏览器。这次VNC劫持要求Agent同时调度2个独立的浏览器会话,让它们同时运行在urlquery的基础设施上。VNC劫持Agent连续向urlquery提交了2个URL:- 扫描A(目标):明文fedresurs.ru URL。urlquery正常打开并建立成功会话。该会话通过VNC在wss://urlquery.net/queue/{queue_id}/vnc可用,无需密码。
目标扫描正常加载了 fedresurs.ru- 扫描B(控制器):一份经由tinyurl.com的Base64编码载荷,内含JavaScript VNC客户端。
解码后,它连接扫描A的VNC端点并取得交互控制。
同一会话连接到目标会话时,还出现了HTTP 101连接升级:
控制器的网络日志显示一次被接受的 VNC 连接在urlquery记录的HTTP请求中,该载荷从tinyurl.com开始,先混淆再重定向,再用httpbun.com封装,接着到jsdelivr.net导入VNC功能,最后连接回urlquery.net自身。
远程键盘注入VNC连接建立后,控制器即可看到目标浏览器屏幕并注入击键。载荷按下Ctrl+L以定位地址栏,再重新输入URL:javascript:location='/backend/companies/61065761-3be6-47f7-afe5-e597c74ef44c/publications?limit=100&offset=0&searchCompanyEfrsb=true&searchAmReport=true&searchFirmBankruptMessage=true&searchFirmBankruptMessageWithoutLegalCase=false&searchSfactsMessage=true&searchSroAmMessage=true&searchTradeOrgMessage=true'完整URL输入后,载荷按下Enter。地址栏仍属于已成功建立fedresurs.ru会话的同一浏览器,导航至backend路径时应继承会话cookie。
未能一次成功失控Agent似乎并未一次成功。
一次失败尝试返回错误它们提交了7次VNC扫描,覆盖4种载荷变体,每次调整以下内容:- 用F6还是Ctrl+L定位地址栏
- 击键节奏
- 逐字符键入还是通过剪贴板粘贴
- VNC客户端来源,例如urlquery自带bundle,或jsDelivr CDN
- 同一投递方式:经httpbin.org、httpbun.com的Base64编码URL,再经tinyurl.com缩短
- 同一时段:2026年4月至8月,与collusion.wiki时间线重叠
- 同一套基础设施:各手法使用相同的一次性邮箱、代理和通知通道,与关于该集群的其他报告一致
- 同类目标:政府数据源,包括登记处和公共卫生数据库
- collusion.wiki:https://collusion.wiki
- Transluce agent activity:https://transluce.org/agent-activity
- Corridor:https://corridor.dev
- 第1部分:https://labs.zenity.io/post/rogue-ai-agents-swarm-encoded-url-messages-laundering
原始来源: Security for AI 微信临时链接,可能已过期