导语:近日发现针对香港iOS用户的水坑攻击活动。该活动在多个论坛上发布恶意链接,这些链接可能是各种新闻报道。这些链接将用户引导到实际的新闻站点时会使用隐藏的iframe加载和执行恶意代码。
0x01 事件描述
近日发现针对香港iOS用户的水坑攻击活动。该活动在多个论坛上发布恶意链接,这些链接可能是各种新闻报道。这些链接将用户引导到实际的新闻站点时会使用隐藏的iframe加载和执行恶意代码。恶意代码包含针对iOS 12.1和12.2中存在的漏洞的攻击。使用高风险设备点击这些链接的用户将下载一个新的iOS恶意软件变体,我们将其称为lightSpy (检测为IOS_LightSpy.A)。
恶意软件变体是模块化后门,它允许威胁执行者远程执行shell命令并操纵受影响设备上的文件。这将使攻击者可以监视用户的设备并对其进行完全控制。它包含用于从受感染设备中窃取数据的不同模块,其中包括:
· WiFi连接历史记录
· 联系人
· GPS定位
· 硬体信息
· iOS keychain
· 电话记录
· Safari和Chrome浏览器历史记录
· 短信
还从目标设备中窃取了有关用户网络环境的信息:
· 可用的WiFi网络
· 本地网络IP地址
Messenger应用程序还专门用于数据渗透,针对的应用程序包括:
· Telegram
· 微信
我们的研究还发现了在2019年针对Android设备的类似活动。在各种公共的香港相关新闻中发现了指向恶意.APK文件的链接。这些恶意应用程序可能可以泄露设备信息,联系人和SMS消息。我们将此Android恶意软件家族称为dmsSpy(dmsSpy的变体为AndroidOS_dmsSpy.A。)。
此攻击活动并非针对受害者,而是针对设备后门和监视而尽可能多地破坏移动设备,我们根据其分发方式将活动命名为“新闻投毒行动”。
这篇文章分析了lightSpy和dmsSpy的功能及其分发方法的详细分析。
0x02 水坑投毒攻击
2月19日,我们发现了针对iOS用户的水坑攻击。所使用的URL指向了由攻击者创建的恶意网站,该网站包含指向不同站点的三个iframe。唯一可见的iframe指向合法的新闻网站,这使人们认为他们正在访问该网站。一个不可见的iframe用于网站分析;另一个网站托管着iOS漏洞利用程序的主要脚本。以下截图显示了这三个iframe的代码:
图1.带有三个iframe的恶意网站的HTML代码
这些恶意网站的链接被发布在四个不同的论坛上,都被香港居民浏览点击过。这些论坛还为用户提供了应用程序,以便其读者可以在移动设备上轻松访问该应用程序。投毒新闻在上述论坛的一般讨论部分中发布了其链接,该帖子将包括给定新闻报道的标题,附带的图像以及指向新闻站点的虚假链接。
这些文章是由新注册的帐户在相关论坛上发布的,我们相信这些帖子不是由用户重新共享他们认为合法的链接而发布的。用作诱饵的主题有些与性相关,诱饵式的头条新闻,或与COVID-19新冠肺炎相关的新闻。
我们不认为这些主题专门针对特定用户,他们是以整个网站的用户为目标的。
图2.该活动发布的新闻主题列表
图3.论坛帖子以及指向恶意网站的链接
除了上述技术外,我们还看到了第二种水坑网站。在这些情况下,将复制合法站点并注入恶意iframe。我们的情报表明,从1月2日开始在香港发布与此类水坑攻击相关的链接,但是,我们不知道这些链接在哪里发布。
图4.具有iframe和恶意利用的新闻页面
这些攻击一直持续到3月20日,据称论坛帖子与香港抗议活动时间表有关。
图5.链接到声称是时间表的恶意站点
0x03 感染链
此攻击中使用的漏洞利用会影响iOS 12.1和12.2。它针对各种iPhone机型,从iPhone 6S到iPhone X,如以下代码段所示:
图6.目标设备的检测代码
完整的漏洞利用链涉及一个无声补丁的Safari漏洞(可在多个最新的iOS版本上运行)和自定义的内核漏洞。Safari浏览器提供漏洞利用后,它会针对一个bug(Apple在新的iOS版本中默默地修补了该漏洞),从而导致利用已知的内核漏洞来获取root特权。内核漏洞已分配了 CVE-2019-8605。尽管其他研究人员提到了与该特定漏洞相关的补丁的历史记录,但静默地修补的Safari bug没有相关的CVE 。
一旦设备受到威胁,攻击者就会安装无整数的复杂间谍软件,以维护对设备的控制并泄露信息。间谍软件使用具有多种功能的模块化设计,其中包括:
· 模块更新
· 每个模块的远程命令分配
· 完整的Shell命令模块
该间谍软件的许多模块都是专门为数据渗透而设计的。例如,都包含从Telegram和微信中窃取信息的模块。下图显示了感染链及其使用的各种模块。
图7.lightSpy的感染链图
我们选择为这个新威胁命名为 lightSpy,其名称来自模块管理器 light。我们还注意到,launchctl 模块使用的解码后的配置文件 包括指向/ androidmm / light 位置的URL ,这表明也存在此威胁的Android版本。
图8.配置文件提示Android对应版本
还有一点需要注意:Payload文件 dylib 是使用合法的Apple开发人员证书签名的,直到2019年11月29日才签署,这为该活动的开始确定了时间戳。
图9.签名时间是2019年11月下旬
0x04 攻击分析
在捕获的漏洞利用方法中使用的漏洞和代码执行技术都是已知的,本节将介绍漏洞利用阶段,并提供一些详细信息,重点放在利用样本分析上。
JavaScriptCore漏洞利用
为了简要描述用于部署lightSpy的漏洞,将分析以下部分:
1. 漏洞触发:使用“静默补丁”漏洞。
2. addrof / fakeobj原语:使用通用利用原语来构建来自伪造对象的任意R / W原语。
3. 任意地址读/写原语:利用最终的WebAssembly任意R / W原语覆盖WebAssembly对象。
4. Shellcode执行:在内核利用之前执行漏洞利用shellcode,在设备上获得root 权限。
漏洞触发
@qwertyoruiop在hxxp:// rce [。] party / wtf.js中发现了该漏洞,漏洞已修复,没有分配CVE编号,这是Safari JavaScript中的JIT类型混淆漏洞。
图10.PoC的关键部分
1. for循环触发漏洞函数()上的JIT漏洞;
2. 在漏洞函数()中,表达式“ let r = 5 in oj;” 触发函数has()回调;
3. 因为在JIT循环调用漏洞函数()之后,标记“ hack”已设置为1,执行“ if”分支并将confuse [1]设置为一个对象。 所以数组“混淆”是通过此回调从“ ArrayWithDouble”转换为“ ArrayWithContigous”。
问题是JIT不知道此回调可能会有副作用,并且“混淆”是一个指针,它是一个数字,仍然将数组“混淆”视为“ ArrayWithDouble”,导致类型混乱。
addrof / fakeobj原语
Phrack的文章中介绍了addrof和fakeobj原语。 addrof()函数用于泄漏给定JavaScript对象的内存地址,fakeobj()函数用于接受给定的地址并在该位置返回伪造的JavaScript对象。 由于存在JIT类型的混淆漏洞,原语addrof和fakeobj可以通过以下方式轻松实现在数组中混淆了双精度和指针:
图11.addrof和fakeobj原语
任意地址读/写原语
获取addrof / fakeobj之后,它将喷射0x5000 Float64Array和一些WebAssembly对象。 很容易建立一个伪造且有效的结构ID 0x5000,该ID与喷涂的真实结构ID相匹配Float64Array。 接下来,它使用结构ID和fakeobj获取伪造的对象,并添加结构ID获取伪造的WebAssembly.Memory对象。 然后,它会创建一个伪造的wasmInternalMemory,其中包含一个大Size,并将其设置为伪造的WebAssembly.Memory对象的memory属性。
图12.伪造的结构ID,WebAssembly.Memory和wasmInternalMemory(顶部)和伪造的对象(底部)
最后它通过此伪造的WebAssembly.Memory对象获得稳定的内存读/写原语:
图13.内存读/写原语
执行Shellcode
在获得任意地址读/写原语之后,该漏洞利用在以下位置实现shellcode执行。
它创建一个JITed函数并通过导出的符号获取函数地址“ startOfFixedExecutableMemoryPool”。 之后,它将构建一个ROP),以将shellcode写入JIT页面,并创建一个临时堆栈来执行ROP链。
图14.用于执行ROP链的临时堆栈跟踪
由于Payload成功执行后,Payload包含越狱代码,因此它将成为root 用户。下一节分析Payload如何获得root特权。
内核漏洞利用
在本节中,我们主要介绍此攻击中使用的本地特权升级漏洞利用链。 所有漏洞利用代码可以在payload.dylib Payload中找到。 在@ pwn20wnd和@sbingner在GitHub上发布的越狱rootkit中,它集成了以下公共漏洞利用代码:
iOS越狱rootkit使用的公共漏洞利用列表
为了支持iOS 12.2版本,此攻击活动使用了另一个漏洞(CVE-2019-8605),此漏洞由Google Project Zero成员Ned Willamson发现。在我们的调查结果中,该活动使用了sock_port中的漏洞利用主机,支持iOS 10.0-12.2并扩展了越狱功能。
图15.提权攻击开始的代码
sock_port项目不仅使用CVE-2019-8605来获取内核任务端口的接收权,使用get_tfp0()函数,它几乎还支持大多数系统版本在10.0和12.2之间的设备。 因此,在此活动的漏洞利用链中,它只是集成了这些代码以帮助实现tfp0,如下图所示。
图16. get_tfp0()函数
图17.payload.dylib中的get_tfp0函数,与sock_port项目相同
图18.获得tfp0后,它将初始化补丁处理程序,这可以帮助找到必要函数的地址符号
图19.重置符号的真实地址
图20.针对当前进程窃取了内核任务的cred值,使其成为Root
之后,它首先获取IOSurfaceRootUserClient端口的地址,然后使用它获取以下地址:实际的客户端和vtable。然后,它使用伪造的vtable创建一个伪造的客户端,并覆盖现有的假的客户。最后,vtable中的IOUserClient :: getExternalTrapForIndex函数获取 替换为ROP gadget(add x0,x0,#0x40; ret;),因此它可以使用IOConnectTrap6在内核调用任何函数。
图21.使用伪造的客户端和伪造的vtable覆盖代码
图22.代码显示完成的越狱操作
0x05 IOS上的lightSpy
获得完整的内核特权后,它会下载许多恶意库以定位应用程序。
图23.下载的模块
启动加载器
工具launchctl加载或卸载守护程序或代理,下载所有Payload后,漏洞利用程序使用带有“ ircbin.plist”作为参数的launchctl生成守护程序。
图24. launchctl工具与ircbin.plist一起使用
该守护程序使用irc_loader作为可执行文件。该加载器只是一个启动器,将用于启动主要恶意代理部署在目标端。它首先解析C&C“ IP:PORT”地址,然后解析下载地址。
图25. irc_loader作为可执行文件
启动参数隐藏在irc_loader二进制文件中,并使用AES算法加密,解密后参数如下图所示。
图26.解密后的参数
获得这些参数后,它将使用它们来启动另一个名为“ light”的模块。
图27.加载“ light”模块
主要恶意控制代理
“ light”启动后,它首先初始化一个数据库,该数据库用于存储所有控制信息。
图28.初始化数据库以获取控制信息
SQL语句包括以下内容:
之后,它使用libwebsockets库初始化一个线程以实现消息的接收功能。
图29.通信流程
libwebsockets框架支持在创建Web时将回调代理注册为协议套接字处理程序。此线程启动后,回调代理负责管理代理的状态。
套接字处理程序:
图30.回调代理
Broker方法(用于管理Web套接字处理程序的生命周期)使用了中断来进行陷阱转换,LWS_CALLBACK_CLIENT_RECEIVE值为8,负责在此攻击事件中接收C&C服务器发送的命令。
图31.用于管理Web套接字处理程序生命周期的Broker方法
收到消息后,它将调用DealFrameCommand()函数来处理各种消息,例如config,命令计划和命令执行消息。
图32.显示如何处理命令计划消息的样本
然后,init()线程初始化插件加载。初始化过程如下所示。
图33.插件加载已初始化
插件加载方法值得注意:首先获取插件名称,路径和类名,然后使用通过dlopen()函数加载插件文件的路径。之后,它使用objc_getClass()函数来以“ classname”作为参数获取暴露的类对象。这样,Light模块可以获取每个插件的主类对象,并使用这些类对象启动自己的线程。
图34.带有“ classname”作为参数的objc_getClass()函数
图35.以baseinfoaaa.dylib模块为例,它首先调用init()方法
图36.然后启动运行循环
成功加载所有插件后,攻击者可以发送此恶意代理的控制命令,代理会将这些命令分派到不同的模块。
图37.代理调用CommandThread类中的ExeCommand:arg:函数来执行命令
图38. ExeCommand:arg:函数使用一个相关的插件对象来调用它们自己的StartCommand:Argv:执行相应命令的功能
BasicInfo模块(命令ID 11000)
该模块主要用于收集和上传信息,例如iPhone硬件信息,联系人,短信和电话。
图39. BasicInfo模块收集不同的iPhone信息
图40.收集目标的SMS信息的代码
ShellCommandaaa模块(命令ID 20000)
该模块主要用于执行shell命令。
图41.用于执行shell命令的ShellCommandaaa模块
图42. popen函数用于派生一个子进程并执行shell命令
必要时,模块将上传执行结果。在这里,它使用dictToJsonData()函数来序列化结果并将数据发布到hxxp://…/ api / shell / result服务器。
图43. ShellCommandaaa使用dictToJsonData()函数
KeyChain模块(命令ID 31000)
该模块主要用于获取目标的key信息。它使用SecItemCopyMatching()使用以下字典复制key Chain。
图44. SecItemCopyMatching()函数
图45.包括密码,证书和密钥在内的每一项都被解析并添加到返回数据对象中
图46.敏感信息上载到hxxp://…/ api / keychain /服务器
#### Screenaaa模块(命令ID 33000) 该模块主要用于在目标设备周围进行扫描,它使用的方法有四个过程:
1. 确定目标设备的IP地址和子网掩码。
2. 计算其子网中可能的地址范围,通过使用逻辑获得AND运算符,其中操作数是IP地址和子网掩码的二进制值。
图47. MMLANScanner启动功能
3. 遍历范围并ping每个IP地址。
图48.通过MMLANScanner进行Ping操作
4. 使用以下命令将数据上传到hxxp://…./api/lan_devices/服务器
void __cdecl -[LanDevices mainPresenterIPSearchFinished:]。[object Object][object Object]
图49.将数据上传到服务器
SoftInfoaaa模块(命令ID 16000)
该模块具有两个子命令ID:16001和16002,命令16001用于获取软件列表,而命令16002用于获取进程列表。 下图显示了如何获取已安装的软件列表(id cdecl + [AppInfo getAppInfoList](ida1,SEL a2))。它主要使用一个未记录的应用程序编程接口(API)实现这一点。
图50.获取已安装的软件列表
下图显示了它如何首先调用“ ps -Aef”命令以获取进程列表,然后调用getRunningProcessesList函数以解析详细信息。
图51.获取流程列表信息
图52.获得流程ID(PID),流程路径,应用程序,仅举几例
最后,它将软件列表或进程列表信息上载到相应的服务器。
图53.获取软件和运行进程列表
FileManage模块(命令ID 15000)
该模块主要用于文件或目录操作,包括以下子命令:获取目录和文件列表,上传文件,下载文件,删除文件,创建目录,重命名文件,移动文件,复制文件,并获取应用程序目录。
图54.各种FileManage模块命令
WifiList模块(命令ID 17000)
该模块主要用于获取Wi-Fi信息,包括Wi-FI历史记录,其中命令ID为17001,并且Wi-Fi扫描列表的命令ID为17002。
图55.获取Wi-Fi历史记录和扫描列表
图56.通过直接读取存储在com.apple.wifi.plist文件中的数据来获取Wi-Fi历史记录
图57.解析每个项目以获得基本服务集标识符(BSSID),SSID_STR,lastAutoJoined,lastJoined,甚至密码信息
要获取Wi-Fi扫描列表,它将首先加载私有MobileWiFi框架并导入必要的内容,通过dlsym函数实现功能。
图58. dlysym函数
它还使用WiFiManagerClientCreate()函数创建一个Wi-Fi管理器。然后使用WiFiManagerClientCopyDevices复制设备并将其设置为UtilNetworksManager对象。
图59. WiFiManagerClientCreate()作为Wi-Fi管理器
然后,它使用getScanList函数解析详细信息属性,包括服务集标识符(SSID),MAC,加密类型和信号强度信息。
图60. getScanList函数
图61.将敏感信息上传到相应的服务器
浏览器模块(命令ID 14000)
它主要用于获取设备的Safari和Chrome浏览器历史记录。对于Safari,它首先加载Safari应用程序路径中的历史数据库。
图62.获取Safari浏览器的历史记录
它使用以下结构化查询语言(SQL)语句查询每个浏览器项目,然后解析每个详细信息属性,例如URL,标题和访问时间信息。
“select a.id,url,domain_expansion,title,visit_count,visit_time from history_items as a left join history_visits as b on a.id=b.history_item where a.id>%d order by a.id asc”
图63.检索诸如URL,标题和访问时间之类的属性
Chrome浏览器的历史记录数据库位于“ / Library / Application支持/ Google / Chrome /默认/历史记录”目录。其余步骤几乎与用于获取Safari历史记录步骤相似。
图64.获取Chrome浏览器历史记录
图65.将历史记录信息上传到hxxp://…/ api / browser_history /服务器
Locationaaa模块(命令ID 13000)
该模块主要用于获取目标的iPhone位置信息,它包括两个子命令,当命令为13002时,它将使用攻击者的参数设置连续配置。
图66.命令13002
图67.参数主要是更新间隔和持续时间
图68.命令ID 13001,其中添加了一个任务以使用给定的条件继续更新位置数据
图69.将带有设备信息的位置详细信息上传到hxxp://…/ api / location /服务器
iOS微信模块(命令ID 12000)
此模块主要用于收集目标的微信相关信息,例如帐户信息,联系人,组,消息和文件。
图70.收集的微信信息
窃取信息的框架
窃取信息的步骤:
1. 获取用户的微信帐号 要获取微信帐户的信息,它首先找到微信的Documents目录并解析LoginInfo2.dat文件。此文件使用特殊格式存储许多帐户的信息,其中包括id_persion,电话和姓名。
图71.检索包含帐户信息的LoginInfo2.dat
然后,它使用id_persion值来计算MD5哈希, Id_persion是一个值,例如“ wxid_xxxx”。微信支持多个用户,因此它使用此哈希值创建每个帐户的目录以进行存储信息,例如帐户ID和使用情况。
图72.获取id_persion值
找到每个帐户目录后,所有属性(包括id_persion,目录,电话和将收集每个帐户的昵称信息)。
图73.使用id_persion值计算哈希并使用它查找每个帐户目录
2. 使用收集到的帐户获取命令ID所引用的相应信息
下图显示攻击者将反复浏览所有帐户并执行上载功能。
图74.攻击者将反复浏览所有帐户并执行上载功能
图75.在上传函数中,它使用相关的处理程序execute getData()函数来获取详细内容,它发送到相关服务器。
微信收集信息
微信账户:
图76.收集每个帐户的标题图标
微信群:
图77.收集WCDB_Contact.sqlite数据库中的数据
它使用 “select dbContactChatRoom,dbContactRemark,userName,ROWID from friend where ROWID>%d” 的SQL语句。之后解析包含“chatroom”的字符串。
图78.解析“聊天室”字符串
微信留言:
该部分主要用于收集目标的微信信息。要收集消息,首先从WCDB_Contract.sqlite数据库中收集所有朋友,并过滤掉不需要的朋友,例如“ newapp”,然后使用以下命令将信息保存到名为“ accountMD5”的全局词典变量:
图79.检索微信好友列表信息并将其保存到accountMD5
图80.打开MM.sqlite数据库的处理程序,该处理程序用于保存所有消息传递信息
在此数据库中,发送给某些朋友的所有消息都保存在Chat_UserNameHash表中,因此它可以迭代遍历所有表,然后使用UserName_Hash保存所有消息。
图81.将保存的消息发送到Chat_UserNameHash
它首先使用了“ SELECT CreateTime,Des,MesLocalID,Message,type FROM %@ where MesLocalID >%d” SQL语句获取所有消息项。在这些列中,MesLocalID是用于保存消息文件。类型表示消息类型,包括简单消息,图像,音频,视频,并打开数据,这可以从后缀获取文件类型。
要获取音频消息,它首先设置消息类型,然后使用“ /accountHome/Audio/message_id.aud”路径以读取内容。这样,攻击者收集了所有消息。
图82.获取音频消息 微信联系方式
联系人信息保存在“ WCDB_Contact.sqlite”数据库中。
图83. WCDB_Contact.sqlite数据库路径
它使用以下SQL语句获取联系人信息:
select dbContactHeadImage,dbContactProfile,dbContactRemark,userName,ROWID from friend where ROWID>%d order by ROWID
在这些列中,dbContactHeadImage列主要用于存储头部图像信息; dbContactProfile存储每个朋友的个人资料信息,包括国家/地区,省份和市; dbContactRemark字段存储每个朋友的备注详细信息,例如姓名和别名。
图84.获取联系人的信息 微信文件
该模块主要用于收集所有消息的文件路径,类似于WeChatMessage模块。
图85. WeChatFile模块
iOS QQ模块(命令ID 25000)
该模块的整体架构几乎与微信模块的架构相似。
图86. iOS QQ模块
这里唯一的区别是信息的位置及其格式。
图87.获取目标的QQ信息
iOS Telegram模块(命令ID 26000)
该模块的整体架构也几乎与微信模块的架构相似。
图88. iOS Telegram模块
像QQ模块一样,这里的区别在于信息的位置及其格式。 要获取目标的帐户信息,它首先找到“文档”目录。然后通过“ telegram-data”文件夹,然后使用正则表达式“ account-\ d +”获取帐户列表。
图89.获取目标的帐户信息
其他子模块几乎类似于微信模块。
0x06 Android上的dmsSpy
分布
在跟踪“新闻投毒”活动的活动时,我们确定了两个URL链接到使用它们的域的Android APK文件。这两个URL均发布2019年香港的新闻。我们可以从以下网址找到短信:
Google搜索引擎缓存的链接,已共享一个链接的APK,作为免费观看付费色情影片的应用程序。对于此版本,我们无法找到下载的原始APK文件。
图90. Telegram上的共享消息与APK链接到“新闻投毒””行动的基础架构
另一个APK链接伪装成日历应用程序,用于查看在香港发生的政治活动事件的时间表,尽管链接也已无法访问,但我们设法找到了下载的原始文件。
图91.关于Telegram的消息共享了操作新闻投毒的恶意APK
图92.伪装成日历的恶意APK
行为分析
上面显示的日历应用程序需要许多敏感权限,例如READ_CONTACTS,RECEIVE_SMS,READ_SMS,CALL_PHONE,ACCESS_LOCATION和WRITE / READ外部存储。
启动后,它首先收集设备信息,例如设备ID,品牌,型号,操作系统版本,物理位置和SDcard文件列表;然后,它将收集的信息发送回C&C服务器。
图93.浏览SD卡上的所有文件
图94.获取位置信息
它还会窃取存储在设备中的联系人和SMS信息。此外,它注册了一个接收者,监视新收到的SMS消息,并与C&C服务器实时同步消息。
图95. SMS接收器
表2.尝试调用某些USSD代码以查询设备的SIM卡信息
图96.调用USSD的代码
该应用可以通过查询C&C服务器以获取最新APK文件的URL,然后执行更新下载并安装。
图97.获取最新的APK文件URL
图98.安装APK文件
在检查C&C服务器与APK恶意软件之间的通信时,我们注意到服务器未禁用Web框架的调试模式,这使我们能够查看API列表用于C&C通讯,某些API已在恶意日历应用程序中使用。
我们怀疑攻击者仍在改善Payload以提高其功能。其中一种API(称为“ screen_shot”)表示它可能能够获取设备的屏幕截图。install_apk的另一个API暗示攻击者也将具有安装其他APK文件到受感染的设备功能的能力。
图99.调试消息泄漏了C&C服务器的API
不仅会从托管有Operation所使用域的服务器上下载恶意APK中毒新闻,C&C域也与用于托管恶意新闻的域重叠 页面进行水坑攻击。因此,我们认为APK恶意软件是由同一系列。
0x07 MITRE ATT&CK Matrix
iOS
Android
0x08 IoCs
Indicator Filename Attribution Trend Micro Detection d5239210a9bc0383f569e9ca095fe8 bdfb9a482bc0c77c8658fcecb23b8a2 6bc payload.dylib lightSpy hash IOS_LightSpy.A 4887389ffaf4257b37408eac9f1740e abe805f830009cf58185757372f9036 67 light lightSpy hash IOS_LightSpy.A 3163c8b8deb3cdda9636c87379b1c 384dec207ce9f15f503ffb4b1ef8cfab 945 ircbin.plist lightSpy hash IOS_LightSpy.A f3f14cdada70d49c3e381cc1b05860 18e6b983af8799d3e6c4bee3494c40 e1d6 baseinfoaaa.d ylib lightSpy hash IOS_LightSpy.A 23e8884c69176d5cf4da0260cdbb29 6301c0e0afccd473d57033ac1a06f2 27c3 browser lightSpy hash IOS_LightSpy.A ce5241de3a378a64266c56fe5094ec bb8baa7afd677a3112db8074db78a5 5df1 EnviromentalR ecording lightSpy hash IOS_LightSpy.A 07c30054c7c22b8b53638367c4c3ad 484a1a336b615e1a6944260d5ec79 7a66a FileManage lightSpy hash IOS_LightSpy.A 51d7ebd3af38432c68c913aef48fe26 a206fda4b52c9f09728df69cab13a4b 3b ios_qq lightSpy hash IOS_LightSpy.A 0dfec52076249d91ec623ea5217735 2fbc8fb258db316eac85462c7b459f1 a2d ios_telegram lightSpy hash IOS_LightSpy.A 3c1bfbdfae91f1f248180c2102ed65fb dec086a334193894db67b0461a048 5c5 ios_wechat lightSpy hash IOS_LightSpy.A 1eec0e1ebeefc6667b6ee08e8dede5 cd36ca10697180f10e2d43a2fdebbe efcb irc_loader lightSpy hash IOS_LightSpy.A 650a5958a06b16aa819e4e8685874 6750b8c72a75f31bfdfb6b47fd38d72 b602 KeyChain lightSpy hash IOS_LightSpy.A 641d22e38b4135c56b7fb6037a6d76 098ffae9e84664993a3f4c07859b772 41e locationaaa.dy lib lightSpy hash IOS_LightSpy.A 3135efd29cb8b0fab961ddd7ec99e1 48dc4c5cca6c3303d60192dc966484 9545 Screenaaa lightSpy hash IOS_LightSpy.A 54c27a8b48b96e63402698d3bba41 480a815d103c92084d467d3c664ee c0a7f8 ShellComman daaa lightSpy hash IOS_LightSpy.A 1c0316d0194e8008904679242d592 d1a2aeeb2bacef28c7854e4361692a 085e7 SoftInfoaaa lightSpy hash IOS_LightSpy.A 6caa6342caefe3fea23353e850cb2c 974e8607c017661b7410de7a10004 b05ec WifiList lightSpy hash IOS_LightSpy.A 575890d6f606064a5d31b33743e056 54b9ed9200758a9802491286c6a31 3139a HKcalander.a dmsSpy AndroidOS_dmsSpy.A pk Hahs 45.134.1[.]180 lightSpy C&C IP address 45.83.137[.]83 Watering hole exploit server app[.]poorgoddaay[.]com dmsSpy C&C domain movie[.]poorgoddaay[.]com dmsSpy download server domain news[.]poorgoddaay[.]com Watering hole server domain appledaily[.]googlephoto[.]vip Watering hole server domain www[.]googlephoto[.]vip Watering hole server domain app[.]hkrevolution[.]club dmsSpy download server domain news2[.]hkrevolution[.]club Watering hole server domain svr[.]hkrevolution[.]club dmsSpy C&C domain news[.]hkrevolution[.]club Watering hole server domain www[.]facebooktoday[.]cc Watering hole server domain news[.]hkrevolt[.]com Watering hole server domain www[.]messager[.]cloud Watering hole server domain
0x09 分析总结
用户可以采取几个步骤来缓解这种威胁。对于iOS用户,最重要的是保持其iOS版本更新,可以解决此问题的更新已经发布了一年多,这意味着将设备保持在最新更新状态的用户可以免受此威胁利用的漏洞的影响。
对于Android用户,我们获得的样本是通过Google Play商店外部的Telegram中的链接分发的我们强烈建议用户避免从外部受信任的应用程序商店安装应用程序,因为以这种方式分发的应用程序经常载有恶意代码。
完整技术细节:
本文翻译自:https://blog.trendmicro.com/trendlabs-security-intelligence/operation-poisoned-news-hong-kong-users-targeted-with-mobile-malware-via-local-news-links/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Anti-MalwareBlog+%28Trendlabs+Security+Intelligence+Blog%29如若转载,请注明原文地址