Rimasuta新变种出现,改用ChaCha20加密

时间回到两年前,2021年6月360netlab捕获到一个全新的mirai变种,根据使用的TEA算法给它取名为mirai_ptea,没想到在向社区公布了该变种之后,作者在随后更新的样本里吐槽了360netlab的命名:

“-_- you guys didnt pick up on the name? really??? its RI-MA-SU-TA. not MIRAI_PTEA this is dumb name.”

鉴于作者吐槽,360netlab也是将后续命名更改为Mirai_ptea_Rimasuta。当时以为又是一个生命短暂的僵尸网络,然而在最近的botnet观测中,rimasuta再次回到了我们的视野。

rimasuta的整体架构没有发生变化,比如通信过程就延用了之前的设计思路,采用Tor Proxy进行通信,但在加密算法、协议格式等方面发生了改变。本文通过对rimasuta新变种的分析,尝试为这个活跃了三年的botnet勾勒出一条时间线,方便社区了解。

时间线

  • 2021年6月22日360netlab观察到mirai_ptea利用KGUARD DVR漏洞开始传播
  • 2021年6月23日360netlab发现安全社区披露mirai_ptea开始进行DDoS攻击
  • 2021年9月5日360netlab观察到mirai_ptea_rimasuta开始利用RUIJIE路由器0-day传播
  • 2023年4/8月我们捕获到两个rimasuta变种,加密方式改用chacha20算法
  • 2023年10月24日rimasuta使用一个疑似0Day的漏洞开始新一轮分发,chacha20的key/nonce发生改变
  • 2023年10月26日rimasuta快速更新,修改字符串hash计算方法为fasthash算法

样本传播

近期rimasuta的传播方式比较单一,但延续了其善用0Day的特点,我们视野内的利用漏洞仅有一个,但是暂未搜到任何相关信息,内部暂时命名为“NCVE_2022_03_03_RMT_saveddns”,以下是payload内容,出于安全性考虑做了打码处理。由于样本数量较少并且没有下发有效的指令,因此本文重点在于样本自身的变化方面。

样本分析

rimasuta不同于一般的mirai变种,其代码结构与mirai相比发生了很大变化,并且重新设计了加密算法和C2通信协议,关于之前的变种,请参考360netlab之前的工作。下面以265d5d2219d11e8aa6e6b7855f3d17023fe18eb0为例分析近期rimasuta的变化。

0x1, ChaCha20

rimasuta新变种最大的改变就是抛弃了之前使用的PTEA算法,转而使用chacha20。样本中共涉及3组Key(密钥)、Nonce(随机数),分别用于解密字符串、加密用户信息、加解密通信数据,下面会一一提到。

0x2, fasthash

fasthash贯穿了样本的整个运行过程,在字符串校验、chacha20key生成、密钥协商和通信阶段起到了关键作用,这也极大地提高了逆向成本,是一种有效的对抗手段。旧版本实现了一种自定义算法,新样本则使用了开源的fasthash

0x3, 字符串配置

rimasuta的字符串表以密文保存,经过自定义的数据交换方法,再用chacha20进行解密,这里涉及到了前面提到的第一组chacha20的key/Nonce,硬编码在.rodata段。

key: 43DC4ACBF65BE07F00D53E6B2C65B572E4B43F30227AA42438E34D21ECC50ACD
nonce: 5AEFD79DE9DAAFABFDB2C0B8

字符串配置如下,和mirai一样,在使用时通过index进行查找,比较关键的一些配置如下:

index=14:tor list

index=15:用于计算第二组chacha20的key和nonce

index=16:打印“The Lord is my shepherd; I shall not want.”

index=20:proxy list

index=22:STUN协议内网穿透获取公网信息

