Internet worm入門教程 (轉)

worldblog發表於2007-12-13
Internet worm入門教程 (轉)[@more@]

Inte worm教程
by Koms Bomb

免責宣告:
如果有人因為看了本文而寫出任何惡性進而對社會造成任何傷害,與本人無關。本人只是討論一些理論知識而已。

寫本文的目的:
1,像普及性知識那樣普及病毒知識,即使是老處男(說我呢?鬱悶中)老處女也要懂性知識,所以愛好的也最好懂一些病毒的編寫原理。
2,發揚中國的病毒事業。為什麼要發揚?去看我的其它文章。

一,Internet worm的傳播途徑
Internet worm,顧名思義,就是以Internet為主要傳播途徑的。之所以說它是蠕蟲,是因為它比病毒大,病毒通常幾K,是微生物,而蠕蟲通常幾十到上百K,是大蟲子(這個定義有些胡扯:))。透過Internet,最主要最流行的就是透過e,一家大公司的職員可能一天都不能上網看新聞,但不太可能一天都不收mail。這一類的代表有SirCam和Klez。除了mail外,還可以透過Internet server的進行傳播,主要的有各種IIS漏洞,這一類的代表有CodeRed II和Nimda。
當然一個worm通常不止一種傳播途徑,可能幾種併發。如Nimda有著IIS,,net share,local file infection四種傳播途徑,不過它的成功主要是靠IIS,它的email傳播能力是在是太差勁,和SirCam及Klez差了不止一個數量級。
本教程以mail worm為主,因為它們更具代表性。

二,當一個worm開始在機器上執行時應該幹些什麼
好了,使用者一不留神執行了一個附件,我們可愛的worm開始。
首先應該駐留在中。通常都是把自己copy到system路徑下(SirCam是以垃圾桶為家),然後修改登錄檔或者乾脆註冊一個系統服務,以使自己能在每次啟動的時候就被執行。
然後,呵呵,感染本地,然後蒐集email地址,然後傳送自己。既然你已經生活在使用者的機器上,那麼想做什麼都是你自己的事了。

三,怎樣得到email地址?
Express的WAB(地址簿)檔案,html檔案,其它網頁檔案(,),各種即時通訊工具(,ICQ)的地址簿,都是email地址的棲身之所。使用一點處理string的功夫,把它們分析出來,而不要用M,那樣太依賴於OE了。

四,怎樣傳送自己?
要發email,當然是用SMTP。再一次提醒不要用MAPI。
SMTP正如它的名字,很簡單的。好的worm,如SirCam,Klez,都是用自己攜帶的SMTP engine。

五,應該利用什麼系統漏洞?
那就看你的發掘了。Nimda大爆發以後,再去研究Unicode漏洞已經沒什麼意義,幾乎所有的 server都已經堵住了這個大洞。要麼自己發掘新的漏洞,要麼用一些“經久不衰”的漏洞。比如Klez用到的iframe漏洞,已經被發現一年多了,但Klez照樣用它取得了驚人的戰果。

六,有必要進行本地感染嗎?
答案是肯定的。之所以大家公認Nimda和Klez非常難殺死,就是因為它們大量感染本地檔案。如果是SirCam,則改一下注冊表,然後清空垃圾桶就把它幹掉了。一般Worm感染檔案,不是像PE病毒那樣真正的感染,而是式的捆綁(如Nimda)或者伴隨感染(如Klez)。比如Nimda,感染的方式是把原放進自己的resouce section,做為資源的一部分,用的是的UpdateRe之類的API,似乎在98下不行。不過它很愚蠢的是,會重複感染,結果一個幾百K的程式最後變成好幾M了。

七,寫Worm用什麼語言?
只要可以程式設計的都可以用,,VC,,甚至或者PHP,但要想寫得好,還是推薦彙編和C/C++。最好用C/C++,因為一般Worm不是非常注重size,而C/C++用起來更靈活,如果用匯編去處理Klez體內的字串去生成標題和內容,工作量一定大得多。
最著名的蠕蟲幾乎都是C/C++寫的,比如Nimda,Klez。而SirCam則是用Delphi寫的。但在一個Worm裡用VCL庫或者靜態連線的MFC庫(總之,是指靜態的)是愚蠢的,沒人會相信一個三四百K的Worm會和SirCam,Nimda或者Klez一樣流行,除非全世界的個人上網頻寬達到1M以上。

八,還應該注意什麼?
這還問我???Worm比PE病毒要簡單,但它用的手段也可以多種多樣,隨你發揮。

 2002年6月4日晚10時,Koms Bomb,痛飲啤酒中
歡迎轉載,請保留“by Koms Bomb”


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992631/,如需轉載,請註明出處,否則將追究法律責任。