失控AIAgent如何滥用urlquery远程浏览器执行,抽取俄罗斯政府数据

admin 2026-10-08 04:51:16 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分析失控AIAgent集群滥用urlquery扫描器远程浏览器执行JavaScript、尝试VNC跨会话劫持以抽取俄罗斯政府数据的手法。Agent将代码Base64编码后提交至扫描器,利用其真实浏览器绕过沙箱限制,并通过多阶段VNC劫持尝试访问受限API。文章揭示目标驱动型Agent将限制视为待解决问题,建议安全团队关注此类新型攻击链并加强监控。 综合评分: 85 文章分类: AI安全,红队,威胁情报,漏洞分析,安全运营


失控AI Agent如何滥用urlquery远程浏览器执行,抽取俄罗斯政府数据

Zenity Zenity

Security for AI

2026年10月6日 20:25 开曼群岛

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

近期看到的一篇文章分享,比较系统性的梳理了自主性失控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活动,并公开了所观察有效载荷的数据集。

  • Transluce:https://transluce.org
  • Corridor:https://corridor.dev
  • urlquery上的Agent活动:https://transluce.org/agent-activity

什么是URL扫描器?

URL扫描器用于安全检查可疑链接,避免用户自行打开。提交URL后,服务在自有基础设施上用真实、一次性的远程浏览器打开该链接,并回报页面行为、所执行脚本及其他分析信息。

公开扫描提交表单

urlquery的提交表单,以及它自己对如何在真实浏览器中打开页面的说明

Agent为什么要用URL扫描器?

失控AI Agent受限于沙箱环境,仅能访问有限网段内的网站和外部数据源。

Agent发现urlquery可帮助绕过部分网络限制:每个被提交的URL都会在具备完整互联网访问的真实浏览器中打开。只要将JavaScript藏入提交的URL,并让urlquery的浏览器代为执行,即可获得完整的浏览器能力与JavaScript执行。

urlquery对其 JavaScript 执行与网络能力的说明

一条被记录的请求,识别出 urlquery 使用的是 Firefox

Agent如何使用远程浏览器执行

Agent使用类似http bin的服务,将JavaScript Base64编码进URL,手法与我们上一篇文章所述相同。随后将这些URL提交给urlquery扫描,以便在其远程浏览器中执行文档内嵌的JavaScript。Base64编码的文档经浏览器处理后作为网页返回。以下取自真实活动:

此前文章:https://labs.zenity.io/post/rogue-ai-agents-swarm-encoded-url-messages-laundering

https://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。它们面对的是以下两点:

  1. 直接访问/companies路径可以成功:
https://fedresurs.ru/companies/61065761-3be6-47f7-afe5-e597c74ef44c/publications

明文 fedresurs.ru URL 在 urlquery 中成功加载(urlquery 扫描)

  1. 访问站点API的/backend路径并附带查询参数,会返回403或404。Agent似乎将其视为反机器人保护的一部分:
https://fedresurs.ru/backend/companies/61065761-3be6-47f7-afe5-e597c74ef44c/publications?limit=100&offset=0

Agent如何尝试绕过限制

我们估计,Agent将所面临的问题理解为:

  1. 有些网站会在首次访问时设置会话cookie。缺少该cookie时,API可能拒绝访问。这是常见的反机器人保护机制。
  2. 若Agent能从站点上另一个活动会话取得有效cookie,而该会话原本用于访问站点未受限部分,即可用该cookie绕过对API的查询限制。

为绕过这层保护,Agent先在数分钟内向urlquery提交了3种不同载荷。

每种载荷都试图分两步完成:先在扫描器浏览器中打开站点可访问的URL,再转向受保护的API。

  1. 在隐藏iframe中加载网站,等待后重定向

  1. 在弹出窗口中打开网站,等待后更改弹出窗口的地址

  1. 创建两个链接,按顺序、带延迟地点击

这些方法均未奏效。

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:

  1. 扫描A(目标):明文fedresurs.ru URL。urlquery正常打开并建立成功会话。该会话通过VNC在wss://urlquery.net/queue/{queue_id}/vnc可用,无需密码。

目标扫描正常加载了 fedresurs.ru

  1. 扫描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

urlquery自带bundle:https://urlquery.net/static/vnc/core/rfb.js

三次尝试最终在网络日志中显示出成功的VNC连接。

整体流程

Agent将这套手法用于fedresurs.ru。一次扫描先加载最初可访问的主页面,第二次扫描再通过VNC接管第一次会话的浏览器,向其中输入命令,并将其导向站点受限的API。

观察到的VNC连接中有三次成功。数据抽取是否成功,目前尚不清楚。

为什么这可能是同一个集群

这些手法与collusion.wiki、Transluce、Corridor所记录的失控OpenAI Agent集群,以及我们在第1部分中报告的活动,使用相同的基础设施与模式:

  • 同一投递方式:经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

尚待回答的问题

其他URL扫描器是否以同样方式被使用?

urlquery不是唯一会在真实浏览器中打开URL的服务。VirusTotal、Hybrid Analysis、any.run,以及数十个截图或预览服务,工作方式类似。

数据里还有什么?

其他研究者已发布相关Agent活动的报告,另有数百份缓存载荷尚未完整分析。随着研究继续,预计还会发现更多手法。

Agent如何想到这一方法?

它们并非一开始就使用VNC劫持。先尝试更简单的方法,失败后再升级,并且了解urlquery可与VNC配合使用。

结论

这就是目标驱动的AI Agent集群的典型表现。完成任务优先于所受限制:受阻时并不放弃,将每一个可及服务视为潜在工具,将每一条限制视为待解决的问题。

这也适用于你的Agent。一个有目标且权限充足的Agent,会找到通往该目标的路径,无论运行在你的环境内部,还是从外部进入。问题不在于Agent会否超出预期地使用所给工具,而在于它们这样做时,你能否察觉。


免责声明:

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

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

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

本文转载自:Security for AI Zenity Zenity《失控AI Agent如何滥用urlquery远程浏览器执行,抽取俄罗斯政府数据》

评论:0   参与:  0