一、前言

由之前的一系列研究可以发现,为了使得“病毒”能够实现自启动,我也是煞费苦心,采取了各种方式,往往需要编写冗长的代码并且还需要掌握系统底层或注册表的很多知识才可以。而这次我打算讨论两种简单的方式,抛开代码,利用WinRAR与AutoRun.inf实现程序的自启动。采用这两种方式,在用户安全意识不高的情况是可以生效的。当然,我在这里讨论这些,最为重要的还是希望大家树立起相关的安全防范意识。

二、利用WinRAR实现程序的自启动

WinRAR可以说是我们最常用的解压缩软件了。在文件很多的情况下,利用它可以对文件进行打包,或者当文件的体积比较大的时候,利用它也可以对目标程序进行压缩,都能够实现方便携带的效果。但是很多人不知道的是,利用WinRAR,可以实现在解压后直接启动被解压的程序,那么利用这一点,就可以将我之前编写的Hacked.exe实现自启动。首先要在计算机上安装WinRAR(我的是5.10.0.0版),然后右键单击欲压缩的软件,选择“添加到压缩文件”:

图1 添加到压缩文件

接下来需要在“压缩选项”中选择“创建自解压格式压缩文件”,然后可以为新文件取个名字:

图2 设置压缩选项与文件名

选择“高级”选项卡,进入“自解压选项”:

图3 选择“自解压选项”

在“常规”选项卡中,填写解压路径,可以填写一个比较隐秘的路径,我这里为方便起见,将其解压到桌面:

图4 填写解压路径

最后在“设置”选项卡的“提取后运行”中,填写解压完以后想要运行的程序名称:

图5 填写欲运行的程序

至此所有的设置完成,可以点击“确定”生成自解压程序。这样,当用户双击这个文件后,就能够实现自解压并直接运行Hacked.exe程序。但是这里有一个问题,就是生成的这个自解压程序其实是.exe文件,而且它的图标和正常的.rar文件是不一样的,后缀和图标,十分不利于程序的隐藏。不过这两个问题不难解决。在窗口菜单栏的“工具”中,有一个“文件夹选项”,在“查看”标签下,有一个“隐藏已知文件类型的扩展名”选项:

图6 隐藏扩展名选项

如果该项打钩,说明文件的扩展名在系统中是不显示的,当然也可以在注册表中进行设定,找到HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\HideFileExt中的UnCheckedValue项,将它的值设为1,那么无论在“文件夹选项”中如何更改,文件扩展名都是无法显示的。这里先假定系统中文件的扩展名是不显示的。那么我们就在原始文件名的基础上,在其后面加上.rar,将其伪装成是rar文件。

之后就是修改文件图标,exe文件的图标还是比较容易修改的,我使用的是Resource Hacker (3.6.0.92版),可以轻松实现更改图标的功能,将我们的文件修改为和正常rar文件一样的图标,具体方法不再讨论。那么我们的伪装工作就完成了(这里我没找到rar图标,用别的图标代替):

图7 图标修改前后对比

至此,所有的工作完成,经过伪装后的自解压文件往往是难以发现异常的,所以更需我们练就一双火眼金睛。

三、利用AutoRun.inf实现程序的自启动

利用AutoRun.inf实现程序自启动的方法已经比较古老了,本来微软设置这项功能是为了让光盘或者U盘能够实现自动运行,但是却被黑客钻了空子,他们利用这项功能,当用户双击某个盘符时就能够实现恶意程序的自启动,当时也是给很多用户造成了困扰。后来微软觉得严重,就彻底封杀了这项功能。也就是说,新版操作系统的用户是不用担心的,初版的Windows XP会存在这样的问题。

实现该功能很简单,在想要实现自启动的盘符根目录下新建一个文本文档,然后将其改名为autorun.inf,双击进入并输入以下代码:

[autorun]
shell\auto\command=Hacked.exe

保存并重新启动后,当在盘符上单击鼠标右键时,所弹出的菜单会多出一个“auto”项,选择该项或者直接双击盘符,那么就会直接启动Hacked.exe程序,当然前提是该程序已经放到了该盘的根目录下。为了实现隐蔽的效果,黑客可能会将autorun.inf以及自己所编写的恶意程序的属性设置为隐藏,当然我们可以在“文件夹选项”中选择“显示所有文件和文件夹”,如图所示:


图8 隐藏文件和文件夹选项

与文件扩展名一样,这一项也可以在注册表中找到,可以直接在注册表进行设定,位于:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL,将CheckedValue的键值设置为0,这样的话,无论用户在“文件夹选项”中怎么设置,隐藏属性的文件永远是不可见的。这种方法可以和WinRAR自解压程序相配合使用,就会达到很好的效果。

四、防范方法

这里讨论了两个注册表键值,在我看来属于敏感键值,毕竟一般来说这两个键值是没必要改动的,如果被篡改了,那么就很可能是恶意程序所为,是应当特别注意的。只要这两个键值没有被改动过,那么在“文件夹选项”中就应该选中“显示所有文件和文件夹”并且取消“隐藏已知文件类型的扩展名”。对于看似压缩文件,一定要注意其扩展名是什么,如果说真的是.rar文件,那么一般就没什么好怕,就怕它是由.exe文件所伪装的。而对于隐藏文件,以我在上面所举的这个例子来说,可以在cmd中输入:

del /ah /f c:\Hacked.exe & del /ah/f c:\autorun.inf

这样就可以同时强制删除位于C盘根目录下的,属性为隐藏的Hacked.exe和autorun.inf文件。

五、小结

这次讨论了两种基本无需代码就能够实现让程序自启动的方法,主要是希望大家建立起安全防范意识,了解WinRAR可能存在的花招以及两个比较重要的注册表位置。只有我们不断地学习,不断地提高安全意识,才能够令黑客无从下手,也能够让自己对杀毒软件的依赖性不断降低。

