溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進行Kris遠控木馬的簡單分析

發(fā)布時間:2021-11-11 11:59:46 來源:億速云 閱讀:209 作者:柒染 欄目:編程語言

這篇文章給大家介紹如何進行Kris遠控木馬的簡單分析,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

前言

分析一個遠程控制木馬,它的眾多惡意行為之一是操作注冊表,實現(xiàn)開機自啟動,在注冊表中程序為自己命名為Kris。

一、基本情況

樣本類型:PE32 executable (GUI) Intel 80386, for MS Windows, UPX compressed

1.1 程序基本流程

在國內(nèi)某款知名沙箱系統(tǒng)中對惡意程序做自動分析,歸納出的執(zhí)行流程如下:

如何進行Kris遠控木馬的簡單分析

圖1:程序的執(zhí)行流程

自動分析的結(jié)果,歸納出此惡意程序有如下行為:

1.連接域名jesso.3322.org(59.42.71.178,廣東省廣州市白云區(qū))

2.釋放名為BJ.exe的可執(zhí)行程序

3.創(chuàng)建進程,此進程會創(chuàng)建互斥體,并且連接動態(tài)域名

1.2 加殼信息

通過PEiD檢查出該病毒被加殼,可以使用upx脫殼。本文后面分析的是利用upx對原程序脫殼后的PE文件。

如何進行Kris遠控木馬的簡單分析

圖2:通過PEiD檢測惡意程序的加殼情況

1.3 注冊表操作

惡意程序會創(chuàng)建HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Kris,鍵值為C:\Users\vbccsb\AppData\Local\Temp\sample.exe,此文件為原程序?qū)⒆陨砜截惖竭@個目錄下,用于來實現(xiàn)開機自啟動。

惡意程序還會檢查注冊表中是否有360safe,來判斷宿主機器中是否安裝了殺毒軟件。

二、網(wǎng)絡(luò)行為

運行惡意程序,并用wireshark抓包,發(fā)現(xiàn)惡意程序會發(fā)起針對jesso.3322.org的DNS查詢:

如何進行Kris遠控木馬的簡單分析

圖3:惡意代碼的網(wǎng)絡(luò)行為

但是后續(xù)沒有實質(zhì)性的網(wǎng)絡(luò)通信,經(jīng)查,此IP地址仍舊存活但是域名已經(jīng)失效:

如何進行Kris遠控木馬的簡單分析

圖4:與C2地址的網(wǎng)絡(luò)通信

根據(jù)國內(nèi)知名安全廠商的威脅情報顯示,域名和IP地址都是惡意的。

如何進行Kris遠控木馬的簡單分析

圖5:域名的威脅情報

如何進行Kris遠控木馬的簡單分析

圖6:IP地址的威脅情報

三、程序分析

3.1 Main函數(shù)分析

程序的Main函數(shù)位于0x0040D990,首先會通過sub_47866C函數(shù)創(chuàng)建BJ.exe文件,隨后調(diào)用sub_40D950函數(shù)延時60秒執(zhí)行此文件。

如何進行Kris遠控木馬的簡單分析

圖7:創(chuàng)建BJ.exe并延時60s執(zhí)行

程序會通過注冊表查看系統(tǒng)中是否安裝了360安全軟件,如果沒有安裝,那么就調(diào)用sub_40D630函數(shù),此函數(shù)用于實現(xiàn)開機自啟動。

如何進行Kris遠控木馬的簡單分析

圖8:通過注冊表檢查目標系統(tǒng)中的360防護軟件

通過sub_40D630函數(shù)通過注冊表項“SOFTWARE\Microsoft\Windows\CurrentVersion\Run”實現(xiàn)開機自啟動。

如何進行Kris遠控木馬的簡單分析

圖9:通過注冊表實現(xiàn)開機自啟動

Main函數(shù)會連接遠程網(wǎng)址jesso.3322.org,通過sub_403300函數(shù)發(fā)起連接。

如何進行Kris遠控木馬的簡單分析

圖10:連接域名jesso.3322.org

3.2 Switch函數(shù)分析

惡意代碼中的函數(shù)sub_40A050通過switch結(jié)構(gòu),實現(xiàn)了不同的惡意行為分支,即根據(jù)得到的指令,執(zhí)行不同的操作。概述如下:

sub_409C00:創(chuàng)建新用戶并添加到管理員組

sub_408070:提升進程權(quán)限

sub_4073E0:竊取系統(tǒng)磁盤信息并發(fā)送給遠程主機

sub_4075A0:竊取桌面信息并發(fā)送給遠程主機

sub_407760:竊取音頻設(shè)備信息并發(fā)送給遠程主機

sub_407920:擊鍵記錄器

sub_409320:關(guān)閉防火墻

sub_407F80:刪除日志文件

3.2.1 創(chuàng)建新用戶并添加到管理員組

sub_409C00函數(shù)實現(xiàn)創(chuàng)建新用戶并添加到管理員組的功能:

如何進行Kris遠控木馬的簡單分析

圖11:用于添加用戶并添加到管理員組的switch分支

通過調(diào)用函數(shù)NetUserAdd添加用戶賬戶,隨后調(diào)用NetLocalGroupAddMember函數(shù),將新建的用戶添加到管理員組。

如何進行Kris遠控木馬的簡單分析

圖12:sub_409C00函數(shù)實現(xiàn)添加用戶并添加到管理員組的功能片段

3.2.2 提升權(quán)限

sub_408070實現(xiàn)提升進程權(quán)限的功能:

如何進行Kris遠控木馬的簡單分析

圖13:用于實現(xiàn)提升權(quán)限的switch分支

通過OpenProcessToken得到進程的令牌句柄,隨后使用LookupPrivilegeValue查詢進程權(quán)限,最后用AdjustTokenPrivileges函數(shù)提升權(quán)限。

