分享

U盘防御

 yaoqian0907 2012-05-10
先谈杂七杂八的免疫方法:在磁盘下建立一个autorun.inf文件,将属性设置为只读,隐藏。防止被覆盖.....不知道是谁想出来的,没什么可操作性!!再者就是在组策略里设置关闭驱动器的自启动,一样没什么技术含量,恶意软件作者之需要几行操作注册表的代码就让这个方法毫无价值。

再谈第1代免疫方法:

让我们看看是怎么实现的吧。
  1.       md c:\autorun.inf
  2.       rd   c:\autorun.inf
  3.       attrib c:\autorun.inf +s +h +r
  4.       cacls c:\autorun.inf /d everyone
复制代码
目的是用命名autorun.inf文件夹并加上只读,隐藏,系统属性来防止生成autorun.inf文件,但是很快被恶意软件制作者发现,并以用代码进行反免疫!!!

接下来是第2代免疫方法

第2代说白了就是所谓的人们传为圣经的系统文件命名漏洞的利用方法。
看看是如何实现的。
  1.       md c:\autorun.inf\dxl..\
  2.       md c:\autorun.inf\" \"
复制代码
但是由于用的人多了所以被恶意软件作者关注,于有了下面的反免疫代码:
  1. @echo off
  2. echo +++++++++++++++++++++++++++++++++++++
  3. echo +++++++++搞定免疫中++++++++++++++++++
  4. echo +++++++++++++++++++++++++++++++++++++
  5. del dxl.txt>nul
  6. for %%i in (d e f g h i j k l m n o p q r s t u v w x y z) do (fsutil fsinfo drivetype %%i:|findstr "可移动"&&echo %%i>>a132.txt)
  7. for /f %%i in (a132.txt) do attrib -r -a -s -h %%i:\autorun.inf>nul
  8. for /f %%i in (a132.txt) do rd %%i:\autorun.inf /s /q>nul
  9. del dxl.txt
  10. @pause
复制代码
代码的原理就不说了,自己看吧

第3代免疫

由于上面的代码,牛人们又想出了不能简单删除的文件或者文件夹来保护autorun.inf文件夹
这些技巧只在少数人群内传播,我今天就放出来。


文件命名是不允许使用一些特殊的字符,这大家都知道,可你知道,上面的这些限制被解除了吗……   从DOS时代过来的朋友都知 道,“8.3”式的文件名(目录名)是不允许使用一些特殊的字符如?、\、*、>、<等以及DOS的保留字(如con、aux、com1、 lpt1、prn和nul)的。进入Windows时代,“目录”改称“文件夹”,文件名的长度也大大增加,长文件名极大的方便了我们的操作。

Snap1.jpg



如何建立这些文件或者是文件夹呢?
实现如下:
  1. md com1\
  2. md nul\
复制代码
等等........

注意,建立了后,这些文件夹是无法删除的!!!

Snap3.jpg


Snap2.jpg


Snap4.jpg


在谈下如何建立这些带有特殊字符的文件。实现方法如下:

首先建立一个dxl.txt然后运行下面的代码:
  1. copy c:\dxl.txt \\.\c:\com1
复制代码
Snap5.jpg



Snap6.jpg



第N代免疫方法

主流的方法就上面的了,但是棋差一着的就是autorun.inf文件夹是可以被任意更改的,要是被重命名了上面的方法就没有什么意义了。怎么办呢?呵呵,让我们来展望下吧。

1.软件实现新思路,USB Vaccination这软件的特色是能在FAT/FAT32格式的移动盘中建立一个空白autorun.inf,无修改权限和删除权限,在技术上是怎么样实现的,此公司还没有透露.....(自己也想不通,难道非要用逆向工程了么?反正现在没这个实力,看以后吧)

2.修改shell32.dll文件
这里对这个技术很有必要说明一下,比较的有意思。
我们先来了解下shell32.dll是什么东东吧

DLL 文件:
  shell32 - shell32.dll - DLL文件信息
  DLL 文件: shell32 或者 shell32.dll
  DLL 名称: Microsoft Windows Shell Library(微软视窗外壳要求生效的命令代码集合)
  描述:
  shell32.dll是Windows的32位外壳动态链接库文件,用于打开网页和文件,建立文件时的默认文件名的设置等大量功能。
  严格来讲,它只是代码的合集,真正执行这些功能的是操作系统的相关程序,dll文件只是根据设置调用这些程序的相关功能罢了。
  属于: Microsoft Windows Shell (微软视窗外壳)
  系统 DLL(动态连接库)文件: 是


Explorer.exe有调用这个文件,作者的思路就是擦除进程Explorer中的Shell32.dll模块中的特定内存字符串可以做到U盘自动执行的动态免疫。这样就一劳永逸了。这也就是指明autorun.inf就是在shell32.dll的设定下运行的,只要删除了和autorun有关的字符串就可以达到免疫的效果。

用IDA打shell32.dll文件

关键代码如下:

Snap11.jpg





  1. 7CA8F27F Push
复制代码
的地址中Autorun.Inf抹掉[注意是Unicode编码],当然也可以修改成你喜欢的自动执行名字.比如dxl.inf等

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多