久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3253|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

編程練習(xí)作品 -> 感染防御系統(tǒng) SP1.0【內(nèi)部版】

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71922 發(fā)表于 2015-1-10 23:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
   這個(gè)程序是較 鎖屏小工具 V3.0 設(shè)計(jì)之前設(shè)計(jì)好了,只是一直沒能找到好一點(diǎn)的感染型病毒樣本來做測(cè)試,一直就沒有發(fā)布。程序的原理是利用了 HOOK API 技術(shù),是在Ring 3層下(即用戶層)攔截。說個(gè)個(gè)人看法,我覺得在Ring3層下保護(hù)就已經(jīng)足夠防御絕大部分病毒了。先簡單說說殺毒軟件攔截病毒的原理,剛接觸底層沒多久,如果發(fā)現(xiàn)有說錯(cuò)的地方懇請(qǐng)指出,現(xiàn)在大多數(shù)的安全軟件都是通過HOOK SSDT這個(gè)表來實(shí)現(xiàn)對(duì)關(guān)鍵內(nèi)核API的攔截。SSDT 其實(shí)是一張記錄著 內(nèi)核下所有API的函數(shù)地址。用戶層下的API 都會(huì)最終都會(huì)通過 這張表得到相對(duì)應(yīng)的內(nèi)核API。例如:OpenProcess(),它是kernel32.dll導(dǎo)出的函數(shù),它的調(diào)用過程:
xxx程序調(diào)用 --->  kernel32.OpenProcess ---> ntdll.NtOpenProcess ---> ntdll.ZwOpenProcess  ---> 內(nèi)核 ntkrnlpa.ZwOpenProcess ---> 通過SSDT表查詢 ---> ntkrnlpa.NtOpenProcess
最終的ntkrnlpa.NtOpenProcess 才是實(shí)現(xiàn)打開進(jìn)程的操作。殺毒軟件(當(dāng)然還有其它高級(jí)病毒也會(huì))通過修改SSDT 記錄的ntkrnlpa.NtOpenProcess 地址變?yōu)樽约汉瘮?shù)的地址。這樣整個(gè)過程就變成:
xxx程序調(diào)用 --->  kernel32.OpenProcess ---> ntdll.NtOpenProcess ---> ntdll.ZwOpenProcess  ---> 內(nèi)核 ntkrnlpa.ZwOpenProcess ---> 通過SSDT表查詢 ---> 殺毒軟件自己的冒牌MyNtOpenProcess ---> ntkrnlpa.NtOpenProcess
而 MyNtOpenProces 這個(gè)函數(shù)不是用來打開進(jìn)程的,而是殺軟檢查XXX程序想打開什么進(jìn)程,如果是想打開被保護(hù)的進(jìn)程則直接返回 NULL,這樣XXX程序最終根本就沒機(jī)會(huì)調(diào)用到真正的 ntkrnlpa.NtOpenProcess。殺毒軟件就這樣實(shí)現(xiàn)了攔截。殺毒軟件的行為查殺、主動(dòng)防御也是通過此方法得到病毒的執(zhí)行順序。例:一般的木馬被執(zhí)行后第一件事就是把自己COPY到系統(tǒng)目錄、運(yùn)行系統(tǒng)目錄的本體、刪除自身。系統(tǒng)目錄的本體執(zhí)行后設(shè)置啟動(dòng)項(xiàng)、釋放DLL注入IE或系統(tǒng)關(guān)鍵進(jìn)程等.... 那么殺毒軟件通過攔截相關(guān)內(nèi)核API 得到這個(gè)程序的行為,發(fā)現(xiàn)和木馬極為相似,負(fù)責(zé)點(diǎn)的殺毒軟件可能會(huì)先提示用戶,然后禁止其運(yùn)行并上傳,不負(fù)責(zé)的直接K (360貌似就這樣,N多程序都很正常,硬要說是什么什么病毒!什么什么木馬。)。
    雖然說 Ring3 層的API 最終會(huì)調(diào)用 Ring 0 下內(nèi)核的API,從根本上攔截。只要攔截了最低層的關(guān)鍵API ,任由病毒調(diào)用API都會(huì)被攔截。不過由于是驅(qū)動(dòng)方式,不太穩(wěn)定,一個(gè)小BUG都可能引發(fā)系統(tǒng)的藍(lán)屏。而我認(rèn)為,任何程序如果要進(jìn)入Ring 0,首先就必須調(diào)用 Ring3下的API。
    先簡單說一下HOOK API的原理:這個(gè)實(shí)際上是修改了API的頭五個(gè)字節(jié)的指令,例如 OpenProcess 的地址是 0x12345678,那么我在 0x12345678 這個(gè)地址上的指令改寫為 JMP 我自己函數(shù)的地址。那么程序調(diào)用的OpenProcess 會(huì)從原來的 xxx程序調(diào)用 --->  kernel32.OpenProcess。 變成 xxx程序調(diào)用 ---> 我的偽造OpenProcess函數(shù) ---> kernel32.OpenProcess
