Windows 下「能創建的文件終能被刪除」,傳統創建 autorun.inf 文件/文件夾、設置權限、創建特殊文件(con、aux、com1...)均被繞過。本文揭示利用 Linux(ext4/NTFS-3g)創建包含 Windows 非法字符(如冒號 `:`)的文件名,構建 Windows API 無法直接操作的「異構文件夾」,實現 U 盤免疫質變。
核心原理:Windows 文件命名規則 vs Linux 文件系統
- Windows 禁止文件名包含:`\ / : * ? " < > |` 及控制字符。
- Linux 允許除 `/` 和 `\0` 外任意字符,NTFS-3g 掛載時保留原生語義。
- 利用差異:在 Linux 下創建 `autorun.inf` 文件夾,內建含冒號文件(如 `2012-08-07 16:49:31.png`),Windows 下顯示亂碼/無法訪問/無法刪除/無法重命名。
進化版方案:WinHex 修改 MFT 條目,構建「雙面」文件夾
- 格式化 U 盤為 NTFS。
- Windows 下創建 `autorun.inf` 文件夾。
- Ubuntu 掛載,文件夾內創建含特殊字符文件。
- WinHex 打開分區,定位 `autorun.inf` MFT 記錄(`Position` → `Go to beginning of directory`)。
- 修改文件名為 `autorun.:nf`(含冒號),保存分區。
- 效果:Windows 顯示 `autorun.inf`(正常名),實際磁盤結構為 `autorun.:nf`(非法名),病毒嘗試刪除/重命名 `autorun.inf` 失敗(找不到目標),而合法程序仍可正常遍歷。
實測驗證
- 360、系統資源管理器、CMD `del/rmdir` 均無法刪除。
- 病毒樣本測試:無法覆蓋/刪除/重命名 autorun.inf,自動運行鏈路斷裂。
- 兼容性:正常讀寫 U 盤其他數據,不影響跨平台使用。
局限與演進
- 非銀彈:駭子可通過原始磁盤寫入、UEFI 固件級代碼、Linux Live CD 直接操作 MFT 繞過。
- 易用性門檻:需 Linux 環境+WinHex 技能,普通用戶難度高。
- 現代替代方案:Windows 7+ 默認禁用 AutoRun(僅 AutoPlay)、BitLocker To Go 加密、軟件限制策略/AppLocker 限制可執行文件來源、EDR 行為監控 USB 異常活動。
結語
「道高一尺,魔高一丈」。U 盤免疫從文件層面博弈已演進至文件系統元數據層面。企業級防護應棄用「單一技術點」,轉向「設備准入+加密+行為監控+數據防洩漏」體系化方案。