0 b'/proc/'
1 b'/proc/net/tcp'
2 b'/proc/net/route'
3 b'/proc/sys/kernel/'
4 b'/sys/class/net/'
5 b'/cmdline'
6 b'/address'
7 b'/stat'
8 b'/maps'
9 b'/exe'
10 b'/fd'
11 b'/dev/misc/watchdog'
12 b'/dev/watchdog'
13 b'nothing here to see, move along. '
14 b'xjdhr5is3qsw2cyekdxo57gchpxusvkko3265x2lmmn4g6fnlimdngqdsourt33xcdoyg4jcrh33qvx6cjoneowihsfrbuqldkrrili54gdvryyduu2iggf5wq57dt6xanfdmwq3rvxqorkb43bh2eacj2vz22nvwewlxcydwjd2t2lzbgb7g7bcenpl2r2bsobkbwwpooqrmiwqjkpktm5p5seifcids4ofksblif7bmo7sp64f56gij6xzh7sznvrn46m6daup2hwdmwbiabqdyqs4gu4c2kb5ybgcigkl5gcsqbjuk5n2su2pozpsw4ojav2op5gddkidwf4uxi6izbqppzb4fvg4sq7sm5t5w5xl5v5pkxpguwpr4aci7hvzboidm5idjwoj4q5yrmo5xbnvhoqqrdld6pruxx5qjvr6gfnnmao4xiniwzidyjh2bktujnqkj7u7g7hxotck6sfhjuf7crhc4vcf6ewpa7swoqalfkidfend7yhjoeam7b4fp4rj5oobphuvmhjbovhtvporusjex4nyoiamgdydu7kteztwfg3p6wdeiq6y7zidxx3xtto4gmm2vwz42mzd6s4ixgvpgxydpcjvbrttcy2s3gqpgwklgsco4u4bskr5xhvdzs4pzqqcrfllkwe437id3crj2ylhdffpf2yik4bb2hn32xey2bdhcpykxfezb4sq53eelglp3sqdc3uybau64lj32ty3z3sxgchnrmg72bvbpua66mcvydcjpgrbv2r6huydwauby5e7m6zf2eb7rfn7nqm3diuaehdu6tfay4janiktgx33wjfifkydtybocptxypx42ngrcqldrgas536syipwotmfnbjpwc5fpxth4xf4faqd44yd2dxmm5xuo7dsivwkf2fqyqmfsqkt5nkxdlgwpnbr57sca56j74ydnpnsktlnofwisqvd3e6tpslinkypajmh5jctyjivuf6jza3syw2v6cidacuy77ahadd6g5rw2pxsuejskirjmxaoj37ck7fvj4h4kc36a3uwirqdm7wajjzas7eotqw4b6k4aei5q4zijdal3spsec7wsfmf2xqjhmydjiyd24rq2pvihkrct6pxl6zy3p36gt2wd6sn6izoz7ntlivxvbuu5ei3xwadsyd5mtjvcqxvnnkeqjjkdm2oz2jzl6swrfhnvliiemxtgiqvcbm26nydbvxx2p6hfttpiyntpuf72axcvaakjbz5zgiea7iklkrb2s6wrdrv4lids5q2zsdf5n7dezz2hcah23iodsrn6gpyv6f2dxv62ikp7idntmlecvqd.onion'
15 b'bbknilviexavjvnwdtdqmhsexqcokfwgdqthxexvuwzlwgaggddaahxn.onion'
16 b"echo -e $(echo 546865204c6f7264206973206d792073686570686572643b2049207368616c6c206e6f742077616e742e | sed 's/../\\\\x&/g')"
17 b'/bin/|/sbin/|/usr/sbin/|/usr/bin/|sh:upnpc-static:mini_httpd:proftpd:httpd:udevd:udhcpc -s /etc/default.script:inetd:dnsmasq:getty:ntpdate:ntpd:ash:boa:sshd:systemd:rtspServer 554:watchdog:hidog:pptpd:miniupnpd:disk_monitor:dhcpd:login -- root:init:mini_http --demon'
18 b'Revelation 22:12'
19 b'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+/'
20 b'U\x01\x0e\x00\xd5\xb79\xae\xe50\xd5\xb79H\xe50\xd5\xb78\xc9\xe50_\xa4-\x1b\x12D-x\xb2\xa1\x05+\xb0xJ\x03tC\\\xf3@\xb8\xfaB\\\xf3@$\xfaBY\x1fx~:-[\x84]!:-[\x84_\x1cE"[\x84_\xccE"[\x84_\x87E"[\x84_\xccE"'
21 b'wget:curl:ftp:nc:tftp:ssh:telnet:echo:ntpdate'
22 b'vo.lu:wia.cz:tel.lu:qq.com:tng.de:h4v.eu:imp.ch:twt.it:sip.us:ukh.de:gmx.de:sma.de:ixc.ua:odr.de:it1.hr:fmo.de:mit.de:kedr.io:otos.pl:var6.cn:ippi.fr:srce.hr:gmx.net:sipy.cz:5sn.com:dus.net:cope.es:hide.me:jay.net:dls.net:voys.nl:tula.nu:ppdi.com:verbo.be:swrag.de:hitv.com:logic.ky:xten.com:junet.se:komsa.de:1und1.de:files.fm:wxnz.net:medvc.eu:sewan.fr:nfon.net:eoni.com:labs.net:qcol.net:anlx.net:ncic.com:liveo.fr:gntel.nl:heeds.eu:ippi.com:axeos.nl:poivy.com:uls.co.za:imafex.sk:vivox.com:ekiga.net:nonoh.net:avoxi.com:fbsbx.com:jabber.dk:solcon.nl:eol.co.nz:geonet.ro:wcoil.com:fixup.net:levigo.de:solnet.ch:voipxs.nl:rynga.com:epygi.com:aa.net.uk:hoiio.com:root-1.de:jabbim.cz:wemag.com:solomo.de:telbo.com:kanojo.de:leonde.org:miwifi.com:taxsee.com:kotter.net:foad.me.uk:jumblo.com:3deluxe.de:ipshka.com:url.net.au:simlar.org:teamfon.de:tel2.co.uk:alberon.cz:isp.net.au:hicare.net:fitauto.ru:1-voip.com|1.l.:2.l.:3.l.:4.l.|google.com|stun.'
23 b'PROXY:INFO'
24 b'STATS:INFO'
25 b'PROXY:DATA'
26 b'/bin/:/sbin/:/mnt/:/usr/:/var/:/dvr/:/opt/:/edvr/:/fh/'
27 b'socket:['
28 b'[0000]:'
29 b'/sys/class/net/:/statistics/:tx_packets:tx_bytes'
30 b'/bin/sh'
31 b'ash:atl:chi:dal:den:hou:lax:mia:nyc:mia:sjc:sea:tor:ams:ath:dub:fra:kyi:lon:mad:mrs:par:sto:vie:war:zur|.download.datapacket.com'
32 b'GET /|0mb.bin HTTP/1.1|Host: |Connection: close'

