2025/12/27 0:37:04
网站建设
项目流程
网站开发广东,网站上放百度地图怎么,网站建设打广告,百度收录站长工具Part1 前言 大家好#xff0c;我是ABC_123。这两天ABC_123满怀着对美国NSA发起的苹果手机三角测量行动的极大兴趣、对该后门极其复杂的攻击链、以及超过认知的苹果设备底层漏洞分析的探索#xff0c;而连续更新了多篇技术文章。今天ABC_123着重给大家讲解一下我是ABC_123。这两天ABC_123满怀着对美国NSA发起的苹果手机三角测量行动的极大兴趣、对该后门极其复杂的攻击链、以及超过认知的苹果设备底层漏洞分析的探索而连续更新了多篇技术文章。今天ABC_123着重给大家讲解一下国外安全公司是如何捕捉到所有阶段的三角测量后门样本的。让人惊叹的是历经很多波折耗时长达数月最终获得了4个0day漏洞、2个验证器后门、1个TriangleDB植入后门及其后门的多个辅助模块文末有技术交流群的加群方式。《第135篇美国APT的苹果手机三角测量行动是如何被溯源发现的》《第136篇美国NSA的苹果手机三角测量后门的窃密模块分析 | 机器学习引擎识别照片信息》《第137篇揭秘美国NSA的苹果手机三角测量后门的隐匿手段》《第138篇俄罗斯卡巴斯基是如何发现美国iPhone手机三角测量攻击的 | 三角测量系列第4篇》Part2 溯源分析过程在上一篇中ABC_123给大家分享了iPhone手机通信及存储方面存在的异常行为接下来要想办法抓到三角测量行动使用的后门及0day漏洞样本。但这极其困难因为所有的通信都是通过 HTTPS 加密的甚至嵌套多层加密因此我们无法从流量中抓到任何明文的攻击流量。接下来决定使用 iTunes 备份来替代完整的设备镜像。这个过程必须做好保密工作以被攻击者发现导致不再发起攻击。由于我们不了解攻击者使用后门对iPhone手机做了什么操作可能监听iPhone的麦克风、可能是读取电子邮件内容、可能是分析即时通讯对话。因此卡巴斯基工作人员安排了面对面会议并将iPhone手机设置为飞行模式有时还放入法拉第屏蔽袋中。后续使用了libimobiledevice来获取iPhone手机的备份并通过构建事件时间线利用 MVT工具包对其进行分析检查。尝试用 Frida 截获 iMessage失败实施三角测量的攻击者非常谨慎会从受害者iPhone手机中移除恶意的iMessage附件我们决定尝试在 iMessage 传递过程中捕获传入的消息内容。在寻找拦截 iMessage 的方法时发现了这段由 Google Project Zero 团队编写的 Frida 脚本 。该脚本设计用于 Mac 上运行因此我们拿出一台备用的 Mac mini 并安装了 Frida。随后让被攻击iPhone的同事们使用他们的 Apple ID 登录这台 Mac mini接下来就是等待攻击者再次感染我们某位同事的设备。与此同时我们积极监控 SIEM 日志寻找可疑活动的痕迹。不久我们检测到了熟悉的网络连接表明一部手机成功被攻破并且使用了“克隆”的 iMessage 账户。然而当我们检查 Mac mini 上的 iMessage 拦截日志时发现感染时并无消息痕迹。因此我们的系统未能捕获可能包含漏洞利用的消息我们仍然不知道为何未能成功于是开始寻找捕获恶意软件的其他方法。mitmproxy中间人抓包捕捉样本在通过 Mac 设备拦截 iMessage 的计划失败后接下来尝试解密之前通过流量分析识别出的与 C2 服务器的 HTTPS 通信数据包。具体操作步骤如下1. 搭建了一台 Linux 服务器并安装了 mitmproxy这是一款老牌的 HTTPS 拦截工具2. 在几台已知被三角测量后门感染的 iOS 设备上安装了一个根 SSL 证书该证书是 mitmproxy 生成的3. 在这些苹果设备上安装了 Wireguard VPN 客户端并我们搭建的mitmproxy 实例写入配置。4. 为了能够第一时间发现被感染的痕迹开发了一个 Telegram 机器人只要被监控的iPhone、iPad设备被感染就会收到消息但是结果是失败的这种方法无法拦截苹果服务包括 iMessage的 HTTPS 流量因为 iOS 有SSL Pinning证书绑定。因此我们无法解密传输过程的 iMessage 流量。捕获并利用 JavaScript 验证器后门虽然没有iMessage的流量mitmproxy 日志中仍然有抓到一部分有价值的通信当三角测量攻击再次开始的时候它成功解密了 C2 服务器的一部分通信流量。如下图所示非常遗憾这些流量中并没有针对 iOS 的漏洞利用代码。然而经过分析发现它是 JavaScript 验证器后门 它的作用是收集受害者iPhone浏览器的信息并发送到 C2 服务器。第1条GET请求的url推测就是加载JavaScript验证器后门代码POST请求就是将收集到的受害者的信息发送给服务器。继续分析解密出来的部分通信流量发现受感染iPhone设备在向 C2 服务器发送验证信息后接收到了一个样本文件。然而尽管我们能够拦截 HTTPS 流量但无法解密它。这是因为 JavaScript 验证器后门为 C2 通信实现了自己的加密层使用了 NaCl 库 所使用的加密算法基于公钥密码学。具体流程如下JavaScript验证器后门首先生成一对随机密钥包括私钥和公钥从生成的私钥和 C2 服务器的公钥中派生共享密钥使用此共享密钥加密发送到 C2 服务器的消息并解密从其接收的消息。在这一刻数学的美妙产生了大致意思是这个情况(客户端私钥 × 服务端公钥) (服务端私钥 × 客户端公钥)。var o function (t) { function u(t) { this.D nacl.box.keyPair(); this.L nacl.box.before(t, this.D.secretKey); } u.prototype.encrypt function (t, nonce) { return nacl.box.after(t, nonce, this.L); }; u.prototype.decrypt function (ciphertext, nonce) { return nacl.box.open.after(ciphertext, nonce, this.L); }; u.prototype.N function () { return nacl.randomBytes(nacl.box.nonceLength); }; u.prototype.k function () { return this.D.publicKey; }; return new u(t);}(h.values.R)为了破解 C2 服务器的通信需要知道由 JavaScript验证器后门随机生成的私钥。然而这个密钥保存在内存中并未发送到 C2 服务器。接下来分析一下代码JavaScript验证器后门通过调用 nacl.box.keyPair() 方法生成一对随机密钥。为了破解加密流量要想办法攻破生成该密钥对的过程。接下来编写一个mitmproxy 插件用于监控 nacl.box.keyPair() 方法的调用同时将其替换为另一个方法 nacl.box.keyPair.fromSecretKey()该方法通过提供的我们定义好的私钥去初始化密钥对。如下图所示将一个私钥硬编码到了该方法的参数中。这样一旦带有后门的验证器在被感染的设备上执行就可以解密 JS 验证器的所有通信捕捉到两个0day漏洞及二进制验证器后门接下来三角测量攻击又重新感染了其中一个iPhone手机由于先前的工作我们成功捕获到JavaScript验证器后门执行的一个Payload。它包含两个漏洞利用代码组成一个针对 WebKit另一个针对 iOS 内核这两个漏洞组合利用的目标是在iPhone设备上启动二进制验证器后门。在之前的文章中我们讲过二进制验证器后门包含一个清除恶意 iMessage 痕迹的功能发现该功能对 SMS.db 数据库发出了以下 SQL 请求SELECT guid FROM attachment WHERE uti com.apple.watchface AND LENGTH(transfer_name) 32 AND INSTR(transfer_name, CHAR(0x2013)) 9;条件 uti com.apple.watchface 给了我们另一个线索恶意附件是一个 .watchface 文件。未完待续下一篇讲解iMessage插件及后门的模块是如何被捕获到并解密的。Part3 总结1. 在研究三角测量攻击链过程中遇到的主要难题是如何处理每个阶段都使用的公私钥加密。为了绕过加密我们不得不开发一个又一个 mitmproxy 插件能够动态修补恶意阶段并破解原始算法。最初插件的代码有 30 行当完成后门的模块提取时代码已经增长到大约 400 行2. 为了便于技术交流现已建立微信群希水涵-信安技术交流群欢迎您的加入。公众号专注于网络安全技术分享包括APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等每周一篇99%原创敬请关注。Contact me: 0day123abc#gmail.comOR 2332887682#qq.com(replace # with )