Emptiness: A New Evolving Botnet | xxxEmptiness: A New Evolving Botnet – xxx
菜单

Emptiness: A New Evolving Botnet

八月 9, 2019 - 360netlab

Background

Our honeypot system captured a new DDoS botnet sample on 2019-06-23. We named it Emptiness which comes from the running process name as well as its C2 domain. Emptiness is written by Golang and supports both Windows and Linux. Our further analysis reveal its iterative evolution: the early version Emptiness was only armed with DDoS function and was propagated through Mirai.shiina variant botnet that had been run by the same author for a long time. The latter version Emptiness was added with ssh scan to enable self-propagation. Besides, C2 communication protocols of both Emptiness and Mirai.shiina kept changing constantly, which increases the difficulty of being tracked by security researchers.

The Timeline of Emptiness

Emptiness Sample Analysis

The following table summarizes the main differences between three versions of Emptiness.
emptiness.diff.min

All these three versions are written by Golang and are protected by standard UPX. As shown in the following figure, their main function logics are mainly implemented in main package and can be categorized into three aspects: host behavior, data encoding/encryption and C2 protocol. Next we will introduce Emptiness from these three aspects.
em_cmp-1

Host Behavior

Most host behaviors performed by Emptiness are common operations, such as ensuring singleton, modifying process name, turn off watchdog, clear history logs, delete system command, stop system service and so on. The only thing worth to note is that Emptiness will kill process using specific ports through its main_killer_init function. In this way, it can remove bot competitors and close vulnerable ports and thus occupy victim machine exclusively. The following figures show its methods of killing process and the ports it intends to kill.

Data Encoding and Encryption

We demonstrate how Emptiness encodes or encrypts data in different versions using its register message.

C2 Protocol

Register Message

Supported Command

Examples of DDoS Attack Command

LnVkcCAxMi4xNjIuMjIwLjEwNiA4MCAyNTYgNTUgNzIw Base64 decode 00000000  2e 75 64 70 20 31 32 2e  31 36 32 2e 32 32 30 2e  |.udp 12.162.220.| 00000010  31 30 36 20 38 30 20 32  35 36 20 35 35 20 37 32  |106 80 256 55 72| 00000020  30                                                |0|                     
Lmh0dHAgd3d3LmxscnJ5LmNuIDgwIC8gNjAgNjA= Base64 decode 00000000  2e 68 74 74 70 20 77 77  77 2e 6c 6c 72 72 79 2e  |.http www.llrry.| 00000010  63 6e 20 38 30 20 2f 20  36 30 20 36 30           |cn 80 / 60 60| 

The Relation between Emptiness and Mirai.shiina

Two of the four Emptiness.V2 C2 servers(luckyhere.mashiro.tk and imtesting.shiina.ga) were used by mirai variant. Mirai.shiina and the corresponding sample is f6e9f3567684a0a7402ad97209b8525b. We name it Mirai.shiina based on its infection command /bin/busybox SHIINA and its sample file name shine.{arch}. Sharing the same C2 server strongly indicates that Emptiness and Mirai.shiina belong to the same author.

More Info about Mirai.shiina

Our monitor system shows that Mirai.shiina botnet was running at least from 2019-03 to 2019-07 and during this period it was very active and deliver attack command frequently. The figure below shows some example of its attack commands.

Besides, we can divide Mirai.shiina into four versions according to the difference of its C2 protocol, see the following table and we infer that the author kept modifying C2 protocol continuously to prevent from being tracked.

Question: Why the author wants to build the new Emptiness Botnet?

According to the above analysis, we know that the author of Emptiness has also run Mirai.shiina botnet for a long time, which is active to launch DDoS attacks and seems to own quite a few bots. So why the author still wants to build the new Emptiness botnet? We guess the reasons behind are:

Contact us

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

IoC

Emptiness CC

emp.web2tor.cf bruhitsnot.tk bruhitsnot.cf emptiness.web2tor.cf version2.ilove26.cf luckyhere.mashiro.tk imtesting.shiina.ga ggwp.emptiness.tk 

Emptiness Sample MD5

f41464471a0ac9c165e4aeb55283934e 420bb6147ca091a22f8f5bbbb49d51f3 7b1943ff6c563ce1043963e2f017ad8d 53bb43411ecbad39b18b0662b53c07a0 1899667e48c64b113c0de54cf3bb63d5 

Mirai.shiina CC

34.80.131.135 shiina.mashiro.tk luckyhere.mashiro.tk imtesting.shiina.ga 

Mirai.shiina Sample MD5

77e7dd8982e7bb21d536264f0635d5cb 209a78969d88c667c32e550ce47b8ff9 0cf288e07e888cd7748b30fa4a67ca84 f6e9f3567684a0a7402ad97209b8525b 

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