0x4, 利用STUN协议获取公网地址信息

在沙箱日志中可以看到很多STUN协议的流量,查询的域名由index=22的字符串随机拼接得到,因此第一眼看上去会误以为是DGA算法,其实是rimasuta在收集用户信息的时候使用了STUN协议造成的。

利用STUN协议的Binding流程,通过向远程STUN服务器发送Binding Request,解析响应的XOR-MAPPED-ADDRESS字段,即可得到自己公网的地址/端口信息。

0x5, 网络协议变化

rimasuta的通信设计较旧版本没有改变,同样使用“socks5加Tor Proxy”的方式间接和C2建立通信,但加密算法和部分字段存在变化。Tor Proxy的工作原理通常是bot通过代理服务器将流量发送到tor代理节点,再由Tor代理转发到真正的C2,C2的响应则是一个逆向的过程。由于Tor网络基于socks5协议,因此通讯过程首先是socks5的握手流量,Tor Proxy的工作模式使得难以追踪到真正的C2节点。

以下图为例解释rimasuta通信的过程,也可以参考旧版本的分析工作。

(1)socks5代理连接过程,bot和代理服务器进行连接,随后请求连接的目标服务器是一个tor域名,域名从tor list中随机选取。

(2)bot开始和C2协商密钥,发送数据格式为:head(2bytes),hash(4bytes),content(Nbytes)

b1 29 19 c4 4e b8 11 8f:bot随机生成的8个字节

32 36 11 89:对上述8个字节计算fasthash得到0x32361189

89 11:session- header,取上述0x32361189低16位,同一次session保持不变

把这14个字节整体进行一次fasthash,保存为netkey[2],后续会用到。

(3)C2响应数据格式:head(2bytes),content_length(2bytes),hash(4bytes),content(Nbytes)

89 11:session- header

00 48:0x48表示content的大小

96 d0 b6 0c:content经过fasthash计算得到的值,其他数据为随机生成的content

(4)bot构造用户信息并发送

89 11:session- header

25 63 a4 3a:计算用户信息的fasthash得来,保存为netkey[1],与上一步的96 d0 b6 0c拼接后计算fasthash保存为netkey[3],在收集用户信息过程中得到的UID计算fasthash保存为netkey[0]。