如何進行Kris遠控木馬的簡單分析

圖14:sub_408070函數(shù)用于提升進程權(quán)限的功能片段

3.2.3 獲取驅(qū)動器和磁盤卷信息并發(fā)送給遠端主機

sub_4073E0函數(shù)用于獲取磁盤以及驅(qū)動器的信息并發(fā)送給遠端系統(tǒng)。它最終通過sub_405AC0來實現(xiàn)獲取磁盤信息的功能,通過sub_403300用來實現(xiàn)連接遠程主機并發(fā)送信息的功能。

如何進行Kris遠控木馬的簡單分析

圖15:用于實現(xiàn)獲取磁盤信息并發(fā)送給遠程主機的switch分支

sub_405AC0函數(shù)通過調(diào)用GetVolumeInformation獲取磁盤卷信息,同時通過SHGetFileInfo函數(shù)獲取文件系統(tǒng)對象的信息。

如何進行Kris遠控木馬的簡單分析

圖16:sub_405AC0函數(shù)用來獲得磁盤信息

sub_403300函數(shù)通過一系列套接字函數(shù)實現(xiàn)網(wǎng)絡(luò)通信,將竊取的信息發(fā)送給遠程主機

如何進行Kris遠控木馬的簡單分析

圖17:sub_403300函數(shù)用來與遠程主機通信

3.2.4 獲取桌面信息并發(fā)送給遠端主機

sub_4075A0通過調(diào)用sub_40F780函數(shù)實現(xiàn)截屏功能,發(fā)送給遠端主機的功能仍然是通過sub_403300函數(shù)實現(xiàn)的,與3.2.3中相同。

如何進行Kris遠控木馬的簡單分析

圖18:用于實現(xiàn)獲取桌面信息并發(fā)送給遠端主機功能的switch分支

sub_40F780函數(shù)通過調(diào)用GetThreadDesktop得到桌面窗口所在線程,然后調(diào)用GetUserObjectInformation獲取特殊的窗口站和桌面對象信息。

如何進行Kris遠控木馬的簡單分析

圖19:sub_40F780函數(shù)實現(xiàn)獲取桌面信息的功能

3.2.5 竊取音頻設(shè)備信息并發(fā)送給遠端主機

sub_407760函數(shù)通過sub_401760函數(shù)竊取音頻設(shè)備信息并通過sub_403300函數(shù)來實現(xiàn)連接遠程主機并發(fā)送的功能,sub_403300在上面已經(jīng)提到了。

如何進行Kris遠控木馬的簡單分析

圖20:用于實現(xiàn)竊取音頻設(shè)備信息的switch分支

通過調(diào)用waveInGetNumDevs獲得就緒的波形聲音輸入設(shè)備的數(shù)量:

如何進行Kris遠控木馬的簡單分析

圖21:sub_401760函數(shù)獲得系統(tǒng)中波形聲音輸入設(shè)備的數(shù)量

3.2.6 擊鍵記錄器

sub_407920函數(shù)會調(diào)用sub_40A580函數(shù)實現(xiàn)擊鍵記錄功能,并且調(diào)用sub_403300函數(shù)向遠程主機發(fā)送信息:

如何進行Kris遠控木馬的簡單分析

圖22:用于實現(xiàn)擊鍵記錄器的switch分支

sub_40A580函數(shù)調(diào)用GetKeyState, GetAsyncKeyState, GetKeyState三個函數(shù)實現(xiàn)擊鍵記錄的功能。

如何進行Kris遠控木馬的簡單分析

圖23:sub_40A580函數(shù)實現(xiàn)擊鍵記錄功能

3.2.7 關(guān)閉防火墻

sub_409320函數(shù)通過sub_409240函數(shù)實現(xiàn)關(guān)閉防火墻的操作:

如何進行Kris遠控木馬的簡單分析

圖24:用于實現(xiàn)關(guān)閉防火墻功能的switch分支

sub_409240函數(shù)構(gòu)造"cmd /c net stop sharedaccess"指令,實現(xiàn)關(guān)閉Internet連接共享和防火墻服務(wù)的功能:

如何進行Kris遠控木馬的簡單分析

圖25:sub_409240函數(shù)實現(xiàn)關(guān)閉防火墻的功能

3.2.8 刪除日志文件

惡意代碼通過sub_407F80函數(shù)實現(xiàn)刪除日志文件的功能:

如何進行Kris遠控木馬的簡單分析

圖26:用于實現(xiàn)刪除日志文件功能的switch分支

程序首先通過OpenEventLog函數(shù)打開日志文件,如果成功打開,就調(diào)用ClearEventLog函數(shù)清除日志文件中的內(nèi)容,最后通過CloseEventLog函數(shù)關(guān)閉日志文件。

如何進行Kris遠控木馬的簡單分析

圖27:sub_407F80函數(shù)實現(xiàn)刪除日志的功能

此樣本是一個簡單的遠控木馬,通過訪問C2服務(wù)器獲取指令,然后根據(jù)Switch分支操作執(zhí)行諸如: 創(chuàng)建新用戶并添加到管理員組、 提升進程權(quán)限、 竊取系統(tǒng)磁盤信息并發(fā)送給遠程主機、 竊取桌面信息并發(fā)送給遠程主機、 竊取音頻設(shè)備信息并發(fā)送給遠程主機、 擊鍵記錄器、 關(guān)閉防火墻、 刪除日志文件等危險的操作。程序本身還會有拷貝自身、延時執(zhí)行、查詢系統(tǒng)中是否安裝安全軟件的操作,并以此來確保自身的安全,同時還會通過修改注冊表實現(xiàn)開機自啟動。

關(guān)于如何進行Kris遠控木馬的簡單分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI