反病毒攻防研究第004篇:利用WinRAR与AutoRun.inf实现自启动
一、前言
由之前的一系列研究可以发现,为了使得“病毒”能够实现自启动,我也是煞费苦心,采取了各种方式,往往需要编写冗长的代码并且还需要掌握系统底层或注册表的很多知识才可以。而这次我打算讨论两种简单的方式,抛开代码,利用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以及自己所编写的恶意程序的属性设置为隐藏,当然我们可以在“文件夹选项”中选择“显示所有文件和文件夹”,如图所示:
与文件扩展名一样,这一项也可以在注册表中找到,可以直接在注册表进行设定,位于: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实现自启动的更多相关文章
- 反病毒攻防研究第005篇:简单木马分析与防范part1
一.前言 病毒与木马技术发展到今天,由于二者总是相辅相成,你中有我,我中有你,所以它们之间的界限往往已经不再那么明显,相互之间往往都会采用对方的一些技术以达到自己的目的,所以现在很多时候也就将二者直接 ...
- 反病毒攻防研究第006篇:简单木马分析与防范part2
一.前言 一般来说,木马是既有客户端也有服务器端的.上次讨论的不过是一种特殊情况,毕竟不是人人都懂得DOS命令,因此现在木马的客户端也都是做成非常直观的界面形式,方便操作.本篇文章会从客户端与服务器端 ...
- 逆向project第004篇:令计算器程序显示汉字(下)
一.前言 钩子技术是一项很有有用价值的技术.在Windows下HOOK技术的方法比較多,使用比較灵活,常见的应用层的HOOK方法有Inline HOOK(详见<反病毒攻防研究第012篇:利用In ...
- WAF攻防研究之四个层次Bypass WAF
从架构.资源.协议和规则4个层次研究绕过WAF的技术,助于全方位提升WAF防御能力. 绕过WAF的相关技术研究是WAF攻防研究非常重要的一部分,也是最有趣的部分,所以我在写WAF攻防时先写攻击部分.还 ...
- [转]Android中Xposed框架篇—利用Xposed框架实现拦截系统方法
一.前言 关于Xposed框架相信大家应该不陌生了,他是Android中Hook技术的一个著名的框架,还有一个框架是CydiaSubstrate,但是这个框架是收费的,而且个人觉得不怎么好用,而Xpo ...
- C#利用WinRAR实现压缩和解压缩
using System; using Microsoft.Win32; using System.Diagnostics; using System.IO; namespace MSCL { /// ...
- 技术面试问题汇总第004篇:猎豹移动反病毒工程师part4
这次所讨论的三个问题,比如DLL以及HOOK,很容易被病毒木马所利用,因此必须要比较全面地进行了解.而异常处理机制,则往往与漏洞相关联.它们自身的概念并不难理解,只是由之引申而来的问题,在计算机安全领 ...
- webshell在php方向的研究(精华篇)
文章主旨:准备学习c语言,你喜欢的所有干货在文末附件里 作者宗旨:没有不想当将军的兵,没有不想提高技术的person,今天带你打开php的研究之路. 本文作者:Laimooc(原名xoanHn),个人 ...
- 反序列化问题的研究之java篇
博客园很早就开通了,当时下决心要把自己的经验心得记录上去,但是却没有做到,因为一直觉得自己搞得东西可能还是比较的初级,感觉拿不出手,所以也就是只是把它记录在在印象笔记上面(三年下来,还是整理和收藏了一 ...
随机推荐
- Pyqt5——带图标的表格(Model/View)
需求:表格中第一列内容为学生学号,为了突出学号的表示,在第一列的学号旁增加学号图标. 实现:(1)使用Qt的model-view模式生成表格视图. (2)重写代理(QAbstractItemDeleg ...
- Linux添加普通权限账号并授予root权限
命令创建账号和密码 adduser Mysticbinary #添加一个Mysticbinary用户 passwd Mysticbinary # 输入密码 授予可以切换root的权限 修改/etc/s ...
- 《C++ Primer》笔记 第4章 表达式
C++的表达式要不然是右值(right-value or read-value),要不然就是左值(left-value or location-value). 当一个对象被用作右值的时候,用的是对象的 ...
- 『力荐汇总』这些 VS Code 快捷键太好用,忍不住录了这34张gif动图
之前写过三篇文章,收获了极其不错的阅读量与转发量: 你真的会用 VS Code 的 Ctrl.Shift和Alt吗?高效易用的快捷键:多光标.跳转引用等轻松搞定 VS Code 中的 Vim 操作 | ...
- Java基础:特性write once;run anywhere!
三高:高可用 高性能 高并发 特性: 简单性 面向对象:万物皆为对象 可移植性 高性能 分布式 动态性 多线程 安全性 健壮性 Java三大版本 javaSE:标准版(桌面程序,控制台) javaME ...
- 基础篇:java.security框架之签名、加密、摘要及证书
前言 和前端进行数据交互时或者和第三方商家对接时,需要对隐私数据进行加密.单向加密,对称加密,非对称加密,其对应的算法也各式各样.java提供了统一的框架来规范(java.security)安全加密这 ...
- Go语言学习笔记——在本地建立一个官网查看
命令行内运行 godoc -http=:8080 运行完成后打开浏览器输入网址:http://localhost:8080能看到一个和官网一模一样的网站,然后查看帮助文档
- c++ 反汇编 构造函数和析构函数
构造函数和析构函数出现的时机 局部对象 109: // 局部对象定义调用构造函数 110: 111: CNumber Number; 00C8A37D 8D 4D EC lea ecx,[Number ...
- 5、Spring教程之依赖注入
概念 依赖注入(Dependency Injection,DI). 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装 ...
- 图解 | 原来这就是 IO 多路复用
为了讲多路复用,当然还是要跟风,采用鞭尸的思路,先讲讲传统的网络 IO 的弊端,用拉踩的方式捧起多路复用 IO 的优势. 为了方便理解,以下所有代码都是伪代码,知道其表达的意思即可. Let's go ...