一、前言

由之前的一系列研究可以发现,为了使得“病毒”能够实现自启动,我也是煞费苦心,采取了各种方式,往往需要编写冗长的代码并且还需要掌握系统底层或注册表的很多知识才可以。而这次我打算讨论两种简单的方式,抛开代码,利用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. 【转载】快速理解android View的测量onMeasure()与MeasureSpec

    笔者之前有一篇文章已经使用onMeasure()解决了listview与scollview的显示冲突问题,博客地址如下: onMeasure简单方法 完美解决ListView与ScollView冲突问 ...

  2. [个人总结]pytorch中model.eval()会对哪些函数有影响?

    来源于知乎:pytorch中model.eval()会对哪些函数有影响? - 蔺笑天的回答 - 知乎 https://www.zhihu.com/question/363144860/answer/9 ...

  3. 人脸识别分析小Demo

    人脸识别分析 调用 腾讯AI人脸识别接口 测试应用 纯py文件测试照片 # -*- coding: utf-8 -*- import json from tencentcloud.common imp ...

  4. FreeBSD 日常应用

    freebsd日常应用 办公libreoffice或者apache openoffice 设计 图像编辑:gimp 矢量图设计:lnkscape 视频剪辑:openshot 视频特效:natron 编 ...

  5. Maven配置ali镜像

    Maven目录,Conf文件夹下settings.xml 找到mirrors节点 添加配置 <mirror> <id>alimaven</id> <mirro ...

  6. Flink实时计算topN热榜

    TopN的常见应用场景,最热商品购买量,最高人气作者的阅读量等等. 1. 用到的知识点 Flink创建kafka数据源: 基于 EventTime 处理,如何指定 Watermark: Flink中的 ...

  7. P3387 【模板】缩点 题解 (Tarjan)

    题目链接 P3387 [模板]缩点 解题思路 这几天搞图论,好有趣hhh,多写几篇博客. 上次学\(Tarjan\)求割点,这次缩点. 思路大概是多一个栈和染色的步骤,每次\(Tarjan\)的时候把 ...

  8. 「CTSC 2013」组合子逻辑

    Tag 堆,贪心 Description 给出一个数列 \(n\) 个数,一开始有一个括号包含 \([1,n]\),你需要加一些括号,使得每个括号(包括一开始的)所包含的元素个数 \(\leq\) 这 ...

  9. 设计模式之建造者模式(BuilderPattern)

    一.意义 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 说明:复杂对象的构建,比如一个对象有几十个成员属性,那么我们在创建这个对象,并给成员属性赋值时,就会很麻烦.采用 ...

  10. mongodb安装及常见命令操作

    Mongodb是一个介于关系数据库和非关系数据库之间的产品(Nosql),是非关系数据库当中功能最丰富,最像关系数据库的,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自 ...