• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉,開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            深入淺出dll插入型木馬病毒的原理,查殺與防范

            寫在前面:很多人的系統經常出現莫名其妙的問題,上網也經常彈出各類奇怪的窗口,各類木馬病毒呈爆炸式的增長,大多是中了木馬或病毒所致,一直想寫一篇比較深入的關于dll插入型木馬病毒的原理,查殺與防范的文章,可惜囿于時間所限,一直也只是打腹稿,未能成型,五一回家終于有了時間,于是就有了這篇文章

            ? ?? ?? ?? ???? ?深入淺出dll插入型木馬病毒的原理,查殺與防范
            ? ?? ?? ?
            ? ?? ? 在文章開始前,我覺得有必要說明一些名詞,先列表如下

            Rootkit:可能你對這個名詞并不太陌生,rising的卡卡上網助手的宣傳里就提到過采用很多Anti-rootkit技術,那說明Rootkit肯定不是什么好東西,呵呵,其實這最早是個linux下的名詞,一般是指用來隱藏直接可獲得管理員權限的后門的技術工具,后來衍生到了win下。

            dll:簡單說DLL 是一個包含可由多個程序同時使用的代碼和數據的庫,所以dll也叫動態鏈接程序庫,當exe程序運行時,會同時調用很多dll文件來實現擴展功能。

            dll插入:把一個實現了后門功能的代碼寫成一個DLL文件,然后插入到一個EXE文件當中,使其可以執行,這樣就不需要占用進程,也就沒有相對應的PID號,也就可以在任務管理器中隱藏。我們可以這樣理解,dll好比一個寄生蟲,而exe則是宿主,把dll注入到exe程序運行的空間中,我們的dll才能活下來,一旦exe程序被終止,dll也隨之死去。



            ? ? 相信看了上面的列表,大家應該對dll插入有了一個大概的影象,其實dll插入技術也叫“遠程線程注入技術”,并不是什么很新鮮的玩意,屬于rootkit技術中的一種,而rootkit技術大致可分為ring0(內核級別)和ring3(用戶級別)兩類,ring3下有很多技術如:遠程線程注入技術,hook api 技術,端口復用技術等等,而要達到ring0級別的話,就要涉及到驅動開發了,如果你想深入了解rootkit,可以去www.rootkit.com上去看看。

            ? ? 假設我們已經編好了dll中的相關代碼,那么如何讓它運行呢,從開始我已經提過,我們要找一個宿主,也就是一個exe進程來加載我們的dll,而加載dll又可以分為以下幾種方式:

            ?? 一:利用系統中的rundll32.exe加載

            經常會有人在注冊表的啟動項中會發現類似鍵值
            rundll32.exe c:\temp\XXX.dll dllmain
            那么是什么意思呢?,其實rundll32.exe這個程序顧名思義,運行32位的dll程序,功能就是以命令行的方式調用動態鏈接程序庫,其命令行下的使用方法為:
            Rundll32.exe??dll的名字 調用的函數名
            如果我們的dll中編寫了test()這個函數,那么調用方式就是:Rundll32.exe??C:\dlltest.dll??test
            這樣dll中的函數就得到運行了。



            二:替換系統中的DLL文件
            這可以說是上面的升級版了,它把實現了后門功能的代碼做成一個和系統匹配的DLL文件,并把原來的DLL文件改名。遇到應用程序請求原來的DLL文件時, DLL后門就啟一個轉發的作用,把"參數"傳遞給原來的DLL文件;如果遇到特殊的請求時(比如客戶端),DLL后門就開始,啟動并運行了,但是實現卻不太容易,所以沒有流行開來。


            三:就是我們要說的dll注入技術了
            ? ?? ?其意義是將DLL文件嵌入到正在運行的系統進程當中。在Windows系統中,每個進程都有自己的私有內存空間,但還是有種種方法來進入其進程的私有內存空間,來實現動態嵌入式。
            ? ?? ? 有什么好處呢,首先是實現了隱藏,任務管理器中看不見我們的dll后門,其次windows和linux 不同,不能刪除正在運行的程序,這就是為什么經常刪東西時候會提示“xxx正在運行,無法刪除。可能最重要的是可以穿透絕大多數防火墻了,設想防火墻肯定不會阻攔ie,那我們把dll插入ie進程,不就穿透防火墻了嗎。
            ? ?
            ? ? 那么我們如何實現把dll注入到exe中呢?dll自己又沒長腿,呵呵,我們需要一個dlllorder.exe,再哪弄?自己寫唄,把代碼寫到dlllorder.exe中,只要運行dlllorder.exe,相應的dll文件就可以注入到任何程序中了。有了dlllorder就好辦了,只要能讓系統每次自動啟動dlllorder,后門的生存期就大大增長了,至于如何自啟動,有注冊表,服務,BHO,activex,計劃任務等等,太多了,就不介紹了。


            dll木馬的防范與清除

            對于第一類dll文件
            下次看到進程中有rundll32.exe,則只要找到它調用的dll就可以kill掉隱藏的程序了
            ??

            對于第三類dll文件

            第一招:??對于dll的隱藏地,temp,system32,windows這三個文件夾是最常見的,如果你哪天發現temp里某個dll文件無法刪除,那么幾乎可以肯定這個文件有問題了,
            ? ???安裝好系統和所有的應用程序之后,備份system32目錄下的EXE和DLL文件:打開CMD,來到WINNT\system32目錄下,執行:
            復制內容到剪貼板
            代碼:
            dir *.exe >exefirst.txt? ?dir *.dll? ?>dllfirst.txt
            這樣,就會把所有的EXE和DLL文件備份到exe.txt和dll.txt文件中,日后,如發現異常,可以使用相同的命令再次備份EXE和DLL文件
            復制內容到剪貼板
            代碼:
            ??dir *.exe >exeSecond.txt? ?? ? dir *.dll? ?>dllSecond.txt
            并使用:
            復制內容到剪貼板
            代碼:
            fc exefirst.txt exeSecond.txt >dllresult.txt? ? fc dllfirst.txt dllSecond.txt? ?>exeresult.txt
            其意思為使用FC命令比較兩次的EXE文件和DLL文件,并將比較結果保存到exedll.txt文件中。通過這種方法,我們就可以發現多出來的EXE和DLL文件,并通過文件大小,創建時間來判斷是否是DLL后門。


            第二招
            運用相關工具如,icesword ,ring防火墻,重點檢測ie,exeplorer桌面進程中是否有未知的dll加載文件,其實我更喜歡用ring防火墻,里面有未知dll都以紅色顯示,很方便看


            第三招

            通過創建時間來查找,利用win中的搜索文件功能,設定時間,查找可以文件


            第四招

            定期檢查系統自動加載的地方,如注冊表啟動項,服務列表,win.ini,system.ini。。。。,可以去網上搜索更多啟動的地方


            第五招

            用相關工具查看端口列表,如果你不想用cmd的話,注意下每個tcp連接后的應用程序路徑,也可以發現可以文件


            第六招

            ? ?? ?? ?當我們運用前面幾招找出了可疑文件,如何刪除呢?如何殺“寄生蟲”? 最簡單的辦法就是讓“宿主”死去? ?,結束被插入了的exe進程,類似ie,桌面這類進程可以直接用任務管理器kill,這里提一下,kill桌面exeplorer進程時,會發現任務欄消失了,那么怎么刪dll呢,按ctrl+alt+del調出任務管理器,依次點菜單欄的 文件--新建任務,這時候會出現一個“創建新任務”的窗口,點下方的“瀏覽”找到插入桌面的dll文件,也就是“寄生蟲”了,呵呵,右鍵刪之,刪了后在“創建新任務”的窗口運行欄中輸入“exeplorer"確定后,我們的宿主就復活了,哈哈,體內的寄生蟲也沒了。

            ? ?如果插入的是crss.exe等系統核心進程呢?無法殺死宿主咋辦?沒關系,我們還有安全模式啊,開機按f8進入安全模式,找到你確定的可疑文件,刪之,這個世界終于清凈了。。。。




            ??寫在后面:現實中分析,查殺可疑文件當然沒有這么簡單,但只要核心抓住了就可以了,不管它72變,照樣現出原形,最后祝所有人遠離木馬,病毒!打字打的可真累啊,雖然很泛泛,希望對那些對系統不太熟悉的網友能有所幫助~


            參考了部分網絡文章和書籍,一并感謝


            ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?by willy
            ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 2007.5.2
            久久久这里有精品| 精品免费久久久久国产一区| 久久天天日天天操综合伊人av| 久久久精品视频免费观看| 一本久道久久综合狠狠躁AV | WWW婷婷AV久久久影片| 久久91精品国产91久久麻豆| 国产免费久久久久久无码| 久久人人爽人人爽人人爽 | 狠狠综合久久AV一区二区三区| 久久国产精品无码HDAV| 久久久综合香蕉尹人综合网| 精品久久人人爽天天玩人人妻| 国产精品久久波多野结衣| 亚洲国产天堂久久综合| 国产一久久香蕉国产线看观看| 97香蕉久久夜色精品国产| 99久久国产亚洲高清观看2024| 亚洲国产精品18久久久久久| 国产精品无码久久综合网| 国产精品美女久久久久| 久久精品国产免费观看三人同眠| 99久久亚洲综合精品成人| 久久久久久久亚洲Av无码| 久久91精品国产91| 久久一区二区三区免费| A级毛片无码久久精品免费| 久久免费精品视频| 2022年国产精品久久久久| 久久这里只有精品18| 久久久亚洲裙底偷窥综合| 国产香蕉久久精品综合网| 婷婷久久综合九色综合绿巨人 | 成人久久综合网| 99国产精品久久| 国内精品人妻无码久久久影院 | 久久精品国产福利国产琪琪| 国产亚洲婷婷香蕉久久精品| 久久99精品综合国产首页| 国产精品久久免费| 99久久无码一区人妻|