利用WINDOWS命名漏洞等建立的特殊文件或文件夹

来源:互联网 发布:mac painter 丙烯画笔 编辑:程序博客网 时间:2024/06/13 21:28
 

 
参考了很多文章,搜集了很多资料整理而成。

好的用途可以用来隐藏个人资料,防止误删,病毒免疫等等。
至于坏的方面,当然也可用来隐藏木马等等,就看你怎么用了。
还有一个没有搞明白,资料上也没找到,请知道的指点一下,
名称里含有"/"的文件或文件夹如何建立和删除。

下面进入正文,首先介绍几个基本的操作和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.,即文件最后有一个点.
        建立这个文件的话可以用 mdtest../  
        也可以新建一个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格式。
例如,“LinuxFaq”的目录变成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
echoCLSID={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模式才能创建,而且不是常规方式mdc:/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 /sD:/XXX/      提示是否删除,输入Y,回车。

报错,程序正被使用……。这步就是关键了打开任务管理器,结束explorer.exe进程!

再次Y,回车。然后通过任务管理器运行explorer,又见到桌面了,打开D盘看,那个文件夹不见了

如果recycled里边也有可以接着 rd /sD:/recycled 和recycle 回收站没了下次打开自己会生成 !

原创粉丝点击