史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 應用軟體使用技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-02-16, 09:13 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 蠕蟲病毒的傳播技術原理 快速檢視

-- 蠕蟲很「熱」,沒幾天網際網路上就來一次蠕蟲浪潮,當然浪頭有大有小,有的波濤洶湧,勢不可擋,很快就波及整個世界,有的在一小片範圍內翻了幾翻就沉寂下去了。

其實,這些都是表象,蠕蟲真正的意義不在於其引起的浪頭有多大,而在於是否實現了其目的。散播蠕蟲的人的目的是什麼呢?

有很多種可能,可能是哪個所謂的黑客想提高自己在圈內的知名度,可能那個小孩覺得這東西好玩就做一個出來滿足好奇心,可能是某個激進的傢伙想試驗一下自己的新技術,可能是某個受到傷害的可憐蟲想報復社
會,也可能是某個網路安全公司為他們的產品促銷,當然,還有可能是某為好心人想幫電腦用戶自動打上系統修正檔,補上安全漏洞。


本文不研究蠕蟲製作心理學,所以某個蠕蟲可能是那類人的作品這不在本文的考慮範圍之內。本文關心的是蠕蟲的技術方面,直接來說是蠕蟲的傳播技術。

  在詳細介紹蠕蟲的傳播技術之前,先給大家補充點基礎知識。

  一、蠕蟲的基本結構和傳播程序

  蠕蟲的基本程序結構為:

  1、傳播模組:負責蠕蟲的傳播,這是本文要討論的部分。

  2、隱藏模組:侵入主機後,隱藏蠕蟲程序,防止被用戶發現。

  3、目的功能模組:實現對電腦的控制、監視或破壞等功能。

  傳播模組由可以分為三個基本模組:掃瞄模組、攻擊模組和複製模組。

  蠕蟲程序的一般傳播程序為:

  1.掃瞄:由蠕蟲的掃瞄功能模組負責探測存在漏洞的主機。當程序向某個主機傳送探測漏洞的信息並收到成功的反饋信息後,就得到一個可傳播的對象。

  2.攻擊:攻擊模組按漏洞攻擊步驟自動攻擊步驟1中找到的對象,取得該主機的權限(一般為管理員權限),獲得一個shell。

  3.複製:複製模組通過原主機和新主機的交互將蠕蟲程序複製到新主機並啟動。

  我們可以看到,傳播模組實現的實際上是自動入侵的功能。所以蠕蟲的傳播技術是蠕蟲技術的首要技術,沒有蠕蟲的傳播技術,也就談不上什麼蠕蟲技術了。

  二、入侵程序的分析

  想必大家對入侵的一般步驟都是比較熟悉的。我們簡單回憶一下。

  第一步:用各種方法收集目標主機的信息,找到可利用的漏洞或弱點。

  第二步:針對目標主機的漏洞或缺陷,採取相應的技術攻擊主機,直到獲得主機的管理員權限。

  第三步:利用獲得的權限在主機上安裝後門、跳板、控制端、監視器等等,清除日誌。

  我們一步一步分析。

  先看第一步,搜集信息,有很多種方法,包括技術的和非技術的。採用技術的方法包括用掃瞄器掃瞄主機,探測主機的操作系統類型、版本,主機名,用戶名,開放的連接埠,開放的服務,開放的伺服器軟體版本等。


非技術的方法包括和主機的管理員拉關係套口風,騙取信任,威逼利誘等各種少兒不宜的手段。當然是信息搜集的越全越好。搜集完信息後進入第二步。

  第二步,對搜集來的信息進行分析,找到可以有效利用的信息。

如果有現成的漏洞可以利用,上網找到該漏洞的攻擊方法,如果有攻擊程式碼就直接COPY下來,然後用該程式碼取得權限,OK了;如果沒有現成的漏洞可以利用,就用根據搜集的信息試探猜測用戶密碼,另一方面試探研究分析其使用的系統,爭取分析出一個可利用的漏洞。如果最後能找到一個辦法獲得該系統權限,那麼就進入第三步,否則,放棄。

  第三步,有了主機的權限,你想幹什麼就幹什麼吧。如果你不知道想幹什麼,那你就退出來去玩你喜歡玩的遊戲吧。
