郁闷 以前看过没注意看 今天翻出来了
作者: 四不象 [tabris17] 论坛用户 | 回复 收藏 |
win9x下的设备名DOS漏洞是众所周之的,其实win2000下也有类似的漏洞。 我们姑且称着个漏洞为“以设备名命名的文件夹拒绝服务漏洞”,虽然很早以前就有这个漏洞(大概 1年以前就有朋友告诉我这个漏洞的情况了),但我至今还没有从各大漏洞数据库中发现她的踪迹。 根据常识,我们知道:在windows下无法以设备名来命名文件或文件夹, 这些设备名有:aux,com1,com2,prn,con,nul。 但win2000(win xp)有个漏洞,可以让这一不可能成为可能。 我们可以尝试如下实验: 首先,你的操作系统必须是win2000或win xp, 运行cmd.exe,用"md c:/con//"命令可以建立一个和设备名con相同的目录。 你可以试着用资源管理器去打开它,一切正常,但是你要是试图在资源管理器里删除它,会发现这 根本就是徒劳。如用“del c:/aux”会提示“文件名、目录名或卷标语法不正确。” 删不掉了,怎么办?哎呀,只有格式化了,呵呵~~~,骗你的啦。其实是有办法删的,要不然我怎么 敢让你试呢?办法等会儿告诉你。 先一个个试过来"md c:/aux//","md c:/prn//","md c:/com1//","md c:/nul//",然后把这些建立好 的文件夹在资源管理器中一个个双击试试,你会发现,当试图打开以aux或com1命名的文件夹时 explorer.exe失去响应了,这正是我想达到的目的(然而,在我实验的过程中有个意外,在一次次的 explorer.exe失去响应后,竟然可以进入aux目录和com1目录,难道是explorer.exe已经“习惯”了? 但是当我注销后再次尝试就不行了,非常奇怪,而且在我以后的多次试验中就再也没有出现这种情况 了,有谁也发现这种情况告诉我一声)。 要删除它们的话一定要使用UNC路径格式,就是网上邻居的路径格式啦。 命令如下: "rd //./c:/aux" 现在你可以把文件copy到该目录下,当然不能用普通的方法,命令如下: "copy test.exe //./c:/aux/" 然后再"开始"-"运行"中运行"c:/aux/test.exe",成功了。虽然在资源管理器里是无法删除该文件了,但 是可以使用del命令删除,"del c:/aux/",提示"c:/aux/*, 是否确认 (Y/N) ? ",用"dir //./c:/aux" 命令后发现test.exe被删除了。 目录删不掉了,但文件还是能删掉,现在要试着让文件也删不掉。 同样的方法"copy text.exe //./c:/con.exe"。现在行了,这个con.exe是无法通过普通方法删掉了,只有 用"del //./c:/con.exe"才行,在命令行方式下运行"//./c:/con",可以运行这个程序了,但在开始菜单的 "运行"中却不行。只有使用命令"cmd /c //./c:/con"才行了。 不过这样会产生一个cmd的窗口,改进的方法有很多,可以利用开机脚本,也可以利用cmd.exe的autorun: 在注册表HKEY_LOCAL_MACHINE/Software/Microsoft/Command Processor/下建一字串值AutoRun,值为要 运行的.bat文件或.cmd文件的路径,如:c:/winnt/system32/auto.cmd,建立相应的文件,它的内容为: @//./c:/con 还有一种方法,这不是我原创的,就是利用windows目录长度不能超过256字节的特性,可以利用subst命令将 一长度达到256字节的目录映射为虚拟盘:"subst b: testtesttesttesttesttesttes…………………………"。 然后在虚拟出来的b:中建立一个长文件名目录"testtesttesttestte…………",然后将一可执行文件copy到该 路径下,去掉虚拟盘符映射:"subst b: /d",这样用资源管理器是无法进入该目录的,杀毒软件也无法扫描 该路径下的文件,而且在资源管理器中是无法删除该目录的,但可以使用8.3文件格式来运行该可执行文件: "c:/testte~1/testte~1/test.exe",从而达到隐藏的目的。 WHO GOD LOVES BEST DIES EARLIEST 大风起兮云飞扬,考出英语兮拿文凭,安得枪手兮过四级 ——英语枪手招募中…… |