這樣,我可以在我的函數(shù)里面檢查它要打開的是什么進(jìn)程,然后再?zèng)Q定是否讓它調(diào)用下面的API。
    通過HOOK API技術(shù)攔截Ring3 下進(jìn)入Ring0的相關(guān)API,也攔截一些相關(guān)的API,那么是不是也算是從根本上攔截?例如上面說的木馬,它會(huì)自復(fù)制到系統(tǒng)目錄,那么我就HOOK CopyFileEx 通過檢查其參數(shù),是不是要復(fù)制自身到系統(tǒng)目錄,如果是則記錄下,接下來如果程序運(yùn)行系統(tǒng)目錄下的副本,然后又刪除自身,那就要警惕了,絕大多數(shù)正常的軟件不可能會(huì)這么做,如果副本運(yùn)行起來了設(shè)置啟動(dòng)項(xiàng),那么基本上可以確定整個(gè)程序就是木馬,就應(yīng)該要提醒用戶。如果要提高查殺率,配合特征碼查殺技術(shù)也是一個(gè)不錯(cuò)的選擇。當(dāng)然,也有一些其它的情況出現(xiàn),也可能有一些我不知道的技術(shù),可能可以直接調(diào)用內(nèi)核下的API 的技術(shù)我也不知道,我也是個(gè)菜鳥,以目前我的水平覺得在RING3下攔截挺不錯(cuò)。可能隨著我的成長會(huì)改變這個(gè)想法吧,畢竟我了解的還不過多。
     這個(gè)程序設(shè)計(jì)的目的是為了攔截病毒感染exe文件。
  實(shí)驗(yàn)工具:
    瑞星全功能殺毒軟件:版本 23.00.63.19
    病毒:Worm.Win32.AutoRun.Anti
    VM7.1虛擬機(jī):xp系統(tǒng),兩個(gè)分區(qū) C、D
    測(cè)試文件夾:【L、個(gè)人作品】--- 感染測(cè)試

先簡單介紹一下這次測(cè)試的病毒 ,此病毒是會(huì)感染PE文件滴
一、病毒標(biāo)簽:
病毒名稱:  Worm.Win32.AutoRun.Anti
病毒類型:  TrojWare
文件SHA1  7cfb685952a4caf9aacbdbaa01c5bfa733193d1f
危害等級(jí)    3
文件長度    脫殼前 8.68KB脫殼后84KB
受影響系統(tǒng)  xp
開發(fā)工具    Microsoft Visual C++ 6.0
加殼類型    WinUpack 0.39 final -> By Dwing
二、病毒描述:
         通過感染pe文件已經(jīng)寫入autorun.ibf來實(shí)現(xiàn)自動(dòng)運(yùn)行進(jìn)行傳播和破壞
同時(shí)對(duì)抗各種殺軟和防火墻程序
三、行為分析:
病毒主體流程及功能分析
      step(1):獲取系統(tǒng)版本 (獲取失敗跳到step(3))
     step(2):獲取整個(gè)程序待調(diào)用的函數(shù)的地址
     step(3):創(chuàng)建BLACKSEED窗體-無大小的窗體
         [窗口過程實(shí)現(xiàn)邏輯]
   獲取臨時(shí)目錄
   拼接出路徑 %temp%\tmp.bat
   創(chuàng)建dat文件
   將開機(jī)自啟動(dòng)的程序xx.exe的后綴改為dat
   判斷當(dāng)前系統(tǒng)版本 (如果沒有辦法獲取版本 跳到7)
   將xx.dat設(shè)置為重啟刪除  (跳到8 繼續(xù)運(yùn)行)
   獲取路徑c:\windows\wininit.ini 在其中寫入
[Rename]
NUL = xx.dat
   在tmp.bat中寫入如下內(nèi)容:
:try
Del xx.exe
If exist xx.exe goto try
Del xx.dat
Del %%0
   結(jié)束iexplorer.exe的進(jìn)程
  運(yùn)行bat文件
