“木馬”原理及其VB簡單實現(xiàn)分析
摘 要:簡易介紹“木馬”的危害性及種類,了解其從病毒中單獨剝離出來的原因,并通過vb程序?qū)崿F(xiàn)來詳細闡述其工作原理。
本文引用地址:http://m.butianyuan.cn/article/202124.htm關(guān)鍵詞:木馬;VB;注冊表;應(yīng)用程序
“木馬”原指古希臘士兵藏在木馬內(nèi)進入敵方城市從而占領(lǐng)敵方城市的故事。許多計算機用戶特別是新手對安全問題了解不多,所以并不知道自己的計算機中了“木馬”之后應(yīng)該如何清除。關(guān)鍵是得知道“木馬”的工作原理,在了解其原理之后,查殺木馬也就變得簡單易行了。
1 木馬分類
(1)遠程控制木馬。
遠程控制木馬是數(shù)量最多,危害最大,同時知名度也最高的一種木馬,它可以讓攻擊者完全控制被感染的計算機,攻擊者可以利用它完成一些甚至連計算機主人本身都不能順利進行的操作。
(2)密碼發(fā)送木馬。
密碼發(fā)送型的木馬是專門為了****被感染計算機上的密碼而編寫的,木馬一旦被執(zhí)行,就會自動搜索內(nèi)存,Cache,臨時文件夾以及各種敏感密碼文件,一旦搜索到有用的密碼,木馬就會利用免費的電子郵件服務(wù)將密碼發(fā)送到指定的郵箱。
(3)鍵盤記錄木馬。
這種特洛伊木馬就是記錄受害者的鍵盤敲擊并且在LOG文件里查找密碼,隨著Windows的啟動而啟動。
(4)DoS攻擊木馬。
隨著DoS攻擊越來越廣泛的應(yīng)用,被用作DoS攻擊的木馬也越來越流行起來。當(dāng)你入侵了一臺機器,給他種上DoS攻擊木馬,那么日后這臺計算機就成為你DoS攻擊的最得力助手了。
(5)FTP木馬。
這種木馬可能是最簡單的木馬了,其歷史悠久,它的惟一功能就是打開21端口,等待用戶連接?,F(xiàn)在新FTP木馬還加上了密碼功能,這樣,只有攻擊者本人才知道正確的密碼,從而進人用戶計算機。
(6)反彈端口型木馬。
反彈端口型木馬的服務(wù)端 (被控制端)使用主動端口,客戶端 (控制端)使用被動端口。木馬定時監(jiān)測控制端的存在,發(fā)現(xiàn)控制端上線立即彈出端口主動連結(jié)控制端打開的主動端口。
2 木馬的工作原理
(1)木馬的隱藏。
下面是一個用vb編輯的木馬程序,用于隱藏木馬。
程序的具體編制操作
①新建一個工程名命名為Hidden, 在工程hidden中添加模塊Modulel,應(yīng)用程序標(biāo)題也改為Hidden。
在模塊Module1中加入如下聲明:
Public Declare Function GetCurrentProcessId Lib “kernel32”
‘獲得當(dāng)前進程ID函數(shù)的聲明。
Public Declare Function RegisterServiceProcess Lib “kernel32”
‘在系統(tǒng)中注冊當(dāng)前進程ID函數(shù)的聲明。
②在Project1中新建一個窗體Form1,設(shè)置Form1的屬性:
在代碼窗口添加如下代碼:
Private Declare Function GetDriveType Lib “kernel32” Alias “GetDriveTypeA”
獲得當(dāng)前驅(qū)動器信息函數(shù)的聲明:
Private Sub Form_Load()
Dim drive_no As Long, drive_flag As Long
Dim drive_chr As String, drive_disk As String
Dim serial_no As Long, kkk As Long
Dim stemp3 As String, dflag As Boolean
Dim strlabel As String, strtype As String,strc As Long
RegisterServiceProcess GetCurrentProcessId, 1 ‘ 從系統(tǒng)中取消當(dāng)前進程:
strlabel = String(255, Chr(0))
strtype = String(255, Chr(0))
stemp3 = “用戶c盤序列號” ‘用戶C盤的序列號(十進制),讀者可根據(jù)自己情況給出。
dflag = False
For drive_no = 0 To 25
drive_disk = Chr(drive_no + 67)
drive_chr = drive_disk “:/”
drive_flag = GetDriveType(drive_chr)
If drive_flag = 3 Then
kkk = GetVolumeInformation(drive_chr, strlabel, Len(strlabel), serial_no, 0, 0, strtype,Len(strtype)) ‘通過GetVolumeInformation獲得磁盤序列號:
Select Case drive_no
Case 0
strc = serial_no
End Select
If serial_no = stemp3 Then
dflag = True
Exit For
End If
End If
Next drive_no
If drive_no = 26 And dflag = False Then ‘非法用戶
GoTo err:
End If
MsgBox (“HI,合法用戶!”)
Exit Sub
err:
MsgBox (“錯誤!你的C:盤ID號是” strc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
RegisterServiceProcess GetCurrentProcessId, 0 ‘從系統(tǒng)中取消當(dāng)前程序的進程:
End Sub
(2)木馬的啟動。
“木馬”的啟動方式有很多種,這里我們介紹幾種主要的:
①在Win.ini的[windows]字段中有啟動命令“load=”和“run=”,在一般情況下 “=”后面是空白的,如果有后跟程序,比方說是這個樣子:
run=c:/windows/file.exeload=c:/windows/file.exe
②在system.ini文件中,在[BOOT]下面有個“shell=文件名”。正確的文件名應(yīng)該是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”。
③在注冊表中的情況最復(fù)雜,通過regedit命令打開注冊表編輯器,在點擊至:“HKEY-LOCAL-MACHINE/ Software/ Microsoft/ Windows/ CurrentVersion/ Run”目錄下,查看鍵值中有沒有自己不熟悉的自動啟動文件,擴展名為EXE。
參考文獻
[1]@孫鋒. 網(wǎng)絡(luò)安全與防黑技術(shù)[M]. 北京:機械工業(yè)出版社,2004.
[2]齊鋒. Visual Basic 6.0程序設(shè)計[M]. 北京:中國鐵道出版社,2003.
評論