《LPK劫持者》
“.exe”可執行程序曾遭“威金”病毒的洗劫,導致全盤應用程序被病毒惡意捆綁感染,中了此毒很是麻煩、無奈,而且擁有數百個變種,相信大家對這類蠕蟲病毒並不陌生。然而,一直被“.exe”可執行程序加載的“.dll”動態鏈接庫程序也難逃厄運。
近日,我在互聯網上捕捉到了一個既全盤感染“.exe”可執行程序又全盤劫持“.dll”動態鏈接庫程序的木馬病毒,這就是“LPK劫持者”木馬。首次發現時間是2010年12月初,不過直到2011年2月份左右這個木馬才正式活躍了起來。
該木馬全盤劫持“.dll”動態鏈接庫程序是不是和全盤感染“.exe”可執行程序的方式是否一樣呢?請看下文。
《“LPK劫持者”全盤破壞“.exe”可執行程序和惡意劫持動態鏈接庫程序“lpk.dll”》
病毒名稱:“LPK劫持者”木馬;
病毒別稱(江民科技):“通犯”變種rnn;
病毒類型:木馬;
病毒長度:133,120 字節;
病毒 MD5:7e6a61267592dd8afb9e2799b23f7cbd
危害等級:★★★★☆
感染系統:Windows 系統;
病毒樣本:
附上“LPK劫持者”的木馬樣本,請在下載后24小時內刪除。木馬樣本僅供學習參考使用,不得破壞他人計算機等非法用途,如有后果請自負,本人不承擔任何法律責任! 附件:“LPK劫持者”木馬樣本.rar
“LPK劫持者”木馬入侵受害者計算機后,首先會給自己創建主體程序和隨機啟動的服務項。木馬主體程序是一個隨機命名的程序“fwpfsp.exe”,它被創建到“C:\WINDOWS\system32”系統目錄下,木馬程序的圖標竟然偽裝《360安全衛士》的主程序圖標,真不要臉啊。
然后在“C:\WINDOWS\system32”系統目錄下再創建兩個木馬動態鏈接庫程序“hra32.dll”和“hra33.dll”,然后將它們插入到木馬主體進程“fwpfsp.exe”去運行。
給木馬主體程序“fwpfsp.exe”創建一個隨機命名的服務項來隨機自動啟動,本次測試創建的木馬服務項的名稱是“Nationalkdu”。
之后“LPK劫持者”木馬將自身“fwpfsp.exe”復制到用戶臨時文件“C:\Documents and Settings\Administrator(受害者的用戶名)\Local Settings\Temp”目錄下並重命名為“hrl*.tmp”,再調入到內存中去運行。“hrl*.tmp”運行后,會彈出標題名為“AntiVirus”的窗體,內存中有幾個“hrl*.tmp”運行就會彈出幾個來。“AntiVirus”英文翻譯過來是“殺毒軟件”的意思,由於該木馬本來模仿的就是《360安全衛士》的主程序圖標。所以懂英語的受害者在不知情的情況下,還以為這是《360安全衛士》的彈窗。
PS:
“*”代表數字依次按照數學順序排列,例如“hrl1.tmp”、“hrl2.tmp”、“hrl3.tmp”……
由於受害者每次重啟計算機后,隨機啟動的木馬服務運行木馬主體程序“fwpfsp.exe”之后,都會將自身“fwpfsp.exe”復制到用戶臨時文件“C:\Documents and Settings\Administrator(受害者的用戶名)\Local Settings\Temp”目錄下並按照數學順序將其重命名為“hrl*.tmp”再去執行它們,然后“hrl*.tmp”運行后便會結束木馬的主體進程“fwpfsp.exe”。想到這,各位也都應該明白了為什么“LPK劫持者”木馬會創建“hrl*.tmp”來運行自己了。
一般每次重啟計算機后“LPK劫持者”木馬都會調用兩個“hrl*.tmp”到內存中去運行,例如受害者本次重啟計算機后檢測到上次創建的兩個病毒程序“hrl1.tmp”和“hel2.tmp”,那么第二次創建的兩個病毒程序就是“hrl3.tmp”和“hrl4.tmp”。所以長時間未清理臨時文件的情況下,日積月累,用戶臨時文件的文件夾目錄下會出現大量的“hrl*.tmp,占用硬盤空間。
“LPK劫持者”木馬程序“hrl*.tmp”運行后,會開啟“8090”端口連接黑客服務器將用戶隱私信息發送給黑客,而且隨時接受黑客的命令下載其它的病毒和木馬,在“命令提示符”里面輸入DOS命令“NETSTAT /A /N”查看木馬開啟的端口和連接黑客服務器的IP地址。
還會破壞受害者的計算機,最明顯的破壞行為就是全盤破壞“.exe”可執行程序和全盤惡意劫持動態鏈接庫程序“lpk.dll”。
調用 MS-DOS 操作系統 程序“fine.exe”使用DOS命令全盤查找擴展名為“.exe”的可執行程序程序,在系統臨時文件“C:\WINDOWS\Temp”目錄下創建一個名稱為“IRA***.tmp”的文件夾,“***”為隨機數字,本次文件名是“IRA910.tmp”。然后將找到后的“.exe”可執行程序復制到該文件夾目錄下,對其注入惡意代碼,再把已注入惡意代碼的“.exe”可執行程序放回原有目錄下覆蓋正常的“.exe”可執行程序。
通過《eXeScope》這個軟件工具查看對比一下某個應用軟件的主程序“.exe”被“LPK劫持者”木馬破壞的前后!很明顯,被“LPK劫持者”木馬破壞的“.exe”可執行程序都被惡意添加了一個名稱為“.adate”的段。
並在這些“.exe”可執行程序的當前目錄下創建一個名稱為“lpk.dll”的木馬動態鏈接庫程序。為什么在每個應用程序的文件夾目錄下創建一個木馬的“lpk.dll”呢?這就是“DLL劫持”技術。
因為“LPK劫持者”木馬利用了 Windows 系統 的運行規則,將眾多應用程序運行時需要加載的系統動態鏈接庫程序“lpk.dll”偽裝創建在這些應用程序的安裝目錄下。如果在運行某個程序時,這個程序存在“DLL劫持漏洞”,也就是沒有設計“lpk.dll”動態鏈接庫程序的指定系統加載路徑:“%SystemRoot%\system32\lpk.dll”,那么 Windows 操作系統 的默認搜索方式會先將當前目錄下木馬的動態鏈接庫程序“lpk.dll”插入到進程中運行,再去“C:\WINDOWS\system32”系統目錄下搜索系統的動態鏈接庫程序“lpk.dll”插入到進程中運行。
這是 Windows 操作系統 DLL動態鏈接庫程序的加載順序:“1.應用程序所在目錄 =》2.當前工作目錄 =》3.系統目錄 =》4.Windows目錄 =》5.環境變量指定的目錄”。
“LPK劫持者”木馬在每個應用程序的安裝目錄下都創建了木馬動態鏈接庫程序“lpk.dll”,也就是說全盤哪個文件夾目錄下存在“.exe”可執行程序就存在木馬動態鏈接庫程序。“lpk.dll”文件屬性均為“只讀”、“系統”和“隱藏”的文件屬性,文件大小均是“130 KB”。也就是說,感染“LPK劫持者”木馬計算機只要打開某個應用軟件就會重新釋放“LPK劫持者”木馬。
“LPK劫持者”木馬除了全盤劫持“lpk.dll”動態鏈接庫程序之外,還會調用 MS-DOS 操作系統 程序“fine.exe”使用DOS命令全盤查找擴展名為“.rar”和“.zip”壓縮文件,在系統臨時文件“C:\WINDOWS\Temp”目錄下創建一個名稱為“IRA***.tmp”的文件夾,“***”為隨機數字,本次文件名是“IRA818.tmp”。並向壓縮包內惡意添加木馬動態鏈接庫程序“lpk.dll”,就是惡意利用《WinRAR》壓縮軟件的“rar.exe”將木馬動態鏈接庫程序“lpk.dll”壓縮添加到“.rar”和“.zip”壓縮文件中,這也解釋了為什么感染“LPK劫持者”木馬后會出現大量的“rar.exe”進程。然后將已被惡意添加木馬動態鏈接庫程序“lpk.dll”的“.rar”和“.zip”壓縮文件放回原有目錄下覆蓋正常的“.rar”或“.zip”壓縮文件。這樣以后受害者解壓縮某些應用軟件的同時也會把“lpk.dll”一起解壓縮出來,再運行這個軟件后同樣會重新釋放“LPK劫持者”木馬。
這是感染“LPK劫持者”木馬后的“任務管理器”進程截圖,會出現大量的“fine.exe”和“cmd.exe”還有“hrl*.tmp”進程。
被“LPK劫持者”木馬全盤感染的“.exe”可執行程序並不是像“威金”病毒那樣將自身捆綁到程序中運行后會重新釋放病毒,而是注入一種破壞命令代碼,就是諾在當前目錄下檢測不到木馬動態鏈接庫程序“lpk.dll”就不運行。所以,當把木馬在某些應用軟件安裝目錄下惡意添加的木馬動態鏈接庫“lpk.dll”刪掉后,這個應用軟件的主程序“.exe”打開后將不運行-----無響應。
《“LPK劫持者”木馬解決方案》
第一步:
由於“LPK劫持者”木馬在系統目錄下都惡意添加了“lpk.dll”劫持,造成了運行某些系統工具都有可能程序釋放“LPK劫持者”木馬。例如在“C:\WINDOWS”系統目錄下就惡意添加了木馬動態鏈接庫程序“lpk.dll”,所以默認隨機啟動運行的“explorer.exe”就會重新釋放“LPK劫持者”木馬,可以說“explorer.exe”反面上來講也就變成了“LPK劫持者”木馬的開機啟動項。系統程序“explorer.exe”只是一個例子,如果受害者的計算機設置了多款應用軟件隨機自動運行,那么這些應用軟件反面上來講就都成了“LPK劫持者”木馬的開機啟動項。
這怎么辦?不用怕,微軟提供了指定“DLL劫持”的防范措施。
開始菜單-----運行 輸入:“regedit.exe”(雙引號去掉),調出“注冊表編輯器”。依次展開至分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs”,可以看到子項“KnownDLLs”分支下有多個系統動態鏈接庫程序。
鼠標右鍵子項“KnownDLLs”菜單中選擇“新建(N)”-----“字符串值(S)”,將其命名為“lpk”,“數值數據”設置為“lpk.dll”,確定。
退出“注冊表編輯器”,務必重啟一下計算機。
這樣,一些需要加載“lpk.dll”的應用程序運行時會從系統目錄下查找“lpk.dll”並加載,而不再會因為 Windows 操作系統 DLL動態鏈接庫程序的加載順序從當前目錄下查找“lpk.dll”並加載了。
利用這個方法也可以防止其它“.dll”動態鏈接庫程序遭“DLL劫持”!例如2009年初發現的“貓癬”木馬同2010年末發現的“LPK劫持者”木馬的行為一樣,只不過該木馬是全盤劫持動態鏈接庫程序“usp10.dll”,導致當初重裝系統也無法解決“貓癬”木馬。為了防止“貓癬”木馬通過全盤劫持“usp10.dll”死灰復燃,可以在注冊表分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs”下添加一個名稱為“usp10.dll”的鍵值項。
PS:
采用內核 Windows NT 5.1 系列的操作系統默認情況下只有少數關鍵的“.dll”系統動態鏈接庫程序在此子項下,而自從 Windows Vista 操作系統下采用 NT 6.1 內核的 Windows 7.0 操作系統下面此子項已經相當齊全,所以在 Windows 7.0 操作系統下發生“DLL劫持”的概率要比 Windows NT/2000/XP 操作系統下要小很多。
如圖,這是 Windows 7.0 操作系統的注冊表分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs”右側窗口截圖。
第二步:
按“Ctrl + Alt + Del”鍵調出“任務管理器”,在里面結束“fwpfsp.exe”(不存在就跳過此步驟)和“hrl*.tmp”一系列的木馬進程,“*”代表數字。
第三步:
使用《超級兔子》或者《Windows 優化大師》清理系統臨時文件,主要目的是一鍵刪除“LPK劫持者”木馬在用戶臨時文件“C:\Documents and Settings\Administrator(受害者的用戶名)\Local Settings\Temp”目錄下創建的所有名稱為“hrl*.tmp”的一系列木馬程序,“*”代表數字。
刪除“C:\WINDOWS\system32”系統目錄下的木馬主體程序“fwpfsp.exe”。
刪除木馬服務項,開始菜單-----運行 輸入:“regedit.exe”(雙引號去掉),調出“注冊表編輯器”。依次展開至“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root”分支下面找到名稱為“LEGACY_NATIONALKDU”的子項,鼠標右鍵子項“LEGACY_NATIONALKDU”菜單中選擇“刪除(D)”。這時,刪除子項“LEGACY_NATIONALKDU”會彈出“刪除項時出錯”的對話框。
這是因為這個注冊表分支在“權限”上被限制了只能訪問而不能刪除的操作。鼠標右鍵子項“LEGACY_NATIONALKDU”菜單中選擇“權限(P)...”。
安全……把子項“LEGACY_NATIONALKDU”下面所有用戶權限的“完全控制”打上勾,確定,再刪除子項“LEGACY_NATIONALKDU”。
返回注冊表五大預定義項,重新依次展開至“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”分支下面找到名稱為“Nationalkdu”的子項,鼠標右鍵子項“Nationalkdu”菜單中選擇“刪除(D)”。如圖,可以很清楚看到木馬服務項“Nationalkdu”指向“C:\WINDOWS\system32”系統目錄下的木馬主體程序“fwpfsp.exe”。
退出“注冊表編輯器”,務必重啟一下計算機。
第四步:
“LPK劫持者”木馬在每個應用程序安裝目錄下都惡意添加創建的木馬動態鏈接庫程序“lpk.dll”,怎么辦?一個一個刪除豈不是太麻煩?干脆有人全盤格式化重裝系統了。
千萬不要全盤格式化重裝系統,使用一個DOS命令就能徹底地全盤刪除“LPK劫持者”木馬在全盤應用程序安裝目錄下以及其子目錄下惡意添加創建的木馬動態鏈接庫程序“lpk.dll”。
開始菜單----運行 輸入:“cmd.exe”(雙引號去掉),在“命令提示符”的黑色窗口里面輸入DOS命令:DEL /F /S /A /Q *:\lpk.dll
PS:
“*”代表驅動器磁盤分區的盤符,上面的截圖是刪除“LPK劫持者”木馬在C盤所有文件夾目錄下惡意添加創建的“lpk.dll”,有幾個驅動器磁盤分區就按照上述方法做幾次。例如刪除“LPK劫持者”木馬在D、E、F盤所有文件夾目錄下惡意添加創建的“lpk.dll”,可以分別輸入DOS命令“DEL /F /S /A /Q D:\lpk.dll”、“DEL /F /S /A /Q E:\lpk.dll”、“DEL /F /S /A /Q F:\lpk.dll”(雙引號去掉)。
“LPK劫持者”木馬並沒有惡意替換“C:\WINDOWS\system32”系統目錄下正常的系統動態鏈接庫程序“lpk.dll”,那么使用DOS命令刪除會不會也把“C:\WINDOWS\system32”系統目錄下的正常的系統動態鏈接庫程序“lpk.dll”刪除掉呢?不用擔心,因為系統動態鏈接庫程序“lpk.dll”是某些系統服務啟動后需要加載的重要文件之一,由於正在被這些系統服務調用運行中,所以刪除時會提示“拒絕訪問”。
第五步:
除了系統目錄下一些系統程序“.exe”未被“LPK劫持者”木馬破壞之外,其它被木馬破壞的“.exe”可執行程序可以通過覆蓋重裝這些應用軟件即可解決問題。目前還沒有一款殺毒軟件能把“LPK劫持者”木馬在“.exe”可執行程序中注入的惡意代碼剝離出來,不知道《卡巴斯基》能不能恢復被破壞的“.exe”可執行程序,可以先試試。