bot将上一步C2响应的96 d0 b6 0c与明文的用户信息(IP、CPU、Mac地址、网速等)进行拼接,chacha20加密后发送给C2,其中用户信息的各个字段也经过fasthash处理。这里涉及到chacha20的第二组key/nonce,由字符串配置表中index=15的字符串结合session-header计算得到,代码如下,C2收到数据后即可解密用户数据。

import hexdump
import struct

def new_hash(buf, len, seed=0xB9BC210A):
    def mix(h):
        h ^= h >> 23
        h = h * 0x2127599bf4325c37 & 0xffffffffffffffff
        h ^= h >> 47
        return h & 0xffffffffffffffff
    m = 0x880355f21e6d1965
    pos = 0
    end = len // 8 * 8
    h = seed ^ (len * m) & 0xffffffffffffffff

    while pos < end:
        v = struct.unpack_from('Q', buf, pos)[0]
        pos += 8
        h ^= mix(v)
        h *= m
        h &= 0xffffffffffffffff

    pos2 = end
    v = 0
    len_left = len & 7
    if len_left >= 7: v ^= struct.unpack_from('B', buf, pos2 + 6)[0] << 48
    if len_left >= 6: v ^= struct.unpack_from('B', buf, pos2 + 5)[0] << 40
    if len_left >= 5: v ^= struct.unpack_from('B', buf, pos2 + 4)[0] << 32
    if len_left >= 4: v ^= struct.unpack_from('B', buf, pos2 + 3)[0] << 24
    if len_left >= 3: v ^= struct.unpack_from('B', buf, pos2 + 2)[0] << 16
    if len_left >= 2: v ^= struct.unpack_from('B', buf, pos2 + 1)[0] << 8
    if len_left >= 1: v ^= struct.unpack_from('B', buf, pos2 + 0)[0]
    if len_left > 0:
        h ^= mix(v)
        h *= m
        h &= 0xffffffffffffffff
    return (mix(h) - (mix(h) >> 32)) & 0xffffffff

def gen_tmp_key(head):
    data = b"bbknilviexavjvnwdtdqmhsexqcokfwgdqthxexvuwzlwgaggddaahxn.onion"
    xx20_key = b""
    xx20_nonce = b""
    for i in range(0, 32, 4):
        xx20_key += struct.pack("<I", new_hash(data[i:i + 4], 4) ^ (head + 0x6667 & 0xffffffff) ^ 0x5aa5)
    for i in range(50, 62, 4):
        xx20_nonce += struct.pack("<I", new_hash(data[i:i + 4], 4) - head - 0x6c6f ^ 0x601 & 0xffffffff)
    return xx20_key, xx20_nonce

将目前得到的netkey[0]~[3]这四个hash,进一步计算即可得到第三组chacha20的key和nonce,用于后续通信,计算方法如下。

import struct
def gen_net_key(uid, first_send, first_recv, second_send, hash_alg=old_hash):
    net_key0 = hash_alg(uid, 12)
    net_key1 = struct.unpack(">I", second_send[2:6])[0]
    net_key2 = hash_alg(first_send, 14)
    net_key3 = hash_alg(first_recv[4:8]+second_send[2:6], 8)
    return [net_key0, net_key1, net_key2, net_key3]

def gen_cnc_key(uid, net_key, hash_alg=old_hash):
    seed = 0x17769420
    tmp = list(struct.unpack("<3I", uid))
    chacha20key = [0] * 8
    chacha20nonce = [0] * 3
    for i in range(4):
        chacha20key[i] = struct.unpack(">I", struct.pack("<I",net_key[i]))[0]
    chacha20key[4:7] = tmp
    chacha20key[7] = hash_alg(uid, 12) ^ seed
    for i in range(8):
        chacha20key[i] = hash_alg(struct.pack("<I", chacha20key[i]), 4) ^ 0xFAAD
    for i in range(3):
        chacha20nonce[i] = hash_alg(struct.pack("<I", chacha20key[i]), 4) - 0x6042 & 0xffffffff
    chachakey = b""
    chachanonce = b""
    for i in chacha20key:
        chachakey += struct.pack("<I", i)
    for i in chacha20nonce:
        chachanonce += struct.pack("<I", i)
    return chachakey, chachanonce

协商过程可以简化为下图:

总结

