作者:
Fnut
·
2016/04/26 12:45
Links:http://researchcenter.paloaltonetworks.com/2016/04/unit42-python-based-pwobot-targets-european-organizations/
0x00 前言
我們發現了一個叫做“PWOBot”的惡意軟體家族,這個惡意軟體家族相當的獨特,因為它完全是用Python編寫的,並透過PyInstaller進行編譯來生成一個windows下的可執行程式。這個惡意軟體被證實影響了大量的歐洲組織,特別是在波蘭。此外,這個惡意軟體只透過一個流行的波蘭檔案共享web服務來傳播的。
這個惡意軟體本身提供了豐富的功能,包括能夠下載和執行檔案,執行Python程式碼,記錄鍵盤輸入,生成一個HTTP伺服器,並且透過受害者的CPU和GPU挖掘比特幣。
現在至少有PWOBot的12個變種,並且這個惡意軟體早在2013年末的攻擊中就開始活躍了。更多最近的影響歐洲組織的攻擊是在2015年中到年末。
0x01 目標
在過去的半年中,我們發現PWOBot影響了以下的組織:
- 波蘭國家研究機構
- 波蘭航運公司
- 大型的波蘭零售商
- 波蘭資訊科技公司
- 丹麥建築公司
- 法國光學裝置提供商
大部分PWOBot的樣本都是從chomikuj.pl
(波蘭流行的檔案共享web服務)上下載的。下面的這些奇特的URL被發現提供了PWOBot的副本:
s6216.chomikuj[.]pl/File.aspx?e=Pdd9AAxFcKmWlkqPtbpUrzfDq5_SUJBOz
s6102.chomikuj[.]pl/File.aspx?e=Hc4mp1AqJcyitgKbZvYM4th0XwQiVsQDW
s8512.chomikuj[.]pl/File.aspx?e=h6v10uIP1Z1mX2szQLTMUIoAmU3RcW5tv
s6429.chomikuj[.]pl/File.aspx?e=LyhX9kLrkmkrrRDIf6vq7Vs8vFNhqHONt
s5983.chomikuj[.]pl/File.aspx?e=b5Xyy93_GHxrgApU8YJXJlOUXWxjXgW2w
s6539.chomikuj[.]pl/File.aspx?e=EH9Rj5SLl8fFxGU-I0VZ3FdOGBKSSUQhl
s6701.chomikuj[.]pl/File.aspx?e=tx0a8KUhx57K8u_LPZDAH18ib-ehvFlZl
s6539.chomikuj[.]pl/File.aspx?e=EH9Rj5SLl8fFxGU-I0VZ3ISlGKLuMnr9H
s6539.chomikuj[.]pl/File.aspx?e=EH9Rj5SLl8fFxGU-I0VZ3OFFAuDc0M9m0
s6179.chomikuj[.]pl/File.aspx?e=Want-FTh0vz6www2xalnT1Nk6O_Wc6huR
s6424.chomikuj[.]pl/File.aspx?e=o_4Gk0x3F9FWxSDo4JWYuvGXDCsbytZMY
另外,有一次這個惡意軟體被從http://108.61.167.105/favicon.png。這個IP地址是和tracking.huijang.com有聯絡的,而這個域名被相當數量的PWOBot所使用。
下面的這些檔名字被發現用來傳播PWOBot:
- favicon.png
- Quick PDF to Word 3.0.exe
- XoristDecryptor 2.3.19.0 full ver.exe
- Easy Barcode Creator 2.2.6.exe
- Kingston Format Utility 1.0.3.0.exe
- uCertify 1Z0-146 Oracle Database 8.05.05 Premium.exe
- Six Sigma Toolbox 1.0.122.exe
- Fizjologia sportu. Krtkie wykady.exe [Physiology of sports. Short lectures.exe]
正如我們能從使用的檔名中所看到的,相當一部分的PWOBot樣本偽裝成了各種各樣的軟體。在某些情況下,波蘭語被認為是更容易被當成目標的檔名。
目前尚不清楚這個惡意軟體最初是怎樣被髮送到終端使用者的。我們可以根據檔名作出推論,這個惡意軟體很可能是在終端使用者下載其他軟體時被傳播的。因此,釣魚攻擊可能被用來引誘受害者下載這些檔案。
0x02 惡意軟體分析
正如最開始提到的,PWOBot是完全用Python編寫的。攻擊者利用PyInstaller來把Python程式碼轉換成Windows可執行程式。因此,因為Python被使用了,所以它可以很簡單的被移植到其他作業系統,比如Linux或者OSX。
除了最初的執行之外,PWOBot會首先解除安裝掉它可能會發現的之前的PWOBot的版本。它會查詢Run
登錄檔項,判斷是否存在之前的版本。主要的版本針對登錄檔項Run
使用了一種pwo[VERSION]
的格式,在這裡[version]
代表的是PWOBot的版本號。
圖一 PWOBot uninstalling previous versions
在所有之前的版本被解除安裝之後,PWOBot會進行自我安裝並建立一個它自己的可執行檔案的副本,存在以下位置:
%HOMEPATH%/pwo[version]
接下來它會設定以下的登錄檔鍵值來把它指向到新複製過來的可執行檔案上:
HKCU/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/pwo[VERSION]
如果這是這個惡意軟體第一次執行,PWOBot會在一個新的程式裡執行新複製的檔案。
在安裝完畢之後,PWOBot會對各種各樣的鍵盤和滑鼠事件進行HOOK,這會在接下來的鍵盤記錄活動中被用到。PWOBot是用模組化的風格編寫的,允許攻擊者在執行時包含各種模組。基於對當前已有的樣本的分析,以下的服務被發現帶有PWOBot:
- PWOLauncher : 下載/執行檔案,或者執行本地檔案
- PWOHTTPD : 在受害者機器上大量生成HTTP伺服器
- PWOKeyLogger : 在受害者機器上進行鍵盤記錄
- PWOMiner : 使用受害者機器的CPU/GPU挖掘比特幣
- PWOPyExec : 執行Python程式碼
- PWOQuery : 查詢遠端URL並返回結果
PWOBot有兩個配置檔案,其中一指定了這個惡意軟體的各種配置,另一個確定了PWOBot在執行的時候應該連線哪個遠端伺服器。
圖二 PWOBot settings configuration
圖三 PWOBot remote server configuration
正如在配置圖中所可以看到的,PWOBot包含了很多Windows的可執行檔案,這些可執行檔案是在攻擊者使用PyInstaller來對程式碼進行編譯的時候包含進去的。這些可執行檔案被用來進行比特幣挖掘以及利用TOR傳送代理伺服器請求。比特幣挖掘是minerd
和cgminer
的一個編譯好的版本。這些檔案分別被用來作為CPU和GPU的比特幣挖掘。
PWOBot也使用了Tor匿名網路來對攻擊者的遠端伺服器的通訊進行加密。PWOBot使用了一個Python字典作為網路協議。每一個特定的時間段PWOBot都會傳送一段通知資訊到遠端伺服器上去。這樣的通知訊息的例子可以如下所示:
{
1: '16ea15e51a413f38c7e3bdb456585e3c',
3: 6,
4: '[REDACTED-USERNAME]',
5: True,
6: {
1: 'Darwin',
2: 'PANHOSTNAME',
3: '14.5.0',
4: 'Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64',
5: 'x86_64',
6: 'i386',
7: 8
},
7: {
1: 'en_US',
2: 'UTF-8',
3: 25200
}
}
針對上面的例子中列舉的各個資料都有不同的列舉型別。替換之後我們可以看到更完整的被髮送的資料。
{
BOT_ID: '16ea15e51a413f38c7e3bdb456585e3c',
VERSION: 6,
USER: '[REDACTED-USERNAME]',
IS_ADMIN: True,
PLATFORM: {
SYSTEM: 'Darwin',
NODE: 'PANHOSTNAME',
RELEASE: '14.5.0',
VERSION: 'Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64',
MACHINE: 'x86_64',
PROCESSOR: 'i386',
CORES: 8
},
LOCALE: {
LANGUAGE: 'en_US',
ENCODING: 'UTF-8',
TIMEZONE: 25200
}
}
在通知被髮送之後,攻擊者可能會選擇提供一條指令來讓PWOBot來執行之前定義好的其中一項服務。上述行為的結果會在隨後使用相同的格式上傳給攻擊者。
總的來說,基於Palo Alto Networks的Unit 42發現的最近的版本,目前存在12個PWOBot的變種。在這12個版本之中我們已經在網路上發現了其中的第5、6、7、9、10和12個版本。不同的版本之間的差別很小,以及存在不同的效能上的區別。
0x03 結論
PWOBot作為一個惡意軟體家族是非常有意思的,因為它是完全用python寫的。儘管在歷史上它隻影響過windows平臺,但是因為它的底層的程式碼是跨平臺的,它可以很簡單的被移植到Linux和OSX上去。這個事實以及它的模組化的設計,讓PWOBot成為一個潛在的重要的威脅。
這個惡意軟體家族在之前並沒有被公開的披露過。當前它被證實影響了一些歐洲的組織。
Palo Alto Networks的使用者從以下的幾方面被保護:
- 所有的PWOBot樣本都被WildFire服務恰當的判定為惡意的。
- 和PWOBot相關的域名被劃分為惡意的。
- AutoFocus使用者可以使用PWOBot tag來監控這次威脅。
相關的檔案:
- http://www.pyinstaller.org/
- https://www.torproject.org/
- https://github.com/pan-unit42/iocs/tree/master/pwobot/hashes.txt
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!