新聞中心
Black Lotus安全研究人員近期發(fā)現(xiàn)多個(gè)Python語(yǔ)言編寫(xiě)的惡意文件,并編譯為 Debian 操作系統(tǒng)的Linux二進(jìn)制文件格式ELF。這些文件會(huì)以加載器運(yùn)行payload,payload要么嵌入在樣本中或從遠(yuǎn)程服務(wù)器中提取,然后使用Windows API調(diào)用注入到運(yùn)行的進(jìn)程中。

簡(jiǎn)介
2021年8月,Black Lotus研究人員發(fā)現(xiàn)了大量為Debian Linux編譯的可疑ELF文件。文件是用Python 3編寫(xiě)的,然后用PyInstaller轉(zhuǎn)變?yōu)镋LF可執(zhí)行文件。Python代碼作為使用不同Windows API的加載器,Windows API可疑提取遠(yuǎn)程文件,然后注入運(yùn)行的進(jìn)程。從 VirusTotal 的檢測(cè)率來(lái)看,大多數(shù)為Windows系統(tǒng)設(shè)計(jì)的終端代理無(wú)法有效分析ELF簽名。在調(diào)查中,研究人員發(fā)現(xiàn)了2個(gè)ELF加載器方法的變種:第一個(gè)是用Python編寫(xiě)的,第二個(gè)表中使用ctype來(lái)調(diào)用不同的Windows API和調(diào)用powershell腳本。研究人員分析認(rèn)為該P(yáng)owerShell變種仍在開(kāi)發(fā)中。
技術(shù)細(xì)節(jié)
從2021年5月到2021年8月這3個(gè)月內(nèi),研究人員發(fā)現(xiàn)樣本的進(jìn)化過(guò)程,從最初的Python 3編寫(xiě)的樣本到使用ctype來(lái)調(diào)用Windows API,再到使用PowerShell來(lái)宿主機(jī)器上執(zhí)行隨后的動(dòng)作。
Python變種
使用Python編寫(xiě)的變種并不使用任何Windows API。其中一個(gè)特征是加載器使用變種的Python庫(kù),使得其可以在Linux和Windows機(jī)器上運(yùn)行。研究人員分析樣本發(fā)現(xiàn)腳本會(huì)打印“Пивет Саня”,打印的內(nèi)容是俄語(yǔ)文字翻譯過(guò)來(lái)就是“Hello Sanya”。所有的相關(guān)的文件都含有隱私或者非路由的IP地址,除了一個(gè)樣本。該樣本中含有公共IP地址185.63.90[.]137和一個(gè)Python編寫(xiě)的加載器文件,這些文件隨后會(huì)被轉(zhuǎn)化為可執(zhí)行文件。該文件首先嘗試從機(jī)器分配內(nèi)容,然后創(chuàng)建一個(gè)新的進(jìn)程,并注入位于hxxp://185.63.90[.]137:1338/stagers/l5l.py的遠(yuǎn)程服務(wù)器的資源。目前,該服務(wù)器已經(jīng)無(wú)法訪問(wèn),表明該地址是用于測(cè)試或之前的攻擊活動(dòng)。
研究人員發(fā)現(xiàn)許多惡意活動(dòng)都與同一IP地址185.63.90[.]137進(jìn)行通信,樣本中都含有Meterpreter payload,其中部分使用Shikata Ga Nai編碼器混淆。
使用PowerShell和Ctype的WSL變種
不同文件的ELF到Windows二進(jìn)制文件執(zhí)行路徑是不同的。在部分樣本中,PowerShell 用于注入和執(zhí)行shellcode,在其他樣本中,Python ctype被用來(lái)解析Windows API。
在其中一個(gè)PowerShell樣本中,編譯的Python會(huì)調(diào)用3個(gè)函數(shù): kill_av()、reverseshell() 和 windowspersistance()。
圖1: 反編譯的decompiled kill_av和windowspersistence函數(shù)
kill_av()函數(shù)會(huì)使用 os.popen()嘗試kill調(diào)可疑的反病毒產(chǎn)品和分析攻擊。 reverseshell() 函數(shù)使用子進(jìn)程每20秒性一個(gè)base64編碼的PowerShell 腳本,攔截其他函數(shù)的執(zhí)行。windowspersistence() 函數(shù)會(huì)復(fù)制原始ELF文件到appdata 文件夾,命名為payload.exe并使用子進(jìn)程來(lái)加入注冊(cè)表以實(shí)現(xiàn)駐留。在上圖中,windowspersistance()會(huì)用字符串“TIME TO Presist”被調(diào)用。
圖2: reverseshell 和 kill_av函數(shù)
解碼的PowerShell使用GetDelegateForFunctionPointer來(lái)調(diào)用VirtualAlloc,復(fù)制MSFVenom payload到分配的內(nèi)存,并使用GetDelegateForFuctionPointer來(lái)在分配的含有payload的內(nèi)存中調(diào)用CreateThread 。
圖3:注入和調(diào)用MSFVenom payload的PowerShell腳本
另一個(gè)使用樣本使用Python ctype來(lái)解析Windows API來(lái)注入和調(diào)用payload。在分析過(guò)程中,研究人員發(fā)現(xiàn)一些小的不連續(xù),比如變量類型。研究人員猜測(cè)代碼仍在開(kāi)發(fā)中,但可能即將結(jié)束。
圖4: 使用Python ctypes的分混淆的代碼
本文翻譯自:
https://blog.lumen.com/no-longer-just-theory-black-lotus-labs-uncovers-linux-executables-deployed-as-stealth-windows-loaders/
分享文章:部署為Windows加載器的Linux可執(zhí)行軟件
當(dāng)前鏈接:http://m.fisionsoft.com.cn/article/dpjphih.html


咨詢
建站咨詢
