180万Android网络设备被感染,还不忘羞辱受害者

admin 2025-12-22 04:01:33 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Kimwolf是一个感染约180万台Android设备的大型僵尸网络,主要针对电视、机顶盒等设备。它具备DDoS攻击、代理转发等功能,采用StackXOR加密、DNSoverTLS和椭圆曲线数字签名等先进技术规避检测。攻击者还引入EtherHiding技术利用区块链域名对抗封禁,并在攻击中包含嘲讽和勒索信息。文章提醒用户需确保设备安全,避免安装不明APK。 综合评分: 88 文章分类: 恶意软件,威胁情报,漏洞分析,IoT安全,移动安全


cover_image

180万Android网络设备被感染,还不忘羞辱受害者

二进制空间安全

2025年12月19日 10:10 北京

将二进制空间安全设为”星标⭐️”

第一时间收到文章更新

#

背景介绍

根据这个超大规模僵尸网络运行时输出的信息结合其使用wolfSSL库的情况, 将其命名为:Kimwolf, Kimwolf 是一个使用 NDK 编译的僵尸网络(Botnet)。除具备典型的 DDoS 攻击能力外,它还集成了代理转发、反向 Shell 以及文件管理等功能。从整体架构上看,其功能设计并不复杂,但仍有一些值得关注的亮点:例如,该样本使用了一种简单但高效的 Stack XOR操作来加密敏感数据;同时,它利用DNS over TLS(DoT) 协议对 DNS 请求进行封装,从而规避传统安全检测。此外,其 C2 身份认证采用了基于椭圆曲线的数字签名保护机制,Bot 端只有在签名校验通过后才会接受通信指令。近期,它甚至引入了EtherHiding 技术,利用区块链域名来对抗封禁和下线。这些特性在同类恶意软件中相对少见。

    Kimwolf 的攻击目标主要针对 Android 平台,涉及电视、机顶盒、平板电脑和其他设备。一些设备型号如下:

高调记仇的攻击者

Kimwolf的作者喜欢在控制台放入一些带有个人情绪和侮辱字眼的字符串,如下图:

而且,作者非常记仇, 在C2地址被抢注之后, 对方便立刻发起反击, 在ssl_socket的DDoS攻击方式中留下了一些侮辱性字眼:

而且其夸张的做法甚至蔓延到Payload, Kimwolf经常在DDoS Payload中包含各种嘲讽、挑衅、甚至勒索信息, 如下图:

嘲讽:

挑衅:

敲诈:

#

Kimwolf总体技术分析

     当Kimwolf在感染的设备中启动后, 首先通过创建文件套接字实现单实例运行,确保同一设备上只有一个进程持续运行;随后,它解密嵌入的 C2 域名,为躲避传统检测,使用 DNS-over-TLS 协议向公共 DNS 服务的端口 853 发起查询(8.8.8.8 或 1.1.1.1),以获取真实的 C2 IP;最后, 它与该IP建立通信连接,进入等待状态,随时准备接收并执行来自控制端的命令。

Kimwolf在不同的版本具备两种获取真实C2 IP的方法。第一种是直接使用DNS查询C2域名的A记录, 第二种方法是在查询IP后需要进行xor运算。以 C2 域名 rtrdedge1.samsungcdn.cloud 为例,解析出的IP是 44.7.0.45 ;经过与 0xce0491 进行 XOR 运算后,得到真实 C2 IP 45.206.3.189 。如图:

之后, Kimwolf 开始使用 EtherHiding 技术。样本引入了一个 ENS 域名(以太坊名称服务),pawsatyou.eth,C2 隐藏在”lol”文本记录中。如图:

但真正的 C2 并非”lol”中的 IPv6,而是通过取地址的最后 4 个字节并执行异或操作来获取真实 IP。以 fed0:5dec:ea5e:d013:130:9:1be7:8599 为例,取最后 4 个字节 1b e7 85 99,与 0x93141715 进行异或操作后,得到真正的 C2 IP 136.243.146.140 。

ENS 的技术本质是一个部署在以太坊上的智能合约系统。 pawsatyou.eth 的合约地址是 0xde569B825877c47fE637913eCE5216C644dE081F 。Kimwolf 通过合约实现了一个类似于云配置的C2通道。即使 C2 IP 被关闭,攻击者只需要更新 lol 记录就能快速发布新的 C2。而这个通道本身依赖于区块链的去中心化特性,不受以太坊或其他区块链运营商的监管,无法被封锁。

#

