写在前面的话
代理服务通常允许用户通过租用一套IP地址集合来访问互联网,并以此来实现一定程度的在线匿名性保护。从本质上讲,代理服务允许我们的互联网流量看起来像是来自常规 IP 地址,与此同时还能够隐藏流量的真正来源。
近期,BitSight的威胁研究团队发现了一个新型的恶意软件样本,并通过PrivateLoader和Amadey加载器进行分发。在此之前,很多威胁行为者都会使用这两个加载器来传播恶意软件并建立受感染设备集合,即“肉鸡”或“僵尸网络”。
通过逆向工程分析,研究人员发现该样本会在受感染的系统上安装了代理Bot,并能够将目标设备转变为能够转发流量的代理。我们将这个代理Bot命名为Socks5Systemz,因为这个名字出现在了代理Bot的C2服务器登录面板上:
在这篇文章中,我们将深入研究该代理Bot的功能,分析其相关的基础设施,识别目标用户,并揭秘建立在该僵尸网络上的代理服务。
加载器分析
PrivateLoader和Amadey分发的所有恶意软件样本都会在目标设备上投放并执行一个名为previewer.exe的文件,这个文件将负责实现持久化感染并将代理Bot注入到目标设备的内存中:
这个加载器支持接收下列三种命令行参数:
参数选项 | 描述介绍 |
/chk | 在当前目录中创建一个名为“test”的空文件并退出 |
-i | 安装加载器 |
-s | 开启加载器 |
安装选项
安装选项可以在目标设备上实现持久化感染,为了实现该目标,恶意软件会尝试将加载器复制到C:\ProgramData\ContentDWSvc\ContentDWSvc.exe路径下,并创建一个 Windows 服务来运行复制的加载器,然后将名称设置为ContentDWSvc:
如果文件复制或服务创建失败,加载器将尝试终止所有Google更新进程并自行将GoogleUpdate.exe替换为原始可执行文件:
启动选项
此选项将创建一个新线程来启动加载器主函数并等待其任务执行完成:
加载器主函数会将ID为400的资源加载到内存中并解密。解密的数据将是一个有效的 DLL 文件,其中包含了后续将被注入内存的代理Bot:
代理Bot分析
代理Bot的Payload是一个大小为300KB左右的32位DLL文件,代理Bot的入口点会将当前文件名保存到全局变量中,然后根据系统架构设置全局标志,并创建一个新线程来启动Bot主函数:
接下来,代理Bot将根据受感染系统中Windows目录的创建日期生成一个32位的客户端ID。
在其首次运行时,Bot程序会收集当前系统时间(感染时间)并将其存储在名为C:\ProgramData\ts.dat的程序中。除此之外,它还会从hxxp://datasheet[.]fun/manual/avon_4_2022.pdf?<client_id>下载一个PDF文件,然后将其存储到C:\ProgramData目录中:
尽管下载的 PDF 没有包含任何特别有意思的东西,但考虑到这个域名是由威胁行为者控制的,因此他们很可能是通过这种方法在额外的遥测数据,并可能有助于验证目标系统:
最后,Bot程序会尝试获取在线 C2 服务器的地址。它会使用域生成算法计算域名,并使用硬编码的 DNS 服务器列表来解析它:
由于列表中的所有 DNS 服务器均由该威胁行为者控制,因此我们尝试使用它们解析的任何域都将指向有效的C2服务器:
如果Bot无法使用该方法获取有效的C2服务器地址,它将向bddns[.]cc的/sign/<rc4 data hex encoded>节点发送一个HTTP GET请求,其中的十六进制编码数据格式为<dga_domain>:<client_id_hex>,并且使用了RC4算法和密钥“heyfg645fdhwi”进行加密。响应信息同样也使用了十六进制编码和RC4加密,并使用了相同的RC4密钥,其中包含了有效的C2服务器IP地址:
获取到C2服务器的IP地址之后,Bot将通过向节点/single.php?c=<rc4 data hex encoded>发送一个HTTP GET请求来启动C2通信过程:
“c=”中的参数数据是使用相同的 RC4 密钥 heyfg645fdhwi 加密信标字符串的十六进制编码结果。纯文本信标字符串格式如下:
client_id=%.8x&connected=%d&server_port=%d&debug=%d&os=%d.%d.%04d&dgt=%d&dti=%d
信标字段 | 描述介绍 |
client_id | 客户端/Bot ID十六进制值 |
connected | 回连链接状态(1表示已连接,0表示已断开) |
server_port | 回连服务器分配给Bot的端口号 |
debug | 硬编码值 17 |
os | Windows 主要版本、次要版本和构建版本 |
dgt | 架构(1 表示 64 位,0 表示 32 位) |
dti | 系统时间(感染时间) |
来自C2服务器的响应也使用了相同的 RC4 密钥进行加密和十六进制编码,并且其中还包含了发送给Bot的命令:
当前版本的Bot支持下列控制命令:
Bot命令 | 描述介绍 |
idle | 啥也不干 |
connect | 与回连服务器建立连接 |
disconnect | 与回连服务器断开 |
updips | 更新允许发送流量的IP地址 |
upduris | 该命令似乎还没完全实现其功能 |
其中最重要的是connect命令,它可以控制Bot通过端口 1074/TCP 与回连服务器建立会话。该命令还会在基础设施中注册Bot,并将其添加到可用代理池中,随后便可用于代理客户端转发流量了:
connect命令参数字段如下:
Connect命令字段 | 描述介绍 |
ip | 回连IP地址 |
auth_swith | 身份认证标识,如果设置为0,auth_ip字段中定义的客户端IP将可以使用该代理。如果设置为1,代理客户端将使用auth_login和auth_pass字段中的账号和密码进行连接。 |
auth_ip | 授权IP地址列表 |
auth_login | 代理登录用户名 |
auth_pass | 代理登录密码 |
block | 不允许发送流量的端口列表 |
解析了connect命令的所有参数字段后,Bot将使用自定义二进制协议并通过端口 1074/TCP 与回连服务器建立会话。建立会话后,Bot即可作代理使用:
当Bot通过端口1074/TCP与回连服务器建立会话时,它会在服务器端分配一个唯一的 TCP 端口(称为服务器端口),打开此端口即可接收来自客户端的流量。如需使用代理,客户端要知道回连服务器的IP地址和分配给受感染系统的TCP端口,并且将其公共 IP 列入白名单或拥有适当的登录凭据。如果没有此信息,服务器将不会接受该流量:
基础设施分析
研究人员通过分析后,发现了至少53个与该僵尸网络相关的服务器,这些服务器全部位于欧洲地区,分布于法国、保加利亚、荷兰和瑞典:
相关基础设施由具备多种功能和用途的服务器组成,其中包括:
1、代理Bot C2服务器;
2、回连服务器;
3、自定义DNS服务器;
4、Bot用于获取在线C2服务器地址的服务器;
5、一个代理检查应用程序;
代理服务
在分析该僵尸网络基础设施的使用过程中,我们在Telegram频道上发现了一张图像。在此图中,一位名为boost的用户分享了一个帐户检查器工具的截图,而该工具可以利用回连服务器的 IP 地址作为代理,同时这些 IP 地址与前文所述的恶意软件地址列表正好匹配:
分析后发现,这位名叫boost的用户一直在出售受感染账户以及代理访问权。威胁行为者使用了名为BoostyProxy的Bot构建了完整的代理服务,且允许用户订阅该服务、管理现有订阅以及访问当前可用代理列表:
该服务有两种订阅选项:标准订阅和 VIP 订阅。两者之间的区别在于,标准仅允许客户端使用一种类型的代理且不支持多线程,而 VIP 订阅允许客户端发送所有类型的代理流量(socks4、socks5 和 http)并使用多线程。
以下是两种订阅选项的当前价格表:
标准代理
线程/周期 | 1天 | 7天 | 1个月 | 3个月 |
单线程 | 1 美元 | 5.1 美元 | 10.3 美元 | 28 美元 |
VIP服务
线程/周期 | 1天 | 5天 | 10天 | 1个月 | 3个月 |
100 个线程 | 22 美元 | 60 美元 | 100 美元 | 175 美元 | 450 美元 |
300 个线程 | 28 美元 | 68 美元 | 112 美元 | 200 美元 | 500 美元 |
500 个线程 | 35 美元 | 90 美元 | 150 美元 | 300 美元 | 740 美元 |
1000 个线程 | 42 美元 | 120 美元 | 200 美元 | 400 美元 | 1000 美元 |
5000 个线程 | 140 美元 | 420 美元 | 700 美元 | 1500 美元 | 4000 美元 |
需要注意的是,该订阅服务的付款方式仅支持通过Cryptomus加密货币支付网关(cryptomus[.]com)进行。
订阅服务时,客户端必须提供访问代理的 IP 地址。订阅过程完成后,客户端 IP 地址将被列入僵尸网络白名单,客户端可以下载可用代理列表,其中包含回连服务器的 IP 地址和分配给受感染系统的TCP端口。
目标用户分布
由于 PrivateLoader 和 Amadey 加载器一直是该代理Bot的主要分发渠道之一,因此我们推测该僵尸网络的目标用户地理位置可能会比较分散,我们后续的分析也印证了这一点。自今年10月份以来,我们观察到了大约1万个受感染系统通过端口1074/TCP与回连服务器进行了通信。
受影响最严重的10个国家依次是印度、巴西、哥伦比亚、南非、孟加拉国、阿根廷、安哥拉、美国、苏里南和尼日利亚:
入侵威胁指标IoC
Socks5Systemz代理Bot Payload
fee88318e738b160cae22f6c0f16c634fd16dbf11b9fb93df5d380b6427ac18f
代理Bot加载器Payload
dc262539467bf34e5059686955d6567efadd8e21c76be51eba94737d8c326720
Amedey和PrivateLoader分发的封装文件
78efcbb0c6eb6a4c76c036adc65154b8ff028849f79d508e45babfb527cb7cfe 5b45926c91fe46b12dadd3dae6afa2cf76f91a8fed7c3aefdad7f8c1faa03919 189af501e84dddc5af3f7a66dcdc5095d22570abad100575ade261698d199bf3 2987dc6ea8908c9e80ee5cd15ae4b91d15c48d1d31f7dbc79e01864475f33247 3222778fd2f0717284dedbbda7298abf17105881147832e7a1cdbddc24747b0a d99188eb6d65ecfeb7586bfb3566766fd1c68f659fbc57c7ce2bf1580452fd69 eaaf1823c34ea385dc3fa483a071b9a5f6122c8ab347b83da00a887ade466a0b d2eafbfcd0dc07d49081b9b8324b549b08eb7aefd87ca6175046a9dd11b1d350 5b3b41fcfe12f7bf5f933d8dbd5d881a3c5391ffb0a71fc313ac456afe8d7510 2acfc97589dfb9f01a4ad9919b6bd73b38f391343b2e952e7dec8bfb8318bf51 09f3fa5267026b2a7a698517d21dec97594cf2623388b13f0091e09ecba85ee9 34a818f4223d32179c774e5cc707410d448d4e72fff148c293f453179642c8e6 5c52f631330f6099fdf038af2e7fc2bc7956e561fe9db5fbde0e8c1fb1951323 99c4c0abd02e05ce83b85184d4f49853674b63d1e402e5068992aabdd35109f8 116db67b886d33dc3ce3892471ea70b652539fe3436aefbc6d4771cd72748bf1 1ba2ae706f2e9b938f96b1d9baa63e302eb0b93c370d6a9b8c555065f90123dd 903ee5d2fb1341754c10acba60faf45fdde7dec94b5c82e3d990a9e7a5a7cd7f 8093be2f5aabcfdb73bf1e6a73161e37d2f702868f974387a032d4e0489516ee 75a741eb4e59010b49520e85c949c610ddec55cd89ea954178a12e6b45551483 ee5ce35a68761315dc14c27af6cb25128952bbde67a699b5c69cb21081a3bd75 9b914a04a6b4acb86915551f54a471fd3fc5edda4f8b948416db38808fa291bf 8be1d9004e4ffad4035fa973d6d6508835762adf097a7f4362039b11b5d41122 25e34355c90e9b96478a3a316c4b3280f3254e3677bc9c10e8146efbaaf29c39 449d46143fac008f3c90ea25156bf2e1f3492c7e55e11a45670b98c076924f34 48429a97039eef7473041955fdd403f4d6ae72332cc7f9ede56986167920cd65 973b44c741b1e12417e6a99a806b519b1fb2a1095d2931c154d10a92fabcb01b 65faccff1bd94971f57d4ab74662a11e0de5e9b84c64db56c2290b419c2ad59b 759e28b5e743ef6368816dafb62507ba7133cdbb38853e21ff98964aa3c0d454 1357aed783ad4b524540bcf99d980eaeac3aa21357b696b32c412ee44b925eab ebca811f9da30028f61da7eb4e4d842eec9558a0c0b9e6c172c70095cbc8f4b9 37f72d7cc30ac6952775a5972e510e0f2e0163b11ac7dea1e4dc0449dd8e633a 3476601196502ae5aacb48ab2a6b0b1089100c0761f563c2cdb86861bc18798d 6cccc777cf4eeebb2a17f4d13732f5dfeb0f6dbf50e6b96c743f101c481a44b6 8dabf008e15a4822e0a34b1a998ce3522194128dffbab0401320c6fd21fa97df c02e920086d41efee570ff2aa367640d63394f1ef86bffb1ced03aafa9bebf4b 8458c1237cd94a1446468c7d615df01af8ef3ffc14c1033efeb61118bf4bd3b4 3b5d15ed72a7aaf60ee447fade02e82e333e09c84ccd7ceca3b3594702da0c52 70b3d99e5a06e20095f2919783b8afd9077e5a9a6aed92236605d69bcf424316 2f255e9658e381d9c02499c30dcb07af2c7f5691fd6e5afd8ef35f3d284429f7 cb346f5850a116273a9a6fc0430d99e2b2d3a1f92a1742242499d67728efba1d 779bc4fda3638f8adfba674f096475dc4e663fb45c962b5120b9c285dac87fe2 71f6c61bc2314ab899d3e79ffe0cf9434106ae29f760a5e076dbf826a7dfda7e 4847e2d370b72b717e85f289bf9daf22a39906fa99cedc8cda584a775ba571fb 0cebb8519e93f4177b4ab6d82f59643de9940ac6acdd284c3c1f23019f203120 ae1b4b92fd179336c88340771c8c16492b6b3f80030735d770dafeef2558861a 43ec23f5477e218b33003603458503d469804ab5a05ee97541402a2b7255627a 23416440ae258c4a472c5c3c07bf7659190168277f8483dcd84d24fbcb83bbd4 78ab98c5b5ead97ff7d245b9603bb5edc4d59d379e492049a3a958a8e48cb945 1fa58cb939e9b5d0f7f0d5c78b437f62f182b5d3658e59729fda2f28eb8746da 29122127b97c0810a564fe16d87faaa9c931e0e48ecd63271af86385a652baca ae9aad29ad8bf58206a14b791b0ab0c842d745495762bf3fe092ce3be1f7fb0e dc0cb777651c14ef9e44cad759ce2a9688872e56d241352e23a3ab3443b03f07 15f4e20fb7971cbd61a7ba4f6ca0582286ff7ca332c17b7c5eef0c023f40bab0 1f8ceb6cd9e01bfe384378c5ea66de52674e188103f5e438a6029680c0b3180f 2e00197cd4b002cf65fc588be7c31b0b6c46f320885eddd6b7d71c8d2f98b36b 3f321b0d86d3af5f72c328b445c07c9c423b47ee3faa89bd413fdd5486019a0f 2d41e76e3200255d7a11e43c6b826bef6a91cabf451c66b3b36d6826cd56fb46 eb5dfd6a133128a5d2c7183940639ead5e3aa33aa5ba581ce8d91ee113e4931f 8466c3b28b913e7e965b083b8a3174fbe12b76ed5e9f7d4d929a51cb660e326b b1ed4acd9128d49b5a619e8607cac13b33a8743e717a937c9ee9e6d963375867 af766ba5f46115470242fa6033f4f4ba85c82b6d5a001ebfee8482e51d793e1d