2007年11月3日星期六

透析Svchost進程清除後門

  網上有很多關於Svchost.exe的討論,我們今天首先來看一下Svchost.exe的原理,工作方法,然後結合著名DLL木馬,實戰瞭解一下使用Svchost.exe進行啟動的木馬的清除,希望大家能夠有所收穫。

  Svchost.exe是NT核心系統非常重要的檔,對於Windows 2000/XP來說,不可或缺。Svchost進程提供很多系統服務,如:logical disk manager、remote procedure call(RPC)、dhcp client、Automatic Updates、Background Intelligent Transfer Service、COM+ Event System、Internet Connection Sharing、Network Connections、Portable Media Serial Number Service、Remote Access Auto Connection Manager、Remote Access Connection Manager、Removable Storage、Routing and Remote Access、System Event Notification、Telephony、Wireless Configuration等等。 對於服務中使用Svchost.exe載入了哪些動態連結程式庫,我們可以在服務中點擊上面列出的某個服務來看看。比如我們要看Automatic Updates服務,就可以在在它上麵點擊滑鼠右鍵,看它的屬性。 同樣情況下,如果讀者還想進一步瞭解其他的那些服務是怎樣使用Svchost.exe的,可以使用與上面相同的方法來觀察一下。 聰明的讀者一眼就可以看出,Svchost.exe對於系統來說是多麼的重要了。也正是因為Svchost.exe的重要性,所以病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑用戶,達到感染、入侵、破壞的目的。

  那麼應該如何判斷到底哪個是病毒進程呢?正常的Svchost.exe檔應該存在於“C:\Windows\system32”目錄下,如果發現該檔出現在其他目錄下就要小心了。另外,駭客們為了使用Svchost.exe達到進程欺騙的目的,有可能使用一些迷惑性的名字,如將字母o變成數位0(零),這樣程式的名稱就變成了svch0st.exe了,如果不注意觀察,很容易逃過普通用戶的眼睛。 通常情況下,為了確定我們的電腦中正在運行的Svchost.exe是不是真正的系統的Svchost.exe,我們可以使用如下方法來查看。Svchost.exe檔的調用路徑可以通過“電腦管理→系統工具→系統資訊→軟體環境→正在運行任務”來查看。 這裏僅舉一例來說明。假設Windows XP系統被“w32.welchia.worm”感染了。正常的Svchost文件存在於“c:\Windows\system32”目錄下,如果發現該檔出現在其他目錄下就要小心了。“w32.welchia.worm”病毒存在於“c:\Windows\system32wins”目錄中,通過使用上面說的方法就可很容易地查看到所有的Svchost進程的執行檔路徑,一旦發現其執行路徑為不平常的位置就應該馬上進行檢測和處理。 現在我們已經搞清楚了一部分疑問,但是,我們還不知道哪個服務調用了哪個動態連結程式庫檔,是不是沒有辦法呢?如果沒有地方可以找到,那麼Windows自己又是如何知道調用哪一個呢?大家知道,Windows將所有的系統資訊和應用程式資訊都保存在了系統註冊表中,所以,我們可以在註冊表中找找看。 下面以Remote Procedure Call(RPC)服務為例,來看看Svchost進程是如何調用DLL檔的。

  在Windiws中,打開服務,然後打開“Remote Procedure Call(RPC)”屬性對話方塊,可以看到Remote Procedure Call(RPC)服務的可執行檔的路徑為“C:\WINNT\system32\Svchost -k rpcss”,這說明Remote Procedure Call(RPC)服務是依靠Svchost調用“rpcss”參數來實現的,而參數的內容則是存放在系統註冊表中的。 在運行對話方塊中輸入“regedit.exe”後回車,打開註冊表編輯器,找到“HKEY_LOCAL_MACHINE\System\currentcontrolset\services\ rpcss”項。然後,再在裏面找到類型為“reg_expand_sz”的“Imagepath”項,其鍵值為“%SystemRoot%\system32\Svchost -k rpcss”(這就是在服務視窗中看到的服務啟動命令),另外在“parameters”子項中有個名為“ServiceDll”的鍵,其值為“%SystemRoot%\system32\rpcss.dll”,其中“rpcss.dll”就是Remote Procedure Call(RPC)服務要使用的動態連結程式庫檔。這樣Svchost進程通過讀取“rpcss”服務註冊表資訊,就能啟動該服務了。 同樣情況下,如果有程式試圖蠻天過海,假借Svchost.exe來啟動自己的動態連結程式庫檔(如將木馬作成動態連結程式庫檔),那麼我們就可以從這裏找到DLL木馬的路徑,將它大白於天下。 如果要瞭解每個Svchost進程到底提供了多少系統服務,可以在Windows 2000的命令提示符視窗中輸入“tlist -s”命令來查看,該命令是Windows 2000 support tools提供的。不過,在這裏看到的效果跟服務裏面看到的是一樣的,只不過是DOS介面而已。 小知識:在Windows xp下則使用“tasklist /svc”命令會收到同樣的效果。 由於篇幅的關係,不能對Svchost全部功能進行詳細介紹,這是一個Windows中的一個特殊進程,有興趣的可參考有關技術資料進一步去瞭解它。 下面,我們通過一個實例來看一下木馬程式是如何利用Svchost.exe進行啟動的。這裏,我選擇了PortLess BackDoor V1.2來做演示,這是一個使用Svchost.exe去啟動,平時不開埠,可以進行反連接的後門程式(和小榕的BITS是同一類型的後門)。 為了看一下這個後門是如何利用Svchost.exe進行啟動的,我們在運行軟體之前,先給註冊表做一個快照,這裏我選擇了Regshot 1.61e5 final版本,並將初始快照命名為1.hiv。然後我們將Portlessinst.exe和Svchostdll.dll(不要改名)上傳到系統目錄(%winnt%\system32目錄中)。 接下來,進入命令行,使用“Portlessinst.exe -install ActiveString Password”進行安裝,這裏的ActiveString就是連接那系統打開的埠後輸入的驗證字串,這裏的密碼是使用正向連接你連接上後門打開的埠時需要輸入的密碼。比如,我輸入如下: portlessinst.exe –install smiler wind_003 這樣就安裝上去了,我們來看一下註冊表裏的變化。將1.hiv裝載進Regshot中的1st shot,然後對當前的註冊表做2st shot的快照,然後使用compare進行比較,其比較的結果如下: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\PortLess\FdsnqbTsuni`: "tjnkbu" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\PortLess\Wfttphuc: "tofiXdo" HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Security\Security: 01 00 14 80 A0 00 00 00 AC 00 00 00 14 00 00 00 30 00 00 00 02 00 1C 00 01 00 00 00 02 80 14 00 FF 01 0F 00 01 01 00 00 00 00 00 01 00 00 00 00 02 00 70 00 04 00 00 00 00 00 18 00 FD 01 02 00 01 01 00 00 00 00 00 05 12 00 00 00 63 00 6F 00 00 00 1C 00 FF 01 0F 00 01 02 00 00 00 00 00 05 20 00 00 00 20 02 00 00 6D 00 00 00 00 00 18 00 8D 01 02 00 01 01 00 00 00 00 00 05 0B 00 00 00 20 02 00 00 00 00 1C 00 FD 01 02 00 01 02 00 00 00 00 00 05 20 00 00 00 23 02 00 00 6D 00 00 00 01 01 00 00 00 00 00 05 12 00 00 00 01 01 00 00 00 00 00 05 12 00 00 00 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Parameters\ServiceDll: "C:\WINNT\system32\Svchostdll.dll" HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Parameters\program: "SvchostDLL.exe" HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Parameters\Interactive: 0x00000000 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Type: 0x00000020 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Start: 0x00000002 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\ErrorControl: 0x00000001 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\ImagePath: "%SystemRoot%\System32\Svchost.exe -k netsvcs" HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\DisplayName: "Intranet Services" HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\ObjectName: "LocalSystem" HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Security\Security: 01 00 14 80 A0 00 00 00 AC 00 00 00 14 00 00 00 30 00 00 00 02 00 1C 00 01 00 00 00 02 80 14 00 FF 01 0F 00 01 01 00 00 00 00 00 01 00 00 00 00 02 00 70 00 04 00 00 00 00 00 18 00 FD 01 02 00 01 01 00 00 00 00 00 05 12 00 00 00 63 00 6F 00 00 00 1C 00 FF 01 0F 00 01 02 00 00 00 00 00 05 20 00 00 00 20 02 00 00 6D 00 00 00 00 00 18 00 8D 01 02 00 01 01 00 00 00 00 00 05 0B 00 00 00 20 02 00 00 00 00 1C 00 FD 01 02 00 01 02 00 00 00 00 00 05 20 00 00 00 23 02 00 00 6D 00 00 00 01 01 00 00 00 00 00 05 12 00 00 00 01 01 00 00 00 00 00 05 12 00 00 00 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Parameters\ServiceDll: "C:\WINNT\system32\Svchostdll.dll" HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Parameters\program: "SvchostDLL.exe" HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Parameters\Interactive: 0x00000000 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Type: 0x00000020 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Start: 0x00000002 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\ErrorControl: 0x00000001 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\ImagePath: "%SystemRoot%\System32\Svchost.exe -k netsvcs" HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\DisplayName: "Intranet Services" HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\ObjectName: "LocalSystem" 可以看出,PortLess BackDoor V1.2將自己註冊為了服務IPRIP,它使用的啟動參數是"%SystemRoot%\System32\Svchost.exe -k netsvcs",它使用的DLL檔是"C:\WINNT\system32\Svchostdll.dll"。通過這裏,我們就可以找到 http://bbs.ccidnet.com/showthread.php?s ... did=207361

2007年10月5日星期五

071005 友情的力量

  今天逛了逛好友寫的Blog,秤子的文章引起了我高度關注...

  http://www.wretch.cc/blog/libra23023&article_id=20066482

  大剌剌的就寫了"突然...想對妳說...我愛妳...真的"

  開玩笑,這麼聳動的標題,我相信只要是他的朋友都一定會想一窺究竟,順便翻翻無聊的八卦...越往下越往下看,怎麼...好像說的是我耶沒想到...真的是

  我老實說,我真的很感動,有一個人如此的看重我,把我當作人生難逢的知己...我們一年到頭可能見不上一次,但是友情依舊,不隨歲月推移而磨滅,我感謝老天賜予我有如此豐沛的友情,感謝有這麼一個人如此信任我,如此地愛我...謝謝你...你讓我感受到了友愛,讓我感到了無比的溫馨以及幸福...我也很愛你~

  當然了,也包括我的諸多好友...謝謝你們大家,也許你們不像秤子那麼勇敢表達出來,但是我相信你們也是愛我的(好啦...如果我有自做多情的部分,也別揭穿我吧),當我感到孤單,當我為了一兩個人難過時,你們讓我看開,讓我心界放寬,讓我知道我不是寂寞一人,讓我認清不必為一些不把我當朋友的人而傷心...我愛你們,我所有的好友...

2007年7月10日星期二

070710 天使在微笑

今天在整形外科的門診,看見一對可愛的雙胞胎姊妹

  首先我看到的是妹妹,跟一般的孩子沒有兩樣,天真,活潑,調皮...不同的是,因為被火紋身的軀體,顏面部幾乎全毀,一雙可愛的手也因瘢痕收縮而扭曲畸形...

  因為病患人數多,她們在候診室玩了起來,當時我沒看到姊姊,不知道她們是雙胞胎,輪到她們時,媽媽牽著妹妹,姊姊以及爸爸也都跟了進來,也許是年紀小,妹妹不怕生,也不感到自卑,還對著我笑咪咪的.

  教授問診,仔細觀察她的傷勢,可能是老師想看看他的腕及手指關節活動程度,她感到不適而哭了起來,媽媽把她抱起來,我才發現...媽媽的手也因為被火燒傷,而扭曲不堪

  教授也觀察到了,問了情況,爸爸感慨地說,一家人...卻有三支廢手...

  因為他是工人,家境很貧窮,負擔不起龐大的醫藥費用,還好是電視台給她們了醫藥費的協助,讓妹妹得以二次手術.大人由於沒有生長發育的問題,手術可以擇期進行,而孩子不能等,隨著年齡增長,手部畸形將會越來越嚴重...

  教授安排了手術的時間,看到了一旁玩耍的姊姊,問道"是雙胞胎嗎?"

  姊妹倆同時點了點頭

  真的難以想像...在妹妹燒傷前,她的臉能有如此地漂亮,而今卻因瘢痕收縮,連呼吸都快要出現困難的徵狀.

  我拿面紙擦乾了妹妹的眼淚,她看著我停止了哭泣,笑了笑

  我彷彿看到了,天使在對我微笑......

2006年2月11日星期六

060211 我的夢想

  電話中,一位久未謀面的朋友打電話問我的近況,她突然有興致問起我來我的夢想...

  小時候,就被問過我的夢想,不論國小還是國中,這個話題都會被冷飯重炒一遍,實在讓我想忘都忘不了.

  小時候的我,負著爸媽的夢想,一個要我做律師(說我口才好,我看是因為每次都會跟他們據理力爭),一個說要我做醫生(因為說我有科學精神,其實在我印象中是每次我都從菜市場切一堆有的沒的東西回來,放在顯微鏡下,常把我媽嚇個半死).國小國中,則是為了寫作文得獎,提升老師榮譽,順便賺點稿費當零用錢.但我卻從未忘記過,我一直以來的願望就是做醫生.

  曾經有一段時間,家庭環境因素讓我被迫放棄我的夢想,曾經我灰心了,認為我一輩子都無法實現我的理想,但是當我突破了限制因素時,卻還是放下了我最大的資本-我的年紀以及與年紀不符合的社會資歷,決定繼續走我想走的路.

  這一路走來,我確實走得很辛苦,也放棄了跟我擦身而過的許多機會,但是如果現在再問我一次,我的夢想是什麼?除了當一個有醫德的好醫生外,其實我更多了一個夢想-參與國際醫療團隊,哪邊需要我,我就往哪邊去.

  這是個很艱難的夢想,要克服的現實因素比當個好醫生來得多更多,仔細想,有哪位先生能忍受自己的伴侶不在身邊,或是必須跟著她繞著地球跑?

  縱使如此,我仍會努力地繼續往前走...倘若我不幸未能完成我的夢想,至少我可以為我曾經擁有它而驕傲過!

2005年7月1日星期五

050701 幸福滋味

  約兩個禮拜前,我老爸故作神秘地跟我要了我這裡的地址,還問我這邊是不是什麼都能收,"基本上炸彈不能收外,應該是什麼都可以吧"我被搞得一頭霧水給了他我的地址.
  
  前幾天,他一直問我我東西有沒有收到,雖然不知道他到底搞什麼,但是害我也跟著緊張起來,不知道是不是什麼很重要的東西,因為寄到這裡的東西,常常會在半途中失蹤.

  昨天,接到自稱是快遞的電話,我就在住所等著.一開始以為是信,沒想到快遞給了我一個很沉的箱子.我趕緊拆開,看看我老爸葫蘆裡到底賣什麼藥.

  一拆開外包裝,一股香味撲鼻而來,一看快遞單標示的內容物居然是"醬菜",再把紙箱打開,發現三罐醬菜很小心地用保麗龍隔開,可惜的是在運送過程中,因為快遞人員的不小心,醬汁全部都溢出來了.

  我趕緊打電話回家,跟爸爸說我收到了.他交代了我一些事情後,就催促我趕緊嚐嚐味道.

  我打開了其中一罐,看到是自己最愛吃的口味,一面吃想起爸爸剛剛在電話裡跟我說的話,眼淚不禁掉了下來.

  "知道你最愛吃這個了,我就做了四罐,原本想全部都寄給你,可是紙箱裝不下,就拿了一罐給同事讓他飽飽口福"

  "可是你自己呢,你自己不留一罐吃嗎,我兩罐就夠了阿"

  "想到你愛吃,怕你吃不夠,反正我自己要吃自己可以做,可是你在那麼遠,不是說想吃就可以吃得到的.高麗菜乾我特地用雞湯煮過,然後再放辣椒跟麻油下去醃,應該不會太辣.不過我原本要用空運,沒想到快遞走陸運,這種天氣我怕悶久會壞,害我擔心你收到時味道變了"

  我想像著爸爸小心地切著高麗菜乾,細心地料理著,用愛做成一罐罐我愛吃的醬菜,不在乎累,也不在乎運費.我想像他當時的神情,揣摩他當時的心情,這小小一罐蘊含了多少愛,何其珍貴.

  幸福,就是有個人把你一直擺在心中重要的位置,默默地為你付出但不讓你知道他的辛苦.