上面說的是手動入侵的一般程序,對於自動入侵來說,在套用上有些特殊之處。

  蠕蟲採用的自動入侵技術,由於程序大小的限制,自動入侵程序不可能有太好的智能性,所以自動入侵一般都採用某種特定的模式。我們稱這種模式為入侵模式,它是由普通入侵技術中提取出來的。


目前蠕蟲使用的入侵模式只有一種,這種模式是就是我們前面提到的蠕蟲傳播程序採用的模式:掃瞄漏洞-攻擊並獲得shell-利用shell。


種入侵模式也就是現在蠕蟲常用的傳播模式。這裡有一個問題,就是對蠕蟲概念的定義問題,目前對蠕蟲的定義把這種傳播模式作為蠕蟲的定義的一部分,實際上廣義的蠕蟲應該包括那些使用其他自動傳播模式的程序。

  我們先看一般的傳播模式。

  三、蠕蟲傳播的一般模式分析

  1.模式:掃瞄-攻擊-複製。

  從新聞中看到關於蠕蟲的報導,報導中總是強調蠕蟲如何傳送大量的資料包,造成網路擁塞,影響網路通信速度。實際上這不是蠕蟲程序的本意,造成網路擁塞對蠕蟲程序的發佈者沒有什麼好處。如果可能的話,蠕蟲程序的發佈者更希望蠕蟲隱蔽的傳播出去,因為蠕蟲傳播出去後,蠕蟲的發佈者就可以獲得大量的可以利用的計算資源,這樣他獲得的利益比起造成網路擁塞的後果來說顯然強上萬倍。


但是,現有的蠕蟲採用的掃瞄方法不可避免的會引起大量的網路擁塞,這是蠕蟲技術發展的一個瓶頸,如果能突破這個難關,蠕蟲技術的發展就會進入一個新的階段。

  現在流行的蠕蟲採用的傳播技術目標一般是儘快地傳播到盡量多的電腦中,於是掃瞄模組採用的掃瞄原則是這樣的:

  隨機選取某一段IP位址,然後對這一位址段上的主機掃瞄。笨點的掃瞄程序可能會不斷重複上面這一程序。這樣,隨著蠕蟲的傳播,新感染的主機也開始進行這種掃瞄,這些掃瞄程序不知道那些位址已經被掃瞄過,它只是簡單的隨機掃瞄網際網路。於是蠕蟲傳播的越廣,網路上的掃瞄包就越多。即使掃瞄程序發出的探測包很小,積少成多,大量蠕蟲程序的掃瞄引起的網路擁塞就非常嚴重了。

  聰明點的作者會對掃瞄原則進行一些改進,譬如在IP位址段的選項上,可以主要針對當前主機所在的網段掃瞄,對外網段則隨機選項幾個小的IP位址段進行掃瞄。對掃瞄次數進行限制,只進行幾次掃瞄。把掃瞄分散在不同的時間段進行。掃瞄原則設計的原則有三點:

  盡量減少重複的掃瞄,使掃瞄傳送的資料包總量減少到最小2保證掃瞄覆蓋到盡量大的範圍3處理好掃瞄的時間分佈,使得掃瞄不要集中在某一時間內發生。怎樣找到一個合適的原則需要在考慮以上原則的前提下進行分析,甚至需要試驗驗證。

  掃瞄傳送的探測包是根據不同的漏洞進行設計的。譬如,針對遠端緩衝區溢出漏洞可以傳送溢出程式碼來探測,針對web的cgi漏洞就需要傳送一個特殊的http請求來探測。當然傳送探測程式碼之前首先要確定相應連接埠是否開放,這樣可以提高掃瞄效率。



一旦驗證漏洞存在後就可以進行相應的攻擊步驟,不同的漏洞有不同的攻擊手法,只要明白了漏洞的利用方法,在程序中實現這一程序就可以了。這一部關鍵的問題是對漏洞的理解和利用。關於如何分析漏洞不是本文要討論的內容。

  攻擊成功後,一般是獲得一個遠端主機的shell,對win2k系統來說就是cmd.exe,得到這個shell後我們就擁有了對整個系統的控制權。


製程序也有很多種方法,可以利用系統本身的程序實現,也可以用蠕蟲自代的程序實現。複製程序實際上就是一個文件傳輸的程序,實現網路文件傳輸很簡單,這裡不再討論。

  2.模式的使用

  既然稱之為模式,那麼它就是可以復用的。


