作者:360netlab
來源:https://blog.netlab.360.com/an-analysis-of-godlua-backdoor/

背景介紹

2019年4月24號,360Netlab未知威脅檢測系統發現一個可疑的ELF文件,目前有一部分殺軟誤識別為挖礦程序。通過詳細分析,我們確定這是一款Lua-based Backdoor,因為這個樣本加載的Lua字節碼文件幻數為“God”,所以我們將它命名為Godlua Backdoor。

Godlua Backdoor會使用硬編碼域名,Pastebin.com,GitHub.com和DNS TXT記錄等方式,構建存儲C2地址的冗余機制。同時,它使用HTTPS加密下載Lua字節碼文件,使用DNS over HTTPS獲取C2域名解析,保障Bot與Web Server和C2之間的安全通信。

我們觀察到Godlua Backdoor實際上存在2個版本,并且有在持續更新。我們還觀察到攻擊者會通過Lua指令,動態運行Lua代碼,并對一些網站發起HTTP Flood 攻擊。

概覽

目前,我們看到的Godlua Backdoor主要存在2個版本,201811051556版本是通過遍歷Godlua下載服務器得到,我們沒有看到它有更新。當前Godlua Backdoor活躍版本為20190415103713 ~ 2019062117473,并且它還在持續更新。它們都是通過C語言開發實現的Backdoor,不過后者能夠適應更多的計算機平臺以及支持更多的功能,以下是它們的詳細對比圖。

img

Godlua Backdoor逆向分析

version 201811051556

這是我們發現Godlua Backdoor 早期實現的版本(201811051556),它主要針對Linux平臺,并支持2種C2指令,分別是執行Linux系統命令和自定義文件。

樣本信息

  • MD5: 870319967dba4bd02c7a7f8be8ece94f

    ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.32, dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped

C2冗余機制

我們發現它通過硬編碼域名和Github項目描述2種方式來存儲C2地址,這其實是一種C2冗余機制。

img

它的硬編碼C2域名是: d.heheda.tk

img

硬編碼Github項目地址,并將C2信息存儲在項目描述位置

img

C2指令

cmd_call, 執行Linux系統命令

img

cmd_shell,執行自定義文件

img

C2協議分析

數據包格式

加密算法

XOR 的Key是隨機產生的16 bytes數據,算法為

img

數據包概覽

cmd_handshake
packet[0:31]:
24 00 02 ec 86 a3 23 fb d0 d1 e9 e8 5f 23 6f 6d
70 b5 95 24 44 e0 fc 2e 00 00 00 6c 69 6e 75 78
2d 78 38 36

Length: packet[0:1]               --->0x0024
Type:   packet[2]                 --->0x02,handshake
Data:   packet[3:31]
            Data
            Data[0:15]                  ---->xor key
            Data[16:23]                 ---->version,hardcoded,little endian.
            Data[24:31]                 ---->arch,hardcoded.
cmd_heartbeat
packet[0:10]:
0b 00 03 87 19 45 cb 91 d1 d1 a9

Length:       packet[0:1]                 --->0x000b
Type:         packet[2]                   --->0x03,heartbeat
Data:         packet[3:10]                --->xored clock64()

version 20190415103713 ~ 20190621174731

它是Godlua Backdoor當前活躍版本,主要針對Windows和Linux平臺,通過Lua實現主控邏輯并主要支持5種C2指令。

樣本信息

version 20190415103713
  • MD5: c9b712f6c347edde22836fb43b927633

    ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), statically linked, stripped

version 20190621174731
  • MD5: 75902cf93397d2e2d1797cd115f8347a

    ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), statically linked, stripped

C2冗余機制

img

Stage-1 URL

Stage-1 URL存儲有3種冗余機制,分別是將該信息通過硬編碼密文,Github項目描述和Pastebin文本存儲。在解密得到Stage-1 URL后會下載start.png文件,它實際上是Lua字節碼。Bot會把它加載到內存中并運行然后獲取Stage-2 URL。

加密算法
  • AES,CBC模式
  • key:13 21 02 00 31 21 94 E2 F2 F1 35 61 93 4C 4D 6A
  • iv:2B 7E 15 16 28 AE D2 01 AB F7 15 02 00 CF 4F 3C
硬編碼密文

version 20190415103713

  • AES密文:03 13 84 29 CC 8B A5 CA AB 05 9E 2F CB AF 5E E6 02 5A 5F 17 74 34 64 EA 5B F1 38 5B 8D B9 A5 3E
  • Stage-1 URL明文:https://d.heheda.tk/%s.png

version 20190621174731

  • AES密文:F1 40 DB B4 E1 29 D9 DC 8D 78 45 B9 37 2F 83 47 F1 32 3A 11 01 41 07 CD DB A3 7B 1F 44 A7 DE 6C 2C 81 0E 10 E9 D8 E1 03 38 68 FC 51 81 62 11 DD
  • Stage-1 URL明文數據:https://img0.cloudappconfig.com/%s.png
Github項目描述
  • AES密文:EC 76 44 29 59 3D F7 EE B3 01 90 A9 9C 47 C8 96 53 DE 86 CB DF 36 68 41 60 5C FA F5 64 60 5A E4 AE 95 C3 F5 A6 04 47 CB 26 47 A2 23 80 C6 5F 92

  • Github URL明文:https://api.github.com/repos/helegedada/heihei

  • 解密流程:

img

  • Github項目描述密文: oTre1RVbmjqRn2kRrv4SF/l2WfMRn2gEHpqJz77btaDPlO0R9CdQtMM82uAes+Fb

  • Stage-1 URL明文數據:https://img1.cloudappconfig.com/%s.png

Pastebin文本
  • AES密文:19 31 21 32 BF E8 29 A8 92 F7 7C 0B DF DC 06 8E 8E 49 F0 50 9A 45 6C 53 77 69 2F 68 48 DC 7F 28 16 EB 86 B3 50 20 D3 01 9D 23 6C A1 33 62 EC 15

  • Pastebin URL明文:https://pastebin.com/raw/vSDzq3Md

  • 解密流程:

img

  • Pastebin 文本密文:G/tbLY0TsMUnC+iO9aYm9yS2eayKlKLQyFPOaNxSCnZpBw4RLGnJOPcZXHaf/aoj

  • Stage-1 URL明文數據:https://img2.cloudappconfig.com/%s.png

Stage-2 URL

Stage-2 URL存儲有2種冗余機制,分別是將該信息通過Github項目文件和DNS TXT存儲。在解密得到Stage-2 URL后會下載run.png文件,它也是Lua字節碼。Bot會把它加載到內存中并運行然后獲取Stage-3 C2。

加密算法
  • AES,CBC模式
  • key:22 85 16 13 57 2d 17 90 2f 00 49 18 5f 17 2b 0a
  • iv:0d 43 36 41 86 41 21 d2 41 4e 62 00 41 19 4a 5c
Github項目文件
  • Github URL明文存儲在Lua字節碼文件中(start.png),通過反匯編得到以下信息:

img

  • Github 文件密文: kI7xf+Q/fXC0UT6hCUNimtcH45gPgG9i+YbNnuDyHyh2HJqzBFQStPvHGCZH8Yoz9w02njr41wdl5VNlPCq18qTZUVco5WrA1EIg3zVOcY8=

  • Stage-2 URL明文數據:{"u":"https:\/\/dd.heheda.tk\/%s.png","c":"dd.heheda.tk::198.204.231.250:"}

DNS TXT
  • DNS TXT信息存儲在Lua字節碼文件中(start.png),通過反匯編得到以下信息:

img

  • 通過DNS over HTTPS請求獲取DNS TXT記錄:

img

  • DNS TXT密文: 6TmRMwDw5R/sNSEhjCByEw0Vb44nZhEUyUpUR4LcijfIukjdAv+vqqMuYOFAoOpC7Ktyyr6nUOqO9XnDpudVmbGoTeJD6hYrw72YmiOS9dX5M/sPNmsw/eY/XDYYzx5/

  • Stage-2 URL明文數據:{"u":"http:\/\/img1.cloudappconfig.com\/%s.png","c":"img1.cloudappconfig.com::43.224.225.220:"}

Stage-3 C2

Stage-3 C2硬編碼在Lua字節碼文件中(run.png),通過反匯編得到以下信息

version 20190415103713

img

version 20190621174731

img

通過DNS Over HTTPS請求獲取C2域名A記錄

img

C2指令
| CMD       | Type |
| --------- | ---- |
| HANDSHAKE | 1    |
| HEARTBEAT | 2    |
| LUA       | 3    |
| SHELL     | 4    |
| UPGRADE   | 5    |
| QUIT      | 6    |
| SHELL2    | 7    |
| PROXY     | 8    |
C2協議分析

數據包格式

數據包概覽
  • HANDSHAKE

img

Type:   packet[0]       --->0x01,HANDSHAKE
LENGTH: packet[1:2]     --->0x0010
Data:   packet[3:end]
            data[0:7]           --->Session
            data[8:end]         --->version,0x00125cfecd8bcb->20190621174731
  • HEARTBEAT

img

Send: Type: packet[0] --->0x02,HEARTBEAT Length: packet[1:2] --->0x4 Data: packet[3:end] --->time,0x5d13779b,1561556891 Replay: Type: packet[0] --->0x02,HEARTBEAT Length: packet[1:2] --->0x4 Data: packet[3:end] --->1561556891

  • LUA Payload

img

Type: packet[0] --->0x03,LUA Length: packet[1:2] --->0x00ab Data: packet[3:end] --->Lua script

我們可以觀察到攻擊者正在對www.liuxiaobei.top進行HTTP Flood攻擊

img

Lua腳本分析

Godlua Backdoor Bot樣本在運行中會下載許多Lua腳本,可以分為運行,輔助,攻擊3大類

  • 運行:start.png,run.png,quit.png,watch.png,upgrade.png,proxy.png
  • 輔助:packet.png,curl.png,util.png,utils.png
  • 攻擊:VM.png,CC.png
加密算法
  • AES,CBC模式
  • key:13 21 02 00 31 21 94 E2 F2 F1 35 61 93 4C 4D 6A
  • iv:2B 7E 15 16 28 AE D2 01 AB F7 15 02 00 CF 4F 3C
Lua幻數

解密后的文件以upgrade.png為例,是pre-compiled code,高亮部分為文件頭。

img

可以發現幻數從Lua變成了God,雖然樣本中有" "字串,但事實上,所采用的版本并不是5.1.4,具體版本無法確定,但可以肯定的是大于5.2。

反編譯

為了反編譯上述腳本,必須知道樣本對Lua進行了哪些修改。經過分析,修改分為兩大塊,分別是:Lua Header 和 Lua Opcode。

通過Luadec[1]反編譯效果圖

img

處置建議

我們還沒有完全看清楚Godlua Backdoor的傳播途徑,但我們知道一些Linux用戶是通過Confluence漏洞利用(CVE-2019-3396)感染的。如果我們的讀者有更多的信息,歡迎聯系我們。

我們建議讀者對Godluad Backdoor相關IP,URL和域名進行監控和封鎖。

聯系我們

感興趣的讀者,可以在 twitter 或者在微信公眾號 360Netlab 上聯系我們。

IoC list

樣本MD5

870319967dba4bd02c7a7f8be8ece94f
c9b712f6c347edde22836fb43b927633
75902cf93397d2e2d1797cd115f8347a

URL

https://helegedada.github.io/test/test
https://api.github.com/repos/helegedada/heihei
http://198.204.231.250/linux-x64
http://198.204.231.250/linux-x86
https://dd.heheda.tk/i.jpg
https://dd.heheda.tk/i.sh
https://dd.heheda.tk/x86_64-static-linux-uclibc.jpg
https://dd.heheda.tk/i686-static-linux-uclibc.jpg
https://dd.cloudappconfig.com/i.jpg
https://dd.cloudappconfig.com/i.sh
https://dd.cloudappconfig.com/x86_64-static-linux-uclibc.jpg
https://dd.cloudappconfig.com/arm-static-linux-uclibcgnueabi.jpg
https://dd.cloudappconfig.com/i686-static-linux-uclibc.jpg
http://d.cloudappconfig.com/i686-w64-mingw32/Satan.exe
http://d.cloudappconfig.com/x86_64-static-linux-uclibc/Satan
http://d.cloudappconfig.com/i686-static-linux-uclibc/Satan
http://d.cloudappconfig.com/arm-static-linux-uclibcgnueabi/Satan
https://d.cloudappconfig.com/mipsel-static-linux-uclibc/Satan

C2 Domain

d.heheda.tk
dd.heheda.tk
c.heheda.tk
d.cloudappconfig.com
dd.cloudappconfig.com
c.cloudappconfig.com
f.cloudappconfig.com
t.cloudappconfig.com
v.cloudappconfig.com
img0.cloudappconfig.com
img1.cloudappconfig.com
img2.cloudappconfig.com

IP

198.204.231.250         United States           ASN 33387               DataShack, LC       
104.238.151.101         Japan                   ASN 20473               Choopa, LLC         
43.224.225.220          Hong Kong               ASN 22769               DDOSING NETWORK     

Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/972/