*本報(bào)告翻譯自Paloalto Networks技術(shù)報(bào)告archcenter,作者Josh Grunzweig, Mike Scott and Bryan Lee,僅供業(yè)界學(xué)習(xí),不用于任何商業(yè)用途。如有疏忽或翻譯錯(cuò)誤敬請(qǐng)指出。
最近幾周Paloalto Networks的研究人員注意到,APT組織Wekby對(duì)美國(guó)的部分秘密機(jī)構(gòu)展開(kāi)了一次攻擊。Wekby這些年一直活躍在醫(yī)療、電信、航空航天、國(guó)防和高科技等多個(gè)領(lǐng)域。它會(huì)在漏洞出現(xiàn)的第一時(shí)間就對(duì)其大加利用,就像在HackingTeam的zero-day漏洞事件中表現(xiàn)的那樣。
Wekby使用的惡意軟件是HTTPBrower惡意軟件家族的一員,這種惡意軟件利用DNS請(qǐng)求作為指令和控制機(jī)制(C&C)。此外,它還使用各種模糊處理技術(shù),使得技術(shù)人員在分析過(guò)程中屢屢受阻。根據(jù)樣本中看到的那些元數(shù)據(jù),Palo Alto網(wǎng)絡(luò)公司將其命名為pisloader惡意軟件。
基礎(chǔ)設(shè)施
Pisloader惡意軟件家族通過(guò)HTTP從下面URL中進(jìn)行傳播。這個(gè)URL至今還處于活躍狀態(tài)。
http://globalprint-us [.]com/proxy_plugin.exe
示例中還有在此域下的其他URL:
http://globalprint-us [.]com/proxy_web_plugin.exe
MD5:E4968C8060EA017B5E5756C16B80B012
SHA256: 8FFBB7A80EFA9EE79E996ABDE7A95CF8DC6F9A41F9026672A8DBD95539FEA82A
大?。?26976字節(jié)
編譯時(shí)間:2016年4月28日00:38:46
這份已經(jīng)發(fā)現(xiàn)的文件是最常見(jiàn)的poison lvy惡意軟件家族的一種,下面是它的配置數(shù)據(jù):
命令和控制地址:intranetwabcam [.]com
命令和控制端口:80
密碼:管理員
互斥鎖:) !VoqA.I5
在這次攻擊中所有使用過(guò)的域名都是在攻擊之前剛剛被注冊(cè)的。所包含的域如下:
另外,研究員們還發(fā)現(xiàn)了下面的IP:
攻擊之初
下面是最初發(fā)現(xiàn)的攻擊,在之后的分析中也一直在被引用:
MD5:E8D58AA76DD97536AC225949A2767E05
SHA256:DA3261C332E72E4C1641CA0DE439AF280E064B224D950817A11922A8078B11F1
大小:126976字節(jié)
編譯時(shí)間:2016年4月27日14:37:34
這個(gè)特定文件具有以下的元數(shù)據(jù)屬性。Pisloader這個(gè)名字也是來(lái)源于此。
最初的注入攻擊中包含的代碼非常簡(jiǎn)單,主要任務(wù)是通過(guò)運(yùn)行注冊(cè)表項(xiàng)進(jìn)行設(shè)置,并安裝執(zhí)行嵌入式的windows可執(zhí)行文件。如果遇到混淆,攻擊者會(huì)立刻將字符串拆分為更小的子字符串,然后使用“strcpy”和“strcat”調(diào)用來(lái)重新進(jìn)行構(gòu)建。他們也會(huì)使用同樣的技術(shù)來(lái)生成從未使用過(guò)的垃圾字符串,目的是為了阻止樣品的檢測(cè)和分析。下面的反編譯代碼會(huì)解釋得更加清楚,我們已經(jīng)在其中添加了注釋?zhuān)燥@示完全生成的字符串。
在上述的反編譯代碼中,我們看到pisloader生成了下面的字符串,之后會(huì)用來(lái)設(shè)置運(yùn)行注冊(cè)表項(xiàng)。
cmd.exe/cregaddHKCUSoftwareMicrosoftWindowsCurrentVersionRun /v lsm /t reg_sz /d"%appdata%lsm.exe"/f
這一特定命令會(huì)用%appdata%lsm.exe值來(lái)設(shè)置HKCUSoftwareMicrosoftWindowsCurrentVersionRunlsm注冊(cè)表項(xiàng)。此項(xiàng)設(shè)置之后,惡意軟件會(huì)用一個(gè)單字節(jié)054的XOR值解密兩組數(shù)據(jù)。由此產(chǎn)生的數(shù)據(jù)將會(huì)寫(xiě)入%appdata%lsm.exe 文件路徑。
在寫(xiě)如此文件之后,惡意軟件會(huì)執(zhí)行剛編寫(xiě)的 lsm.exe文件,其中包含pisloader的有效攻擊荷載。
有效攻擊荷載
下面是已發(fā)現(xiàn)的、并在隨后的分析中加以引用的案例:
MD5: 07B9B62FB3B1C068837C188FEFBD5DE9
SHA256:456FFFC256422AD667CA023D694494881BAED1496A3067485D56ECC8FEFBFAEB
大小 ︰ 102400 字節(jié)
編譯時(shí)間 ︰ 2016年4月27日 13:39:02
攻擊者使用了面向返回編程(ROP)技術(shù),以及大量垃圾程序及指令對(duì)有效荷載進(jìn)行了模糊化處理。在下面的示例中,用紅色標(biāo)記的都是沒(méi)有任何用處的代碼。此類(lèi)代碼可以作為垃圾處理,直接忽略。真正行使功能的代碼是綠色部分,這些代碼中有兩個(gè)函數(shù)偏移量在返回指令之后被堆放到堆棧中。這個(gè)返回指令會(huì)先將執(zhí)行代碼指向空函數(shù),空函數(shù)會(huì)反過(guò)來(lái)將執(zhí)行代碼指向“next-function”。有效荷載運(yùn)行的時(shí)候會(huì)使用這種技術(shù),這樣會(huì)使得靜態(tài)分析變得更加困難。
在忽略了垃圾代碼之后,惡意軟件實(shí)際上是非常簡(jiǎn)單的。開(kāi)始它會(huì)隨機(jī)生成一個(gè)10字節(jié)長(zhǎng)的字母數(shù)字作為標(biāo)頭。其余的數(shù)據(jù)會(huì)進(jìn)行base32編碼,之后刪除填充。此數(shù)據(jù)會(huì)用于填充子域,而這個(gè)子域就是之后的DNS請(qǐng)求中用于TXT記錄的地方。
這種利用DNS作為C&C攻擊的做法一直沒(méi)有被惡意攻擊者廣泛采用過(guò),除了下面這些:
· FrameworkPOS
· C3PRO-RACCOON
· FeederBot
· Morto
· 新型PlugX
與此同時(shí),這一做法也使得pisloader可以繞過(guò)某些安全產(chǎn)品(如果無(wú)法繞過(guò),這些安全產(chǎn)品就會(huì)發(fā)現(xiàn)其中的異常)。
pisloader會(huì)定期發(fā)送一個(gè)信標(biāo),其中包含被用作有效荷載的4字節(jié)隨機(jī)大寫(xiě)字符串。下面的示例中顯示了這一點(diǎn):
對(duì)于pisloader預(yù)估響應(yīng)之外的所有響應(yīng),惡意軟件都會(huì)不予理睬。所以攻擊者會(huì)設(shè)置下面的DNS,因?yàn)槿绻麤](méi)有設(shè)置額外標(biāo)明,惡意軟件就沒(méi)有辦法進(jìn)行分辨。
· 響應(yīng)
· 所需的遞歸函數(shù)
· 可用的遞歸函數(shù)
“問(wèn)題”和“回答資源記錄”字段必須被設(shè)置為01值。另外,響應(yīng)查詢子域必須與原始DNS請(qǐng)求匹配。
攻擊者還將遠(yuǎn)程命令和控制(C&C)服務(wù)器靜態(tài)嵌入到惡意軟件中去。在案例中我們還發(fā)現(xiàn)了“ns1.logitech-usa[.]com”主機(jī)。
C&C服務(wù)器會(huì)用一個(gè)TXT文檔進(jìn)行響應(yīng),而文檔的加密方式與初始請(qǐng)求類(lèi)似。在響應(yīng)中,第一個(gè)字節(jié)會(huì)被忽略,剩下的數(shù)據(jù)是用的base32編碼方法。下面是示例:
下面是惡意軟件支持的相關(guān)命令以及它們的描述:
· sifo——收集受害者系統(tǒng)信息
· 驅(qū)動(dòng)器——列舉受害者計(jì)算機(jī)上的驅(qū)動(dòng)器
· 列表——列舉提供目錄中的文件信息
· 上傳——將文件上傳到受害者計(jì)算機(jī)
· 打開(kāi)——生成命令外殼程序
下面是正在使用這些命令的一些情況。我們使用了一個(gè)模擬的DNS服務(wù)器來(lái)生成命令并接收結(jié)果數(shù)據(jù)。
發(fā)送“驅(qū)動(dòng)器”命令:
發(fā)送“打開(kāi)”命令:
發(fā)送“sifo”命令:
列舉C盤(pán)內(nèi)容:
此外,大量命令都與HTTPBrowser類(lèi)似。這些命令的格式化響應(yīng)也是一致的。在一份已知的HTTPBrowser樣例中發(fā)現(xiàn)了與作為討論樣本的pisloader類(lèi)似的元數(shù)據(jù),而且用來(lái)生成這些命令的代碼可以通過(guò)GitHub獲得。這也讓我們更加確信,pisloader就是這個(gè)惡意軟件家族的一員。
結(jié)論
Wekby使用更高級(jí)的惡意軟件繼續(xù)將矛頭對(duì)準(zhǔn)各種高機(jī)密組織機(jī)構(gòu)。Pisloader惡意軟件家族使用了各種新技術(shù)(將DNS作為C2協(xié)議)和各種反分析策略(利用面向返回編程)。
為此,Palo Alto網(wǎng)絡(luò)采用了以下措施來(lái)保護(hù)用戶避免這種威脅:
· 能夠正確識(shí)別所有pisloader產(chǎn)品的WildFire
· 專(zhuān)門(mén)為這一系列惡意軟件設(shè)計(jì)的pisloader自動(dòng)對(duì)準(zhǔn)標(biāo)記
· 攻擊中所使用到的所有域名、IP都已經(jīng)被標(biāo)記為惡意
· 已經(jīng)創(chuàng)建了用于檢測(cè)pisloader DNS通信的IPS規(guī)則
*本文翻譯自:researchcenter,譯者:極客小默,轉(zhuǎn)載請(qǐng)注明來(lái)自FreeBuf黑客與極客(FreeBuf.COM)