利用WINDOWS命名漏洞等建立的特殊檔案或檔案夾
參考了很多文章,搜集了很多資料整理而成。
好的用途可以用來隱藏設定檔,防止誤刪,病毒免疫等等。
至於坏的方面,當然也可用來隱藏木馬等等,就看你怎麼用了。
還有一個沒有搞明白,資料上也沒找到,請知道的指點一下,
名稱裡含有"\"的檔案或檔案夾如何建立和刪除。
下面進入本文,首先介紹幾個基本的操作和dos命令
(1)如何進入命令列視窗:,
開始---運行,或者win+R,開啟運行視窗,之後輸入cmd斷行符號;
(2)相關dos命令
/? 任何一個dos命令後加該參數表示查看協助,最常用的命令!!
md 建立檔案夾;可以建立多層目錄下的檔案夾,比如 mkdir \a\b\c\d 。
copy 複製檔案
xcopy 複製檔案和分類樹
rd 刪除檔案夾,參數/s表示刪除分類樹,即包括子檔案夾和檔案;/q表示不用確認
del 刪除檔案,可以使用萬用字元。/f強制移除唯讀檔案,/q表示不用確認
在刪除命令後面跟上.參數就可以避免Windows檢查檔案名稱的合法性,
因此可以刪除含有Windows保留字或非法名字的檔案。
dir /X 顯示為非 8dot3 檔案名稱產生的簡短名稱。
(3)以下均假設目前的目錄為在D盤根目錄,在命令列視窗輸入D:斷行符號即可
(4)UNC 路徑格式,就是網路位置的路徑格式,比如d:\temp的UNC 路徑為\\.\d:\temp
1,利用Windows以裝置命名檔案夾拒絕服務漏洞
建立以下這些名字的檔案(或檔案夾):aux、com1、com2、prn、con、nul,系統會提示無法建立。
我們可以在命令列視窗中建立,然後將檔案copy進去,這樣,檔案打不開也刪不掉。
實現過程:
切換到DOS命令列狀態;其次在MS-DOS視窗的命令列提示符下,
通過“cd”命令進入到要建立檔案夾所在的目錄,
之後在DOS命令列下再輸入字串命令“md+裝置名稱+\”,單擊斷行符號鍵後,
在指定目錄下一個名稱為裝置名稱的特殊檔案夾就出現了。
考慮到裝置檔案夾在Windows狀態下是不能被刪除的,為此善於使用裝置檔案夾,
我們有時能可以用它來儲存一些重要的資訊,以防止這些資訊被他人隨意刪除掉。
對於含有保留字的檔案,當我們發出刪除指令的時候,Windows會檢查被刪除的檔案是否有合法的路徑,如果你的檔案名稱含有Windows認為的非法字元或保留字,那麼刪除就會失敗。我們有3種方法可以刪除這類檔案:
a)採用Linux或其他非Windows的作業系統,以Linux/Unix為例,可以使用rm命令刪除.
b)使用命令列工具的一個特殊參數解決:
RD. 裝置名稱\
DEL.
c)對於檔案,如果可以使用萬用字元,那麼也可以採用萬用字元解決:
DEL PR?.*
DEL LPT?.*
d)要刪除d盤下的 aux 檔案夾,可在命令提示字元下執行:rd /s \\.\d:\aux。
再比如要刪除d盤temp檔案夾下的 nul.exe 檔,在命令提示字元下執行:del \\.\d:\temp\nul.exe 即可。
2,利用WINDOWS命名漏洞命名的檔案, 比如test.,即檔案最後有一個點.
建立這個檔案的話可以用 md test..\
也可以建立一個test,然後用WINRAR改test為test..\
這個檔案夾雙擊無法開啟,但是可以在運行視窗輸入 d:\test..\ 進入,進入後可進行檔案的各項操作。
刪除的話用 rd /s /q test..
如果test.是檔案的名字,那麼刪除要用 del /f /q test..\
3.名為空白的檔案夾.這裡所說的空名檔案夾,主要指的是檔案夾名稱為空白,具體地說就是檔案夾的名稱為空白格字元,這類特殊檔案夾不僅可以在MS-DOS視窗中被正常訪問,而且還可以在Windows視窗中被訪問到,甚至我們能藉助WinZip之類的壓縮公用程式來對其進行壓縮或解壓縮操作。
(1)建立使用 md "\test\ \"
這時可以看到D盤根目錄下的test檔案夾下多了一個沒有名字的檔案夾,雙擊可以開啟,也可以在運行中輸入D:\test\ \
可以在裡面建立檔案或者刪除檔案。
刪除用 rd "D:\test\ \"
(2)切換到DOS命令列狀態;在MS-DOS視窗的命令列提示符下,
通過“cd”命令進入到要建立空白檔案夾所在的目錄,
之後在DOS命令列下再輸入字串命令“md+空格”,緊接著按下鍵盤上的Alt功能鍵,同時在數字小鍵盤上直接輸入數字“255”,這樣一來空白字元的ASCII碼就會自動出現在“md”命令之後,單擊斷行符號鍵後,在指定目錄下一個名稱為空白的特殊檔案夾就出現了。善於使用空白檔案夾,我們有時能將一些重要的隱私資訊隱藏其中,從而實現保護隱私安全的目的。
4.長檔名或非法字元導致檔案或檔案夾無法刪除
可以暫時把路徑中某些目錄改名字,或在命令列模式下使用8.3格式。
例如,“Linux Faq”的目錄變成8.3就是“LINUXF~1”了,通過“Linuxf~1”就能進入目錄了,
此後就可以使用Del命令刪除指定檔案了。如果需要刪除目錄,則使用Rd命令。
也可以進入要刪除檔案的目錄後輸入“dir>del.bat”,把目前的目錄的檔案清單輸入到批處理命令檔案“del.bat”中,
然後修改該批命令檔案,僅保留檔案或目錄名,並在檔案或者目錄名稱前增加“del ”或者“rd”,運行批處理命令即可刪除。
(經常有rar檔案無法解壓,改個檔案名稱後就可以了)
還有一種方法,就是利用windows目錄長度不能超過256位元組的特性,可以利用subst命令將
一長度達到256位元組的目錄映射為虛擬盤:"subst b: testtesttesttesttesttesttes…………………………"。
然後在虛擬出來的b:中建立一個長檔名目錄"testtesttesttestte…………",然後將一可執行檔copy到該
路徑下,去掉虛擬盤符映射:"subst b: /d",這樣用資源管理員是無法進入該目錄的,殺毒軟體也無法掃描
該路徑下的檔案,而且在資源管理員中是無法刪除該目錄的,但可以使用8.3檔案格式來運行該可執行檔:
"c:\testte~1\testte~1\test.exe",從而達到隱藏的目的。
5.改檔案名稱,系統自身帶有很多的CLSID。用的就是它了.
eg:要隱藏的檔案名稱為 a,則把它改成 a.{CLSID} 這裡的CLSID有很多,如下只是一部分:
檔案名稱.{00020810-0000-0000-C000-000000000046} excel文檔
檔案名稱.{00020900-0000-0000-C000-000000000046} word
檔案名稱.{5ef4af3a-f726-11d0-b8a2-00c04fc309a4} 資源回收筒(滿)
這3個只是檔案夾表徵圖變了,開啟後還是隱藏不了,原形畢露:
檔案名稱.{2227a280-3aea-1069-A2de-08002b30309d} 印表機
檔案名稱.{21ec2020-3aea-1069-A2dd-08002b30309d} 控制台
檔案名稱.{208d2c60-3aea-1069-A2d7-08002b30309d} 網路位置
檔案名稱.{992cffa0-F557-101a-88ec-00dd010ccc48} 撥接
檔案名稱.{1a9ba3a0-143a-11cf-8350-444553540000} 收藏夾
比較特別,雙擊打不開,用右鍵盤第2個"開啟"就行了...
檔案名稱.{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} 該名之後目錄為空白
檔案名稱.{645FF040-5081-101B-9F08-00AA002F954E} 資源回收筒(空)
檔案名稱.{20D04FE0-3AEA-1069-A2D8-08002B30309D} 我的電腦
這一辦法也是比較普通的...
或者在需要隱藏的檔案夾裡建立desktop.ini檔案也可以達到效果,
把這個批處理儲存為.bat檔案,在要隱藏的檔案裡執行就可以了:
@echo off
echo [.ShellClassInfo]>desktop.ini
echo CLSID={645FF040-5081-101B-9F08-00AA002F954E}>>desktop.ini
REM 改進後有些地方如有空格的地方也可以用所以加上"號
attrib +s +h "%cd%"
rem 其實只要將上面加上隱藏就可以了不用將下面這行隱藏
attrib +s +h desktop.ini
echo cacls %cd% /t /c /e /g %username%:f>..\恢複隱藏.bat
echo attrib -s -h %cd%>>..\恢複隱藏.bat
cacls %cd% /t /c /e /p %username%:n
原理就是同上面的重新命名差不多...
======================================================
一個具體的例子,引用別人的:
最近使用了一款名叫 E-檔案夾加密大師,網上有強人用winrar也把它破了,在這就不說了
該軟體利用的是windows的一個檔案名稱漏洞,即windows不能刪除com1.……和以“.”最後等命名的檔案夾(這種檔案夾名字只有在dos 模式才能建立,而且不是常規方式md c:\xxx..\ 注意最後的"\"。com1檔案夾的建立方法,"md \\.\c:\com1",刪除輸入"rd \\.\c:\com1";)。即,這哪是加密 只是簡單得把“加密”的檔案或檔案夾放到以著種名字命名的檔案夾下面
不小心把加密資料刪除掉了,資料沒了好辦,用finaldata開啟那個假的資源回收筒就有了。可是
留下個隱藏的Th…….db檔案夾,開啟後是-sys檔案夾-然後是com1.{21ec2020-3aea-1069-a2dd-08002b30309d}檔案夾,該檔案夾用的是控制台的表徵圖。(因為{}中的windows中的地址
印表機.{2227A280-3AEA-1069-A2DE-08002B30309D}
控制台.{21EC2020-3AEA-1069-A2DD-08002B30309D}
我的電腦.{20D04FE0-3AEA-1069-A2D8-08002B30309D}
資源回收筒.{645FF040-5081-101B-9F08-00AA002F954E}
於是雙擊該檔案夾便開啟了控制台,但地址欄中顯示的是該com1.{21ec2020-3aea-1069-a2dd-08002b30309d}檔案夾的地址。
1、 com1.{21ec2020-3aea-1069-a2dd-08002b30309d}這個檔案夾是關鍵,利用了一個WINDOWS的漏洞,即使用AUX,COM1,COM2,PRN,CON,NUL為檔案名稱建立的檔案(夾),即不能開啟也不能刪除。所以程式會將待加密的檔案複製到此檔案夾中,使其無法訪問和刪除,此其一;
2、在最後一級目錄中有一個檔案錄名稱為《 XXX.》,請注意檔案名稱後的《.》,當建立的檔案夾名稱包含這個小點後,同樣,該檔案錄即不能開啟,也不能刪除,LZ把它放在這裡應該是為了保險起見,或者出於其它目的,俺還不太確定,此其二;
3、 com1.{21ec2020-3aea-1069-a2dd-08002b30309d}裡{}內的ID為控制台,RECYCLED為程式自動建立的檔案夾,中有desktop.ini檔案以及{645FF040-5081-XXXX-9F08-00AA002F954E}檔案夾,其作用都是為了將檔案錄偽裝成資源回收筒,此其三。
知道了原理只能算是半途,因為刪除會報錯windows中刪除會出現地址不存在的錯誤
而DOS下 rd d:\ XXX\com1.{21ec2020-3aea-1069-a2dd-08002b30309d} 也不行
然後是rd D:\XXX\ 目錄非空,不行。接著用 rd /s D:\XXX\ 提示是否刪除,輸入Y,斷行符號。
報錯,程式正被使用……。這步就是關鍵了開啟工作管理員 ,結束explorer.exe進程!
再次Y,斷行符號。然後通過工作管理員運行 explorer,又見到案頭了,開啟D盤看,那個檔案夾不見了
如果recycled裡邊也有可以接著 rd /s D:\recycled 和recycle 資源回收筒沒了下次開啟自己會產生 !
原文串連:擇日補上。