LPK病毒分析報告

文件: lpk.dll

大小: 44032 字節

MD5: 78311085E5CD3F86A7243D628BFACF95

SHA1: BA7C78590F1E940F51AFD2945674D904A814F976

CRC32: F223E90D

LPK.dl主要行爲:

pk.dll獲取了系統正常的lpk.dll文件的導出函數地址,並僞裝成正常的lpk文件,當僞裝的LPK.dll被加載後,該模塊會進行以下的操作:

  1. 僞裝的lpk.dll釋放其中包含一段惡意資源到Windows臨時目錄下,將該資源命名爲hrl*.tmp(*爲隨機字符), 用任意十六進制查看器可以看到該資源是PE文件。

 

                       圖1   lpk.dll中的一段資源文件

 

                      圖 2  調用FindResourceA查找資源

  1. 調用CreateProcess將創建hrl*.tmp進程。

 

  1. 遍歷磁盤目錄,如果當前目錄存在”.exe”後綴的文件,將自身lpk.dll拷貝到當前目錄。

 

將lpk.dll拷貝到當前目錄,並將屬性設置爲隱藏:

 

對lpk.dll釋放的母體hrl*.tmp的分析:

Hrl*.tmp主要行爲:

hrl*.tmp是lpk.dll釋放的惡意文件,當創建該進程後,將會進行大量的惡意操作,歸類如下:

1、  創建服務:

首先判斷註冊表項:"SYSTEM\\CurrentControlSet\\Services\\Nationaluhm”是否存在,如果存在註冊表項,則先將自己拷貝一份命名爲”******.exe”,複製到”C:\Windows\System32\”目錄下,然後創建一個名稱爲”Nationaluhm”的服務,將該服務的可執行文件指向剛剛複製的”C:\Windwos\System32\******.exe”,啓動該服務。

 

 

                 圖3 複製hrl*.tmp到系統目錄

 

               圖4 創建並啓動服務

 

2.修改註冊表

將” SYSTEM\\CurrentControlSet\\Services\\Nationaluhm\\”下Description的鍵值設置爲” Nationallwk Instruments Domain Service”.

 

                  圖5 修改註冊表

3.進程操作:

如果註冊表項不存在,將進程注入到Svhost.exe中:

(1)       首先調用CreatProcess函數創建一個Svchost.exe,並且使進程處於CREATE_SUSPEND狀態。

(2)       調用GetThreadContect函數獲取Svchost進程的各個寄存器的值,其中EBX指向PEB,EAX保存程序的入口點。

(3)從PEB中獲取進程的基址base_address(EBX+0x8)

(4)調用ZwUnmapViewOfSection卸載這個基址內存空間的數據,(該函數由ntdll.dll導出),(5)然後調用VirtualAllocEx函數在Svchost.exe進程空間裏申請足夠大的一片內存,讀取hrl.tmp到內存中,調用WriteProcessMemory函數將hrl*.tmp拷貝到申請的空間。

用hrl*.tmp的BaseAddress修正svchsot進程中的PEB。用Eax設置入口地址,調用SetThreadContext修正。

(6)用ResumeThread函數恢復svhost.exe,注入完成。

 

獲取ZwUnmapViewOfSection的地址

 

調用WriteProcessMemory函數將hrl*.tmp寫到到申請的空間

 

SetThreadContext修正入口地址,ResumeThread重啓進程。

 

注入後的svhost進程相當於一個殭屍進程,可以用XueTr查看svhost.exe的模塊

 

  1. 網絡操作:

首先將當前進程的母體資源寫入到hra33.dll,相當與重新合成lpk.dll.

 

                    Hrl**.exe中包含了的lpk.dll

調用EnumResourceNamel遍歷當前模塊,將資源寫入hrl33.dll

 

調用CreateFileA將模塊寫入hra*.dll

 

給hra*.dll添加資源:

 

 

                     寫入編號爲0x66(102)的資源

 

                     寫入編號爲0x65(101)的資源

 

開啓下載線程,從服務器地址爲:http://www.ody.cc/vip48.html的頁面,並從該頁面獲取病毒的服務器地址.

通過上面獲取的頁面信息獲得服務器ip地址和端口號,與遠程服務器建立socket連接,將連接設置爲KEEPALIVE狀態,75s檢測一次連接狀態。

獲取計算機的運行Windows版本信息,CPU頻率,以及運行內存大小,通過socket發送給遠程服務器。

 

從遠程服務器讀取遠控文件”PlusCtrl.dll”,並獲取導出函數”ProcessTrans”來對計算機進行遠程控制。

 

加載PlusCtr.dll

 

接收服務端指令,執行操作

 

接收遠程服務器指令,通過switch case語句對不同的指令執行相應的操作,計算機成爲殭屍機(肉雞),可以對任意指定的服務器發起惡意請求(或DDOS攻擊)。

 

其中402004保存執行操作的數據表

 

 當收到不同指令則對應表中不同的地址,然後指向相應的操作函數;

 

Case 22:從服務器獲取PlusCtr.dll

 

Case 2:對指定的IP發起DDOS

 

Case 16 17:下載惡意文件到臨時目錄並執行

 

Case 19 以隱藏方式打開ie指定頁面,case 20 用正常窗口方式打開指定頁面

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章