导语:CopperStealer是一款类似SilentFade的恶意软件,主要通过盗取Facebook用户的登录凭证,Facebook上投放保健品、假冒名牌等劣质产品广告进行获利。
介绍
CopperStealer是一款类似SilentFade的恶意软件,主要通过盗取Facebook用户的登录凭证,利用账户中绑定的信用卡和预付礼品卡,在Facebook上投放保健品、假冒名牌等劣质产品广告进行获利,还会通过云端下发病毒变种和勒索样本执行,危害受害者的资金安全和电脑安全。2019年间,SilentFade因在为Facebook造成了超过400万美元的损失而引人关注。CopperStealer虽然影响力不如SilentFade大,但其快速变化也可能说明了这类广告欺诈的趋势正在兴起。CopperStealer最早可追溯到2019年7月,除了Facebook外,还有影响Instagram、Apple、Amazon、Bing、Google、PayPal、Twitter等在内的多个知名社交平台。
传播方式
研究人员在一些可疑站点上(如keygenninja [.] com,piratewares [.] com,startcrack [.] com和crackheap [.] net)发现了包含CopperStealer在内的多个恶意软件家族,这些站点往往打着提供破解版软件或软件序列号的名头,让受害者在下载时连带下载了恶意负载或可执行文件(图1)。
图1:破解版应用程序携带了CopperStealer。
Sinkholing调查
研究人员为恶意网站设置了插页式的警告页面,并在攻击者将域名注册之前建立了一个sinkhole,此举既能限制攻击者收集受害者的数据,又能使研究人员了解受害者的来源和数量。在初始运行的24小时中,Sinkholing记录了来自159个国家/地区的5,046个唯一IP地址的69,992个HTTP请求,其中有4,655次唯一感染,数量上排名前五名国家分别是:印度、印度尼西亚、巴西、巴基斯坦和菲律宾。
在sinkhole运行了约28小时后,流急剧下降,此时观察到keygenninja [.] com网站不再分发CopperStealer。
恶意软件分析
此分析使用SHA256哈希为5fa60303a0c4fd13ecd69e7c1a17788b72605473c2fb3f93eb758010326c76e5的样本。
命名
CopperStealer的名称源自在PDB和进程存储字符串中观察到的字符串“ DavidCopperfield”,也有研究团队将其称为“ Mingloa”并创建了相应的反病毒检测程序。
图2:进程内存字符串
反分析技术
CopperStealer利用了几种基本的反分析技术来避免在研究人员系统中运行,包括:
· IsDebuggerPresent()检查
· GetSystemDefaultLCID() == 0x804 (Chinese (Simplified, PRC) zh-CN)检查
· 寻找一些常见的分析工具:TCPViewClass、TStdHttpAnalyzerForm、HTTP Debugger、Telerik Fiddler、ASExplorer、Charles、Burp Suite
· 看是否处于下列软件的模拟环境中:vmware、virtual、vbox
CopperStealer可以找到并发送浏览器密码,观测到的案例中受影响的浏览器有:Chrome、Edge、Yandex、Opera和Firefox。CopperStealer还使用cookie检索用户的Facebook访问令牌,并通过令牌请求API端点收集额外信息,包括朋友列表、为该用户配置的广告帐户和已被授予访问权限的页面列表(图3)
图3:生成的Facebook和Instagram请求
分析样本中,创建的所有请求都包含一个静态的Accept-Language头“ko- kr,ko;q=0.9,en- us;q=0.8,en;q=0.7”。
图4:CopperStealer发送请求以收集受害者Facebook账户的额外信息。
下载器
CopperStealer的下载器功能能从c2服务器检索下载配置。本例中下载的是一个名为xld.dat (18c413810b2ac24d83cd1cdcaf49e5e1)的7z文件,提取文件(ThunderFW.exe - f0372ff8a6148498b19e04203dbb9e69)并执行:
C:\Users\
CopperStealer使用迅雷对二进制文件的配置进行下载。
此例中,CopperStealer从C2服务器的“/info/dd”URI路径下载配置(图5),也能从备选的URI路径中检索配置下载,配置中包含了有效负载的位置及执行的详细信息(图6)。
图5:从C2服务器返回的加密下载配置。
图6:解密后的下载配置。
植入恶意软件
以往版本下载多种类型的恶意软件家族,近期观察到的下载的恶意软件是Smokeloader,下载链接为hxxp://dream[.]pics/setup_10.2_mix1.exe。
近期的SmokeLoader样本包括:
· 9f9ec27591faea47ca6c72cf26911d932a2a7efe20fdd1a6df8ea82e226fbf38
· c9d92e36006663f53a01a14800389bd29f3266f00727cce1f39862cceccc50b0
· bb5d2c07ce902c78227325bf5f336c04335874445fc0635a6b67ae5ba9d2fefc
· 381ab701bc1e092cb3ad5902e3b828e4822500418fbde8f8102081892e0a095a
· 29c0dca8a7ce4f8be136e51bb4a042778277198e76ddd57dda995b7fb0ce5b35
· 3c1f7af5e69a599268bcb3343b8609006a255090234d699c77922c95743e9e98
· 679150089d1fa44cf099ff4cf677dc683a3fb1bab81b193a56414ac5a046aeeb
· 9902a7fdaac2e764b8e50adbd9ebca4d8d510c2df9af6c5c6a19c721621dd873
· d74b612aa9f21f0d12bdb8a8e8af894bd718a1145c41ec64a646cf4fa78e9f75
基于主机的检测
在分析样本中没有观察到持久性技术,但有基于主机的检测。
互斥锁
分析样本中有了一个名为“ Global \ exist_sign_install_r3”的互斥锁,其他样本中也有类似的:
· Global\exist_sign__install_r3
· Global\exist_sign_task_Hello001
· Global\exist_sign_task_Hello002
创建注册表项
分析样本首先尝试打开特定的注册表项HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ vindiesel,如没有则创建。该注册表项用于确认恶意软件是否已在受害者计算机上运行,并用于确认窃取数据中的“ isfirst”标志值。
证书植入
与Charles Proxy相关的证书,SHA1 Fingerprint = 6C:0C:E2:DD:05:84:C4:7C:AC:18:83:9F:14:05:5F:19:FA:27:0C:DD被加载到受害计算机的 "My" 和 "Trusted Root"证书存储中。此证书除了用于检查vindiesel注册表项外还检查“ isfirst”标志值。证书名包含以下共同字段:Charles Proxy CA (19 十月 2019, DESKTOP-BNAT11U)
内核驱动程序植入
分析的样本还可以植入并加载内核驱动程序(d4d3127047979a1b9610bc18fd6a4d2f8ac0389b893bcb36506759ce2f20e7e4),用途目前未知。
命令与控制
恶意软件使用域生成算法(DGA)生成C2服务器地址,通过HTTP来与之通信。DGA算法有两类出现得比较频繁,下面对其详细介绍。
域生成算法
恶意软件通过域生成算法(DGA)每天生成新的C2地址,算法由一个公开可用的Python3脚本实现。
Version 10 – Version 47
此版本间的DGA算法需要“种子”字符串及YYYYMMDD格式的当前UTC日期,由其组成的字符串的的MD5哈希的中间16个字符。比如在进程内存字符串中观察到的分析样本,“种子”是“exchangework”(图7)。
· 使用名为“ exchangework”的种子,在2021年2月10日生成DGA域的过程为:
· 创建字符串:“ exchangework20210210”
· 计算字符串的md5:“ 2fe5b3641cd81defbab5fc17db5c36c9”
· 提取md5的中间16个字符:“ 1cd81defbab5fc17”
· 加上顶级域(TLD):"1cd81defbab5fc17[.]xyz"
通过此域模式,我们识别了好几个“种子”:
· DavidCopperfield
· FrankLin
· WebGL
· Vindiesel
· exchangework
· changenewsys
· hellojackma
图7:在进程内存字符串中观察到的DGA种子。
Version 50.0 – Version 52.0
2021年2月21日之后的版本51.0(cde543ca4a84d89bd3c7c0e908b044f2)中,DGA算法进行了略微改动。DGA仍基于“种子”和YYYYMM格式的UTC月份组成串联字符串,取MD5哈希的中间16个字符,但加上了数字“ 1”,“ 2”,“ 3”,“ 4”,“ 5”,组成五个不同的DGA域变体,并包含一个硬编码备份服务器(图8)。
表1:2021年2月发现的DGA 51.0版。
图8:在过程内存字符串中观察到的版本51 DGA种子。
版本60.0
2021年3月11日,版本60.0中又出现了细微修改,DGA与版本50.0中的方法相同,但此版本包括两个附加的硬编码域,并通过在连接字符串后附加数字“ 1”至“ 10”来扩展DGA域变体。
C2流量示例
分析样本展示了发送到C2服务器消息的几种不同类型。从客户端到服务器的所有消息都是通过POST请求发送的,加密内容都带有“ info”关键字,而所有解密内容都以“^A”(\x5e\x41)分隔。
状态更新
分析样本通过POST(关键字为“ info”)将状态更新消息发送到`/info/step`,包含加密的消息数据(图9)。
图9:通过HTTP请求传送的状态更新。
状态更新消息包含三个字段(图10)。 “ guid”值(与正则表达式”^(?:[a-f0-9]{16}|[a-f0-9]{16})$"相匹配的16个字符),似乎是根据MachineGuid值和ComputerName生成的。
分析的样本具有以下“状态”值:
· main_start
· check_start
· fb_start
· ins_start
· dl_start
图10:状态更新消息的解密和拆分内容。
数据传输
CopperStealer通过对特定URI的POST请求将窃取数据发送到C2服务器(图11)。数据与“ info”关键字一起存储并加密。需要传输的数据包含目标特定的数据字段(图12)。
图11:通过“/info/fb”将Facebook数据泄露到C2服务器
图12:发送到C2服务器的Facebook数据(已解密)。
ads_info字段包含一个修改过的base64编码字符串(未加密),该字符串解码为设置广告帐户信息的json字符串(图13)。
图13:ads_info解码数据的详细信息。
逆向工程表明,Instagram数据也是通过POST请求到“/info/ins”,有以下关键字:
· guid
· ver
· seller
· os
· cookie
· fans
完成下载器功能后,将向C2服务器发送一个特定于下载器的状态更新消息。状态更新消息使用与其他消息相同的加密方法,通过POST请求发送到“/info/retdl”,有以下关键字:
· name
· channel
· os
· guid
· downok
· regok
图14:下载器状态更新被发送到C2服务器。
C2流量加密
虽然恶意软件不使用HTTPS通信,但它利用了DES加密和修改过的base64编码。在HTTP通信中,“info”表单项包含加密的详细信息。我们观察到几个不同的关键字和iv值(表2):
表2:用于网络通信的DES加密密钥和IV。
恶意软件包含的Python3脚本通过key和IV对通信进行解密。
“种子”
表3:DGA种子变化的时间表
主要版本更新
一年中,我们观察到近80个CopperStealer不同版本,其中有一半在野分发。新版本的发布频率从2020年8月开始增加,在2020年10月至2021年2月之间加速,并且每月都会发布多个新版(图15)。
图15:新版本出现频率。
C2流量变化
某些版本用于发送状态更新和窃取数据的URI具有不同的结构(图16)。
图16:版本46.0.0的网络流量
目标差异
分析样本针对的是Facebook和Instagram,从其他版本收集的网络流量表明,也有其他一些主流头部网站受到影响。
表4:观察到的针对其他网站的样本。
动态Cookie收集
在对一个Ver 51.0样本(ed21e90c75aec59d0278efb7107f9253)的简要动态分析中,恶意软件向“/info/r”发出了HTTP请求,发出的下一个HTTP请求是数据传输,其中包含引用亚马逊URL的数据字段(图18)。
图17:C2服务器响应的域名。
图18:Amazon用户详细信息传输到C2服务器。
硬编码的备份C2
从版本47.0(c2227bff513c463298e61ef82a5c4665)开始,该恶意软件除了DGA生成域之外,还实现了硬编码的备份服务器。对于版本47.0,样本中引入了硬编码的备份C2服务器,图19涵盖了2021年2月12日至2021年2月23日的DGA生成域名。最新版本的60.0被配置为使用其他顶级域(TLD)中的域,例如.io,.ru和.su。
图19:版本47.0的进程内存字符串显示的备用C2服务器。
结论
虽然CopperStealer并不是现存的最具破坏性的帐户窃取软件,但它的存在表明,哪怕只有基本功能,其整体影响也可能是巨大的。CopperStealer的快速迭代和使用基于DGA的C2服务器也证明了幕后团队操作的成熟性。我们将继续关注其走向和发展动态。
本文翻译自:https://www.proofpoint.com/us/blog/threat-insight/now-you-see-it-now-you-dont-copperstealer-performs-widespread-theft如若转载,请注明原文地址: