作者: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,不過后者能夠適應更多的計算機平臺以及支持更多的功能,以下是它們的詳細對比圖。
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冗余機制。
它的硬編碼C2域名是: d.heheda.tk
硬編碼Github項目地址,并將C2信息存儲在項目描述位置
C2指令
cmd_call, 執行Linux系統命令
cmd_shell,執行自定義文件
C2協議分析
數據包格式

加密算法
XOR 的Key是隨機產生的16 bytes數據,算法為
數據包概覽
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冗余機制
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 -
解密流程:
-
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 -
解密流程:
-
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),通過反匯編得到以下信息:
-
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),通過反匯編得到以下信息:
- 通過DNS over HTTPS請求獲取DNS TXT記錄:
-
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
version 20190621174731
通過DNS Over HTTPS請求獲取C2域名A記錄
C2指令
| CMD | Type |
| --------- | ---- |
| HANDSHAKE | 1 |
| HEARTBEAT | 2 |
| LUA | 3 |
| SHELL | 4 |
| UPGRADE | 5 |
| QUIT | 6 |
| SHELL2 | 7 |
| PROXY | 8 |
C2協議分析
數據包格式

數據包概覽
- HANDSHAKE
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
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
Type: packet[0] --->0x03,LUA
Length: packet[1:2] --->0x00ab
Data: packet[3:end] --->Lua script
我們可以觀察到攻擊者正在對www.liuxiaobei.top進行HTTP Flood攻擊
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,高亮部分為文件頭。
可以發現幻數從Lua變成了God,雖然樣本中有" "字串,但事實上,所采用的版本并不是5.1.4,具體版本無法確定,但可以肯定的是大于5.2。
反編譯
為了反編譯上述腳本,必須知道樣本對Lua進行了哪些修改。經過分析,修改分為兩大塊,分別是:Lua Header 和 Lua Opcode。
通過Luadec[1]反編譯效果圖
處置建議
我們還沒有完全看清楚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
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/972/






















暫無評論