日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

在過去的兩個月里,我一直在研究采用Go語言編寫的惡意軟件。

Go,又稱Golang,是谷歌公司開發(fā)的一種編程語言,如今正在被越來越多的惡意軟件開發(fā)者所使用的。

在這篇文章中,我就將針對一款采用GO語言編寫的新型linux勒索軟件進(jìn)行分析。

GO二進(jìn)制文件概述

這里分析的樣本,是一個被剝離了編譯和調(diào)試信息的ELF可執(zhí)行文件,這使得逆向工程變得困難。值得慶幸的是,一款補(bǔ)救工具(REDRESS: https://go-re.tk/redress/)可以為我們提供幫助。

下面是使用參數(shù)“-src”分析此樣本的輸出:

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖1.惡意軟件的源代碼

通過圖1,我們可以看出該惡意軟件由三個Go文件組成。

此外,我們還可以看到它所有的函數(shù)以及它們的代碼行號。根據(jù)一些函數(shù)的名稱,我們大致就能判定,它應(yīng)該是一種勒索軟件。

源代碼僅有300多行,說明這款勒索軟件并不復(fù)雜,可能還處于初始開發(fā)階段。

接下來,就讓我們在調(diào)試器中開始動態(tài)調(diào)試吧。

在這里,我使用的是Radare2(Radare2: https://rada.re/r/)。這是因為對于分析被剝離了的Go二進(jìn)制文件而言,它比GDB更合適。

Go二進(jìn)制文件的動態(tài)分析

我在Radare2中發(fā)出命令“aaa”以執(zhí)行自動分析,在圖2中,我們可以看到Radare2很好地還原并識別了函數(shù)名和符號名。

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖2.使用Radare2還原的函數(shù)名稱和符號

如你所見,函數(shù)init()在主函數(shù)之前執(zhí)行,函數(shù)check()在函數(shù)init()中調(diào)用。

在函數(shù)check()中,勒索軟件首先會通過向hxxps://ipapi.co/json/發(fā)送一個http請求來獲取受感染主機(jī)的位置信息,目的是避免感染一些特定國家的用戶,如白俄羅斯(BY)、俄羅斯(RU)和烏克蘭(UA)。

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖3.過濾掉白俄羅斯(BY)、俄羅斯(RU)和烏克蘭(UA)

在main()函數(shù)中,它將首先刪除Go二進(jìn)制文件,然后調(diào)用函數(shù)randSeq()生成一個隨機(jī)AES密鑰,其大小為0x20字節(jié),如下圖所示:

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖4.生成隨機(jī)AES密鑰

接下來,它將調(diào)用函數(shù)makesecret(),目的是使用以二進(jìn)制形式硬編碼的RSA公鑰來加密AES密鑰。在這個函數(shù)中,它通過調(diào)用函數(shù)EncryptPKCS1v15以使用RSA加密和PKCS#1 v1.5中的填充方案對給定的AES密鑰進(jìn)行加密。

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖5. Go二進(jìn)制文件中的硬編碼RSA公鑰

使用RSA加密后的數(shù)據(jù)如下:

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖6.使用RSA加密后的AES密鑰

接下來,它將在Golang包編碼/base64中調(diào)用函數(shù)EncodeToString,以使用base64算法對先前加密的數(shù)據(jù)進(jìn)行編碼。

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖7.使用Base64編碼的AES密鑰

然后,它將為解密的README文件(贖金票據(jù))形成一個緩沖區(qū),如圖8所示:

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖8.解密的README文件的緩沖區(qū)

我們可以看到,加密的AES密鑰以Base64編碼的形式被寫入了解密的README文件中。

在加密文件之前,它還會通過發(fā)出命令“service stop [pname]”或“systemctl stop [pname]”來殺死以下進(jìn)程。

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖9.目標(biāo)服務(wù)

當(dāng)它嘗試停止Apache2.service時,會彈出一個標(biāo)題為“Authentication Required(需要身份驗證)”的對話框,提示用戶輸入系統(tǒng)密碼以完成此操作。

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖10. apache2.service身份驗證對話框

最后,它將通過在Golang包“path/filepath”中調(diào)用函數(shù)Walk(根字符串,walkFn WalkFunc)來遍歷根目錄“/”,然后開始加密文件。

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖11.遍歷根目錄并加密文件

值得一提的是,該勒索軟件還包含一份加密目錄黑名單,目的是避免加密這些目錄下面的文件。

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖12.加密目錄黑名單

加密算法使用的是AES-256-CFB,被加密文件將被附加擴(kuò)展名“.encrypted”,README文件如圖13所示:

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖13. README文件

用于執(zhí)行加密的函數(shù)是EncFile(),它首先會獲取目標(biāo)文件的大小。如果文件小于0x986880(1,000,000)字節(jié),它將使用AES-256-CFB算法加密所有文件數(shù)據(jù)。否則,它將讀取數(shù)據(jù)的前0x986880(1,000,000)字節(jié)并將其加密,然后將原始文件的剩余數(shù)據(jù)復(fù)制到加密后文件的末尾。

針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖14.檢查目標(biāo)文件的大小


針對一款采用GO語言編寫的新型Linux勒索軟件的分析

圖15.大于0x989680字節(jié)的文件經(jīng)過加密后的數(shù)據(jù)

結(jié)論

通過上述分析,我們可以看到這種勒索軟件并不復(fù)雜,可能還處于初始開發(fā)階段。

但是,我們應(yīng)該意識到,Go語言正在被用來開發(fā)越來越多的惡意軟件,各大殺毒軟件廠商更是有必要注意這一點。

分享到:
標(biāo)簽:勒索 軟件
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定