也就是說,我們只要簡單地改變這個模式中各個直接環節的程式碼,就可以實現一個自己的蠕蟲了。


譬如掃瞄部分和複製部分的程式碼完成後,一旦有一個新的漏洞出現,我們只要把攻擊部分的程式碼補充上就可以了。

  利用模式我們甚至可以編寫一個蠕蟲製造機。當然利用模式也可以編寫一個自動入侵系統,模式化的操作用程序實現起來並不複雜。

  四、蠕蟲傳播的其他可能模式

  除了上面介紹的傳播模式外,還可能會有別的模式出現。

  譬如,我們可以把利用郵件進行自動傳播也作為一種模式。


這種模式的描述為:由郵件位址薄獲得郵件位址-群髮帶有蠕蟲程序的郵件-郵件被動開啟,蠕蟲程序啟動。


這裡面每一步都可以有不同的實現方法,而且這個模式也實現了自動傳播所以我們可以把它作為一種蠕蟲的傳播模式。

  隨著蠕蟲技術的發展,今後還會有其他的傳播模式出現。

  五、從安全防禦的角度看蠕蟲的傳播模式

  我們針對蠕蟲的傳播模式來分析如何防止蠕蟲的傳播思路會清晰很多。


對蠕蟲傳播的一般模式來說,我們目前做的安全防護工作主要是針對其第二環即「攻擊」部分,為了防止攻擊,要採取的措施就是及早發現漏洞並打上修正檔。


其實更重要的是第一環節的防護,對掃瞄的防護現在人們常用的方法是使用防護牆來過濾掃瞄。



使用防火牆的方法有局限性,因為很多用戶並不知道如何使用防火牆,所以當蠕蟲仍然能傳播開來,有防火牆保護的主機只能保證自己的安全,但是網路已經被破壞了。另外一種方案是從網路整體來考慮如何防止蠕蟲的傳播。

  從網路整體來防止蠕蟲傳播是一個安全專題,需要進一步研究。


這裡簡單提一下。從一般模式的程序來看,大規模掃瞄是蠕蟲傳播的重要步驟,如果能防止或限制掃瞄的進行,那麼就可以防止蠕蟲的傳播了。


可能的方法是在網關或者路由器上加一個過濾器,當檢測到某個位址傳送掃瞄包就過濾掉該包。直接實現時可能要考慮到如何識別掃瞄包與正常包的問題,這有待進一步研究。

  瞭解了蠕蟲的傳播模式,可以很容易實現針對蠕蟲的入侵檢測系統。


蠕蟲的掃瞄會有一定的模式,掃瞄包有一定的特徵串,這些都可以作為入侵檢測的入侵特徵。瞭解了這些特徵就可以針對其制定入侵檢測規則。

  本文使用了入侵模式的概念,有人對入侵模式有不同的解釋,這裡不討論入侵模式到底應該指什麼,只是想利用這個概念來分析現在的蠕蟲傳播技術,不妥之處,請指正。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2004-02-16, 10:37 PM   #2 (permalink)
長老會員
 
羅迪 的頭像
榮譽勳章
UID - 2782
在線等級: 級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時級別:64 | 在線時長:4452小時 | 升級還需:33小時
註冊日期: 2002-12-06
住址: 香港
文章: 1022
精華: 0
現金: 9229 金幣
資產: 365927 金幣
預設

Thanks a lot!
__________________
羅迪 目前離線  
送花文章: 2188, 收花文章: 423 篇, 收花: 1789 次
舊 2004-02-19, 01:48 AM   #3 (permalink)
a721003
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

3qq~^^
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
舊 2004-02-19, 11:04 AM   #4 (permalink)
註冊會員
榮譽勳章
UID - 16417
在線等級: 級別:10 | 在線時長:151小時 | 升級還需:14小時級別:10 | 在線時長:151小時 | 升級還需:14小時級別:10 | 在線時長:151小時 | 升級還需:14小時級別:10 | 在線時長:151小時 | 升級還需:14小時級別:10 | 在線時長:151小時 | 升級還需:14小時
註冊日期: 2002-12-23
VIP期限: 2009-12
文章: 157
精華: 0
現金: 5508 金幣
資產: 10508 金幣
預設

謝謝您詳盡的解說
l-benny 目前離線  
送花文章: 62, 收花文章: 2 篇, 收花: 3 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 03:57 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1