Step(4):檢查是否獲取了系統(tǒng)版本(如果獲取失敗的話 跳到 step(6))
Step(5):提升當(dāng)前權(quán)限到debug
Step(6):查找并獲取BLACKSEED窗口的句柄 (如果成功打開 跳到step(11))
Step(7):獲取系統(tǒng)盤符 拼接出x:\windows\Downloaded Program Files\
Step(8):查找x:\windows\Downloaded Program Files\abcd.exe是否存在[假設(shè)abcd代表隨機(jī)的命名]  (如果存在跳到 step(11))
Step(9):將自身拷貝成x:\windows\Downloaded Program Files\abcd.exe
Step(10):運(yùn)行abcd.exe
Step(11):先設(shè)置hook然后運(yùn)行iexplorer進(jìn)行破壞
上截圖:
程序主界面:



  先準(zhǔn)備一堆用于給病毒感染的exe文件,先用瑞星掃描一下,瑞星支持我的2003系統(tǒng)





掃描一下被感染的文件以及病毒母體,看瑞星是否能查殺此病毒。





發(fā)現(xiàn)是被殺的,接下來將 感染防御系統(tǒng) SP1.0【內(nèi)部版】復(fù)制到虛擬機(jī)中運(yùn)行,將【L、個(gè)人作品】--- 感染測(cè)試 文件夾復(fù)制到 虛擬機(jī)的D盤,并把病毒母體復(fù)制到虛擬機(jī)的桌面上。確保 感染防御系統(tǒng) SP1.0【內(nèi)部版】.exe 已經(jīng)啟動(dòng)防御。然后運(yùn)行該病毒。

首先發(fā)現(xiàn)彈出兩個(gè)對(duì)話框,病毒會(huì)自復(fù)制到系統(tǒng)目錄,并開啟線程去感染文件。



選擇攔截,發(fā)現(xiàn)它還試圖感染其它文件。





這次點(diǎn)擊終止,病毒被終止。將虛擬機(jī)上的 【L、個(gè)人作品】--- 感染測(cè)試 文件復(fù)制到本機(jī),然后用瑞星殺毒軟件掃描,發(fā)現(xiàn)并沒有感染病毒。攔截病毒感染成功。




    看到這個(gè)程序能攔截病毒的感染,很興奮...但接下來檢查病毒啟動(dòng)項(xiàng)、釋放路徑 發(fā)現(xiàn)程序并沒有攔截到其釋放,至于啟動(dòng)項(xiàng)由于我當(dāng)時(shí)設(shè)計(jì)的目的只是為了防御病毒的感染,并沒有HOOK 注冊(cè)表相關(guān)的API。所以自然也就無法攔截。

   本程序優(yōu)點(diǎn):
    小巧 255K大小,可以攔截病毒感染,并給出提示。
   本程序的缺點(diǎn):
    由于設(shè)計(jì)時(shí)考慮的不夠周全,HOOK 的API明顯不夠全面,沒有提供逆向刪除病毒的功能。
    彈出窗體不是由EXE彈出,DLL與EXE通訊還不夠熟練

總結(jié):此程序純屬垃圾一個(gè)...下次一定要設(shè)計(jì)一個(gè)完善的病毒防御系統(tǒng)。郁悶.....

下載地址也就不發(fā)了,沒啥用...本來是想發(fā)布的,經(jīng)過這么一測(cè)試,就不想發(fā)布了,看到上面自己寫的那么辛苦,刪了這篇文章真是浪費(fèi)心血啊,索性就不刪了。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一二三区精品 | 国产欧美日韩一区二区三区在线观看 | 欧美一区两区 | 蜜桃官网| 国产97视频在线观看 | 成人免费视频网 | 日韩精品一 | 亚洲国产欧美一区 | 国产精品久久久久久久久久久久久久 | 在线播放国产一区二区三区 | 成人午夜 | 国产精品美女久久久久久免费 | 亚洲免费三区 | 国产偷自视频区视频 | av网址在线播放 | japanhd美女动 | 一区二区欧美在线 | 久久久久久久97 | 国产一区二区三区四区区 | 黑人巨大精品欧美一区二区免费 | 精品久久久一区二区 | 欧美jizzhd精品欧美巨大免费 | 999久久久免费精品国产 | 福利视频网站 | 成人小视频在线观看 | 91高清视频| 精品久久久一区二区 | 国产电影一区二区在线观看 | www.99热 | www.jizzjizz| 国产在线高清 | 亚洲一区二区三区在线播放 | 亚洲精品女人久久久 | 91视频播放 | 日本成人片在线观看 | 国产线视频精品免费观看视频 | 久久久久中文字幕 | 中文字幕一区二区三区精彩视频 | www.887色视频免费 | 欧美精品一区二区三区四区 | 欧美一二三区 |