反病毒攻防研究第004篇:利用WinRAR与AutoRun.inf实现自启动的更多相关文章

  1. 反病毒攻防研究第005篇:简单木马分析与防范part1

    一.前言 病毒与木马技术发展到今天,由于二者总是相辅相成,你中有我,我中有你,所以它们之间的界限往往已经不再那么明显,相互之间往往都会采用对方的一些技术以达到自己的目的,所以现在很多时候也就将二者直接 ...

  2. 反病毒攻防研究第006篇:简单木马分析与防范part2

    一.前言 一般来说,木马是既有客户端也有服务器端的.上次讨论的不过是一种特殊情况,毕竟不是人人都懂得DOS命令,因此现在木马的客户端也都是做成非常直观的界面形式,方便操作.本篇文章会从客户端与服务器端 ...

  3. 逆向project第004篇:令计算器程序显示汉字(下)

    一.前言 钩子技术是一项很有有用价值的技术.在Windows下HOOK技术的方法比較多,使用比較灵活,常见的应用层的HOOK方法有Inline HOOK(详见<反病毒攻防研究第012篇:利用In ...

  4. WAF攻防研究之四个层次Bypass WAF

    从架构.资源.协议和规则4个层次研究绕过WAF的技术,助于全方位提升WAF防御能力. 绕过WAF的相关技术研究是WAF攻防研究非常重要的一部分,也是最有趣的部分,所以我在写WAF攻防时先写攻击部分.还 ...

  5. [转]Android中Xposed框架篇—利用Xposed框架实现拦截系统方法

    一.前言 关于Xposed框架相信大家应该不陌生了,他是Android中Hook技术的一个著名的框架,还有一个框架是CydiaSubstrate,但是这个框架是收费的,而且个人觉得不怎么好用,而Xpo ...

  6. C#利用WinRAR实现压缩和解压缩

    using System; using Microsoft.Win32; using System.Diagnostics; using System.IO; namespace MSCL { /// ...

  7. 技术面试问题汇总第004篇:猎豹移动反病毒工程师part4

    这次所讨论的三个问题,比如DLL以及HOOK,很容易被病毒木马所利用,因此必须要比较全面地进行了解.而异常处理机制,则往往与漏洞相关联.它们自身的概念并不难理解,只是由之引申而来的问题,在计算机安全领 ...

  8. webshell在php方向的研究(精华篇)

    文章主旨:准备学习c语言,你喜欢的所有干货在文末附件里 作者宗旨:没有不想当将军的兵,没有不想提高技术的person,今天带你打开php的研究之路. 本文作者:Laimooc(原名xoanHn),个人 ...

  9. 反序列化问题的研究之java篇

    博客园很早就开通了,当时下决心要把自己的经验心得记录上去,但是却没有做到,因为一直觉得自己搞得东西可能还是比较的初级,感觉拿不出手,所以也就是只是把它记录在在印象笔记上面(三年下来,还是整理和收藏了一 ...

随机推荐

  1. while、do...while和for循环

    一.循环 1.1 定义 当满足一定条件的时候,重复执行某一段代码的操作 while和for和do...while是java中的循环 二.while循环 2.1 定义 int i = 0: 初始化值 w ...

  2. spring boot自定义类配置绑定在配置文件中自动提示

    在spring boot的日常使用中,我们可能需要使用配置绑定的方式动态配置自定义类的成员变量. 这个时候,我们在配置文件中配置spring默认已有的配置时,只需要输入部分关键字即可自动提示,如下图: ...

  3. Spring-05 使用注解开发

    Spring-05 使用注解开发 使用注解开发 1.项目准备 在spring4之后,想要使用注解形式,必须得要引入aop的包5 <!-- https://mvnrepository.com/ar ...

  4. 【测试技术分享】在Linux下安装Python3

    导语:Python在linux环境下没有安装包,同时很多系统没有Python环境,即使有Python环境也是Python2.x,顺应时代,现在开始进行安装Python3的教程. 一.安装依赖 sudo ...

  5. 如何优雅的移植JavaScript组件到Blazor

    Blazor作为一个新兴的交互式 Web UI 的框架,有其自身的优缺点,如果现有的 JavaScript 组件能移植到 Blazor,无疑让 Blazor 如虎添翼,本文就介绍一下自己在开发 Bul ...

  6. 对话对话每日互动CEO方毅:数据智能应用的过去、现在和未来每日互动CEO方毅:数据智能应用的过去、现在和未来

    2008年,大数据的概念被首次提出,麦肯锡全球研究所给出的定义是:大数据是在一种获取.存储.管理.分析方面大大超出了传统数据库软件工具能力范围的数据集合. 2014年,"数据智能" ...

  7. VS2013环境下配置OSG(3.4.0版本)

    参考链接1: http://blog.csdn.net/lonsegdi/article/details/50579439 参考链接2: http://bbs.osgchina.org/forum.p ...

  8. Java学习之String与int的相互转换

    •String 转 int 两种方式 int a = Integer.parseInt(s);int b = Integer.valueOf(s).intValue(); 代码 public clas ...

  9. shiro报错SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".和Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

    未能加载类"org.slf4j.impl.StaticLoggerBinder" 解决方案: <dependency> <groupId>org.slf4j ...

  10. 极简实用的Asp.NetCore模块化框架新增CMS模块

    简介 关于这个框架的背景,在前面我已经交代过了.不清楚的可以查看这个链接 极简实用的Asp.NetCore模块化框架决定免费开源了 在最近一段时间内,对这个框架新增了以下功能: 1.新增了CMS模块, ...