字符串解密

     Kimwolf 使用简单的栈 XOR 操作来加密敏感数据,如 C2、DNS 解析器等。在 IDA 反编译的伪代码中可以看到大量类似的代码片段。 veorq_s64 是一个 8 字节的 XOR 指令,因此解密很简单:可以使用正则表达式提取操作数,然后执行 XOR。在下图中,v63 解密的内容正好是 C2 staging.pproxy1[.]fun ,如下图:

通过仔细观察上面的代码片段,可以知道解密后的 C2 字符串是函数 sub_8F00 的第二个参数。根据这一特性,可以使用模拟器来实现 C2 的批量自动解密。

import flare_emu
eh=flare_emu.EmuHelper()def iterateHook(eh, address, argv, userData):
    if eh.isValidEmuPtr(argv[1]):        buf=eh.getEmuString(eh.getRegVal('R1'))        print(f"0x{address:x} ---> {buf}")
eh.iterate(0x00008F00,iterateHook)

最终效果如下,成功解密了 6 个 C2,如下图:

#

veorq_s64 的指令代码是 VEOR Q8, Q8, Q9 。通过它,可以定位所有包含加密字符串的函数。然后,根据不同函数中呈现的模式,使用 flare_emu 的 iterate 或 emulateRange 可以方便地解密所有敏感字符串。如下图:

#

网络协议

      Kimwolf 的网络通信始终使用 TLS 加密。在早期版本中,应用层协议直接通过 TLS 隧道传输;在当前版本中,发送 register 消息前会进行 websocket 握手,但协议随后未被使用。其网络通信数据包遵循固定的”Header + Body”格式。在 Header 中,保留字段为固定值 1,而 Magic 值已迭代三次,目前为”AD216CD4″;消息体的结构根据消息类型而变化。

type Header struct {    Magic    [4]byte  // "DPRK" -> "FD9177FF" -> "AD216CD4" Reserved uint8    // 1  MsgType  uint8 MsgID    uint32   BodyLen  uint32    CRC32    uint32}

MsgType 字段用于说明消息类型。其值和对应功能如下表所示:

Bot与 C2 服务器之间的通信初始化采用三阶段握手机制。双方必须依次完成 register 、 verify 和 confirm 这三个交互,才能在建立可信会话之前实现双向身份认证。

第一步:注册机器人 -> C2

该机器人向 C2 发送两个 18 字节的头部信息,其中 MsgType 为 0,MsgID、BodyLen、CRC32 字段均为 0,Magic 为 FD9177FF

第二步:验证, C2 -> 机器人

C2使用私钥为随机消息生成椭圆曲线数字签名,并按照以下格式构建数据包主体部分。

type VerifyBody struct {    MsgLen uint32  Msg    []byte SigLen uint32  Sig    []byte}

根据上述结构解析示例中的正文,含义如下:

消息长度是 4 字节,消息是 xx xx xx xx,签名长度是 0x47 字节

签名如下:

当Bot 接收到验证数据包时,它使用硬编码的公钥来验证签名。一旦验证通过,它将进入最终的确认阶段。Kimwolf 的作者设计了这种机制,目的是保护他们的 C2 网络不被他人接管。

第三步:确认,机器人 -> C2

该木马使用运行时传递的第一个参数作为组标识符,按照 GroupBody 结构进行构建,并向 C2 报告。示例中使用的组字符串是”android-postboot-rt”

type GroupBody struct {    MsgLen uint32  Group    []byte}

在接收到木马的确认数据包后,C2 服务器检查其所属的组是否已在活动中预先启用。如果匹配成功,木马的身份被确认为合法,并向其发送一个确认响应数据包。该响应数据包的 MsgType 字段值为 2,MsgID、BodyLen、CRC32 字段均设置为 0。

在上述过程之后,Bot 与 C2 完成了双向身份认证,Bot 开始等待执行 C2 发送的命令。当命令编号为 12 时,Kimwolf 执行与 DDoS 相关的功能。

Type DDoSBody struct {    AtkID     uint32 AtkType   uint8   Duration  uint32   TargetCnt uint32   Targets   []Target FlagCnt   uint32  Flags     []Flag}

以下是 Kimwolf 支持的 13 种 DDoS 攻击方法:

#

后记

     攻击者在智能电视上获得 root 权限后,造成的攻击不仅限于传统网络空间。攻击者可以利用受控终端插入篡改、违法或极端的视频。

在多重威胁的背景下,无论是普通电视盒用户、销售渠道、运营商,还是监管部门和制造商,都必须高度重视电视盒的安全。其中,电视盒用户尤其需要:确保设备来自可靠渠道,使用能够及时更新的固件,避免设置弱密码,拒绝安装来源不明的 APK,以降低被僵尸网络感染和控制的风险。

#

#

(全文完)


查看原文:《180万Android网络设备被感染,还不忘羞辱受害者》

评论:0   参与:  4