1引言
隨著互聯(lián)網(wǎng)的飛速發(fā)展,計算機病毒技術(shù)也在不斷發(fā)展,病毒數(shù)量和類型都在不斷增多,危害也在逐漸增強。一般病毒會破壞計算機的數(shù)據(jù)信息,占用磁盤空間或搶占系統(tǒng)資源等。因此本文就病毒的多樣性來入手,用圖片和文檔來作為病毒傳播途徑,通過豌豆莢來攻擊安卓手機,在實現(xiàn)過程中體現(xiàn)了很大創(chuàng)新性和借鑒作用。
2本作品總體設(shè)計
本作品首先將惡意代碼隱藏到圖片中,將圖片通過QQ表情傳播到目標電腦,然后通過word文檔將宏病毒傳播至目標主機,宏病毒將QQ表情惡意代碼提取并運行,再操控豌豆莢對目標手機添加自己的惡意手機惡意程序,最后清理手機的相關(guān)記錄,清理PC端日志等相關(guān)記錄文件,整個攻擊過程完成。
3實現(xiàn)方案
3.1圖片隱寫與提取處理
在Matlab中實現(xiàn)了對惡意代碼的隱寫,本文用的是順序的隱寫方式,由于Matlab可以直接處理圖像矩陣,故圖像隱寫和提取較簡單。本文用LSB(最不重要位替換算法),即用加密信息替換掉所使用載體中的不重要部分,以達到對信息進行編碼的目的。使用最不重要位利用了視覺的掩蔽效應(yīng),防止在視覺上引起攻擊者的懷疑。本作品用C語言實現(xiàn)了對圖像LSB的隱寫和提取。
(1)本文所使用的算法:
a.請用戶輸入原始位圖文件名,隱寫程序產(chǎn)生的新位圖文件名和要保密的文字;b.將輸入的文字信息按位離散到一個動態(tài)數(shù)組中;c.打開原始位圖文件和隱寫位圖文件,若無法打開則退出程序;d.圖像文件的前54字節(jié)直接復(fù)制,對于后面的數(shù)據(jù),將密文數(shù)據(jù)逐個附加到該位圖文件實際位圖數(shù)據(jù)部分的每一個字節(jié)的LSB;e.關(guān)閉流文件,退出程序。
(2)提取部分
提取部分和嵌入部分作用相反,將提取出來的文件直接寫成bat文件,并用system(“***.bat”)可以使批處理文件直接運行。該算法為上面算法的逆過程,所以不做詳細介紹。
3.2計算機病毒
本文采用宏病毒傳播的方式,在宏中提供了一個AutoOpen,可以在打開文檔時候直接運行宏病毒,本文為了誘騙用戶打開文檔時啟用宏,將文檔開始顯示為亂碼,然后需要啟用宏來查看正確內(nèi)容,來誘導(dǎo)用戶啟用宏。
當惡意程序運行后,利用豌豆莢漏洞攻擊安卓手機。由于谷歌在安卓開發(fā)上,提供了一套可調(diào)試的程序和API,也就是ADB(Android Debug Bridge),豌豆莢在實現(xiàn)控制和調(diào)試安卓手機的時候需要用到ADB功能,但是豌豆莢沒有很好地封裝谷歌提供的ADB因此可以利用命令行方式訪問豌豆莢程序從而實現(xiàn)控制安卓手機。其中wandoujia_daemon.exe就是一個沒有封裝過的ADB,因此可以利用豌豆莢進行漏洞攻擊。
本文在后續(xù)清理惡意軟件所生成的軟件,包括惡意軟件自身,還有其他電腦端的時候使用的主要語言有:命令行、vbs。其中選擇命令行,是因為需要調(diào)用豌豆莢的軟件從而實現(xiàn)繞過豌豆莢來控制手機終端,而使用VBS(VBScript的進一步簡寫),是由于VBS是基于Visual Basic的腳本語言,不需要對其進行編譯,宿主(host)直接解釋源代碼并執(zhí)行。其中結(jié)束進程實現(xiàn)代碼如下:
Dim colProcessList
’以金山衛(wèi)士進程ksafetray.exe為例
Set colProcessList = objWMIService.ExecQuery(\"Select * from Win32_Process Where Name = ’Ksafetray.exe’\")
For Each objProcess in colProcessList
objProcess.Terminate( )
Next
set colProcessList = Nothing
Set WshNetwork = WScript.Createobject(\"WScript.Network\")
computername=WshNetwork.ComputerName
set fso=createobject(\"scripting.filesystemobject\")
’獲取進程并寫入生成的進程列表
Set colProcesses = objWMIService.ExecQuery (\"Select * from Win32_Process\")
dim ProcessesStr
For Each objProcess in colProcesses ’枚舉進程
ProcessesStr=ProcessesStr objProcess.Name objProcess.ProcessID vbcrlf
proc.writeline (\"進程名:\"objProcess.Name Chr(32) Chr(32) \"PID:\" objProcess.ProcessID vbclf)
Next
proc.Close
3.3手機病毒
Android是一種以Linux為基礎(chǔ)的開放源代碼操作系統(tǒng),主要使用于便攜設(shè)備。本文實現(xiàn)的病毒繞過了手機殺毒軟件360安全衛(wèi)士,本文實現(xiàn)一種簡單的病毒作為范例,即在目標手機上實現(xiàn)了發(fā)送短信,并刪除發(fā)送短信的功能,消耗用戶資費。
本文實現(xiàn)了對Android手機病毒部分的設(shè)計,其設(shè)計方案如圖。