Sryxen恶意软件利用无头浏览器绕过Chrome防护机制
一款专注于Windows的新型信息窃取程序"Sryxen"因其融合了现代浏览器凭证窃取技术和异常激进的反分析保护措施,正引起安全社区的关注。 该恶意软件作为"恶意软件即服务"出售,使用C++编写,针对64位Windows系统。Sryxen的目标是浏览器机密信息、Discord令牌、VPN、社交媒体账户和加密货币钱包,然后通过Telegram Bot API将所有窃取的数据外泄给其操作者。
与通常旨在钓鱼获取密码并解锁系统钥匙串的macOS窃取程序不同,Windows窃取程序必须应对数据保护API,该API将解密密钥与登录用户绑定。 以受害者身份运行时,DPAPI会顺利解密受保护的数据;以其他任何身份运行时,这些数据则毫无用处。Sryxen采用了这一模式,在用户上下文中运行以提取DPAPI保护的材料,然后叠加使用一种新颖的技巧来处理Chrome的最新保护措施。
DPAPI链条
最引人注目的能力是Sryxen绕过了Chrome 127针对Cookie的应用程序绑定加密。谷歌的ABE更改旨在将Cookie加密绑定到Chrome应用程序本身,从而打破了读取SQLite数据库并调用DPAPI的传统方法。
恶意软件利用浏览器自动化
Sryxen没有直接解密Cookie,而是以启用远程调试的无头模式启动Chrome,并通过WebSocket使用开发者工具协议,要求Chrome自行解密其Cookie。
从Chrome的角度来看,它正在处理一个合法的DevTools请求;而从攻击者的角度来看,他们接收到了完全解密的Cookie值,无需处理ABE密钥或将解密数据写入磁盘。
对于密码,Sryxen继续依赖基于Chromium的浏览器所使用的既定DPAPI加AES-256-GCM链。
它从"Local State"文件中提取主密钥,剥离DPAPI前缀,并在受害者的用户上下文中调用CryptUnprotectData。
主密钥提取
前缀为"v10"或"v11"的密码数据块随后使用AES-256-GCM解密,而旧格式则回退到直接DPAPI解密。
通过Mozilla的NSS库实现对Firefox的支持,利用配置文件信息和密钥数据库从logins.json中恢复保存的凭据。
通过多线程文件系统遍历处理已安装浏览器的发现,通过预期的目录结构和配置文件区分基于Chromium和Gecko的应用程序。
一旦定位成功,Sryxen会收集密码、Cookie、历史记录、自动填充数据和书签,以及明文和加密格式的Discord令牌。
Discord特有的"dQw4w9WgXcQ"前缀是对YouTube视频ID"Never Gonna Give You Up"的一种戏谑引用,用于识别加密令牌,随后使用相同的AES-256-GCM和主密钥机制进行解密。
Cookie和凭据的静默提取
在防御方面,Sryxen的作者投入了大量精力,使静态和动态分析变得困难。窃取程序的核心窃取逻辑驻留在一个在静态时进行XOR加密、并用非法指令覆盖的函数中。
一个向量化异常处理程序仅在执行命中这些非法操作码时才解密此代码,然后在函数返回时使用基于断点的机制重新加密它。
这意味着静态反汇编只会显示垃圾数据,调用之间的内存转储仅显示加密字节,即使是实时调试,除非分析人员仔细单步执行VEH处理程序,否则也会错过大部分真实代码。
六项单独的反调试检查进一步提高了分析门槛,包括PEB标志检查和通过KUSER_SHARED_DATA获取内核调试器状态。
反调试检查
然而,这些保护措施并非无懈可击。XOR密钥是静态的并嵌入在二进制文件中,非法指令字节的模式是可识别的,耐心的分析人员可以通过单步执行异常处理程序来恢复解密后的代码。
反虚拟化措施相对较弱,仅限于检查Sysmon是否正在运行。
数据窃取完成后,Sryxen将战利品暂存在%TEMP%\Sryxen下的结构化文件夹树中,分别为密码、Cookie、历史记录和书签组织文本文件,并创建社交媒体平台、VPN客户端、加密货币钱包和扩展的目录。
随后,它利用PowerShell的Compress-Archive命令压缩整个目录,并使用curl通过sendDocument将归档文件上传到Telegram机器人。
这种"打了就跑"的数据外泄模式避开了持久化驻留:Sryxen不会常驻内存,但它依次使用system()调用PowerShell和curl,产生了大量的进程活动——这对于监控进程创建、命令行参数和对api.telegram.org出站连接的防御者来说,可能是一个潜在的线索。
对企业而言,Sryxen凸显了两个现实:随着平台加固,Windows上以浏览器为中心的凭证窃取正在快速发展;从带有调试标志的可疑无头Chrome启动,到自动化的PowerShell压缩和Telegram外泄,行为检测仍然是关键的防御线。