rimasuta在细节方面做了不少工作,比如收集了更多用户信息,比如将收集用户信息的过程合并到了密钥协商阶段,再比如通过下载*.download.datapacket.com/*mb.bin以测试网络环境等等。由于未收到后续实际有效的指令,因此rimasuta的最终目的没有表现的很明确,可能是在组建自己的proxy网络,我们也会持续监测。

检测

用户可通过监视设备出口流量的目标IP是否包含rimasuta的代理服务器IP,以及结合流量数据中是否包含rimasuta的Tor域名来检测自身是否感染,snort规则参考如下。

alert tcp any any -> 158.255.212.173 10862 (msg:"Detect Onion Domain"; content:"xjdhr5is3qsw2cyekdxo57gchpxusvkko3265x2lmmn4g6fnlimdngqd.onion"; sid:1000007;)

IOC

Proxy List


SHA1: 9352740811729cbac88116b2e2a92833c9bee4a2
158.255.212.173:10862	Austria|Wien|Vienna	AS57169|EDIS GmbH
151.236.25.126:11331	Poland|Mazowieckie|Warsaw	AS9009|M247 Europe SRL
158.255.215.49:23079	France|Ile-de-France|Paris	AS9009|M247 Europe SRL
185.26.239.98:11076	France|Ile-de-France|Bagnolet	AS9009|M247 Europe SRL
151.236.25.10:7205	Poland|Mazowieckie|Warsaw	AS9009|M247 Europe SRL
37.235.53.217:1358	Spain|Andalucia|Sevilla	AS39020|Comvive Servidores S.L.
151.236.23.232:763	Spain|Andalucia|Sevilla	AS39020|Comvive Servidores S.L.
37.235.56.204:24239	Austria|Wien|Vienna	AS57169|EDIS GmbH
162.252.175.122:4126	United States|Florida|Miami	AS9009|M247 Europe SRL
162.252.175.136:11077	United States|Florida|Miami	AS9009|M247 Europe SRL
162.252.175.163:28693	United States|Florida|Miami	AS9009|M247 Europe SRL
162.252.175.90:845	United States|Florida|Miami	AS9009|M247 Europe SRL
162.252.175.109:28330	United States|Florida|Miami	AS9009|M247 Europe SRL
151.236.20.39:5524	China|Hongkong|Hongkong	AS9009|M247 Europe SRL
158.255.208.140:86	China|Hongkong|Hongkong	AS9009|M247 Europe SRL
194.68.27.149:13106	Japan|Tokyo|Tokyo	AS9009|M247 Europe SRL
194.68.27.176:6460	Japan|Tokyo|Tokyo	AS9009|M247 Europe SRL
37.143.128.223:16223	Chile|Region Metropolitana de Santiago|Santiago	AS136258|BrainStorm Network, Inc
31.40.212.130:7225	Argentina|Ciudad Autonoma de Buenos Aires|Buenos Aires	AS136258|BrainStorm Network, Inc
198.244.207.203:2076	United Kingdom|England|London	AS16276|OVH SAS
208.115.230.243:16697	United States|Texas|Dallas	AS46475|Limestone Networks, Inc.
185.126.239.207:26630	Russia|Moscow|Moscow	AS136258|BrainStorm Network, Inc


SHA1: 8e1beb77b33497d5d8076ebdb68e5ac002cca7c3
213.183.57.174:12517	Russia|Moscow|Moscow	AS56630|Melbikomas UAB
213.183.57.72:12517	Russia|Moscow|Moscow	AS56630|Melbikomas UAB
213.183.56.201:12517	Russia|Moscow|Moscow	AS56630|Melbikomas UAB
95.164.45.27:17426	France|Ile-de-France|Paris	AS44477|STARK INDUSTRIES SOLUTIONS LTD
45.120.178.161:11013	The Netherlands|Noord-Holland|Amsterdam	AS44477|STARK INDUSTRIES SOLUTIONS LTD
176.120.74.3:17268	Russia|Moscow|Moscow	AS0|
92.243.64.184:17146	Russia|Sankt-Peterburg|Saint Petersburg	AS9009|M247 Europe SRL
92.243.64.36:17146	Russia|Sankt-Peterburg|Saint Petersburg	AS9009|M247 Europe SRL
89.31.120.126:11578	United Arab Emirates|Dubayy|Dubai	AS9009|M247 Europe SRL
91.132.93.33:11578	United Arab Emirates|Dubayy|Dubai	AS9009|M247 Europe SRL
91.132.95.28:8773	United Kingdom|England|London	AS9009|M247 Europe SRL
91.132.95.204:8773	United Kingdom|England|London	AS9009|M247 Europe SRL
91.132.95.135:8773	United Kingdom|England|London	AS9009|M247 Europe SRL
91.132.95.204:8773	United Kingdom|England|London	AS9009|M247 Europe SRL



SHA1: 265d5d2219d11e8aa6e6b7855f3d17023fe18eb0
194.233.174.22:45358	Germany|Hessen|Frankfurt am Main	AS63949|Akamai Technologies, Inc.

Tor List

0 b'xjdhr5is3qsw2cyekdxo57gchpxusvkko3265x2lmmn4g6fnlimdngqd.onion'
1 b'sourt33xcdoyg4jcrh33qvx6cjoneowihsfrbuqldkrrili54gdvryyd.onion'
2 b'uu2iggf5wq57dt6xanfdmwq3rvxqorkb43bh2eacj2vz22nvwewlxcyd.onion'
3 b'wjd2t2lzbgb7g7bcenpl2r2bsobkbwwpooqrmiwqjkpktm5p5seifcid.onion'
4 b's4ofksblif7bmo7sp64f56gij6xzh7sznvrn46m6daup2hwdmwbiabqd.onion'
5 b'yqs4gu4c2kb5ybgcigkl5gcsqbjuk5n2su2pozpsw4ojav2op5gddkid.onion'
6 b'wf4uxi6izbqppzb4fvg4sq7sm5t5w5xl5v5pkxpguwpr4aci7hvzboid.onion'
7 b'm5idjwoj4q5yrmo5xbnvhoqqrdld6pruxx5qjvr6gfnnmao4xiniwzid.onion'
8 b'yjh2bktujnqkj7u7g7hxotck6sfhjuf7crhc4vcf6ewpa7swoqalfkid.onion'
9 b'fend7yhjoeam7b4fp4rj5oobphuvmhjbovhtvporusjex4nyoiamgdyd.onion'
10 b'u7kteztwfg3p6wdeiq6y7zidxx3xtto4gmm2vwz42mzd6s4ixgvpgxyd.onion'
11 b'pcjvbrttcy2s3gqpgwklgsco4u4bskr5xhvdzs4pzqqcrfllkwe437id.onion'
12 b'3crj2ylhdffpf2yik4bb2hn32xey2bdhcpykxfezb4sq53eelglp3sqd.onion'
13 b'c3uybau64lj32ty3z3sxgchnrmg72bvbpua66mcvydcjpgrbv2r6huyd.onion'
14 b'wauby5e7m6zf2eb7rfn7nqm3diuaehdu6tfay4janiktgx33wjfifkyd.onion'
15 b'tybocptxypx42ngrcqldrgas536syipwotmfnbjpwc5fpxth4xf4faqd.onion'
16 b'44yd2dxmm5xuo7dsivwkf2fqyqmfsqkt5nkxdlgwpnbr57sca56j74yd.onion'
17 b'npnsktlnofwisqvd3e6tpslinkypajmh5jctyjivuf6jza3syw2v6cid.onion'
18 b'acuy77ahadd6g5rw2pxsuejskirjmxaoj37ck7fvj4h4kc36a3uwirqd.onion'
19 b'm7wajjzas7eotqw4b6k4aei5q4zijdal3spsec7wsfmf2xqjhmydjiyd.onion'
20 b'24rq2pvihkrct6pxl6zy3p36gt2wd6sn6izoz7ntlivxvbuu5ei3xwad.onion'
21 b'syd5mtjvcqxvnnkeqjjkdm2oz2jzl6swrfhnvliiemxtgiqvcbm26nyd.onion'
22 b'bvxx2p6hfttpiyntpuf72axcvaakjbz5zgiea7iklkrb2s6wrdrv4lid.onion'
23 b's5q2zsdf5n7dezz2hcah23iodsrn6gpyv6f2dxv62ikp7idntmlecvqd.onion'

Yara Rule

rule mirai_rimasuta
{
    meta:
        description = "mirai_rimasuta proxy client"
        author = "xlab"
        date = "2023-11-22"

    strings:
        $str_seed = {BE BA 49 48}
        $chacha20key = {8F EA E2 F1 84 F6 B2 A3 D8 BF F0 E9 9E F7 B2 FB}

    condition:
        all of them
}