如何判断文件是否含有病毒

发布于 2023-11-29  46 次阅读


分析一个文件是否为病毒有多种方法,比如用OD这样的调试器,用HIPS都可以达到目的。在这里主要讨论一下快速判断的方法,用最短的时间,最少的知识,来判断一个文件是否安全。


先说一下必要的工具:Sandboxie、PEiD、OD以及你的杀毒软件。

在网上随便下载一个软件,这时候杀毒软件也许会报毒。这种情况下,可以先看一下报的病毒名。

对于一个报毒名,通常会包含主类型,家族名以及变种号。

遇到下面这些以及其他有明确描述的主类型,一般误报的可能性很小。

  1. Virus(感染型)
  2. Worm(蠕虫)
  3. Ransom(勒索)
  4. Backdoor(后门)
  5. Downloader(下载者)

如果报的是“Win32/Packed.VMProtect.AAA 特洛伊木马 的变种”,那么可以稍稍放松下警惕。对于一些壳,杀软脱不了,为了方便,就把这种壳当作病毒来处理。另外,如果是“Win32/Hupigon.NUK 特洛伊木马”以及“Win32/Parite.B 病毒”这类的,就需要注意,这个文件可能被人恶意插入木马,或者被感染过。从杀软报的病毒名基本可以判断出这个文件是真的有问题,还是属于杀软的误报。然而,也有一些例外。比如“Trojan.Win32.Generic.122E105A”,这个一看就是云安全分析出来的病毒,没有什么有效的信息,所以无法通过病毒名判断是否是误判。

简单说说杀软是怎么判别的

基于特征的检测 — — 静态分析

杀毒软件的厂商都有自己的安全研究团队,负责研究新出现的恶意软件(病毒、木马、蠕虫、勒索软件 ……)。每当发现一款新的恶意软件,研究人员会尝试找到该软件所具有的独特指纹,并加入到杀毒软件的特征库中。
所谓的独特指纹就是说 — — 只有这个恶意软件才会包含该特征,其它软件不包含该特征。
当杀毒软件扫描磁盘时,就是根据自带的特征库进行检查,如果某个文件正好包含了特征库中“某某恶意软件”的特征,就会触发报警。
“基于特征的检测”有时候也被称作“静态分析”

基于行为的检测 — — 动态分析

“基于特征的检测”相当于“事后诸葛亮”。也就是说,先得有恶意软件,然后研究人员才能去研究它。
这种玩法的一个巨大缺陷是 — — 难以做到事先预防。因此,杀毒软件还会采用另一种措施来辅助 — — 也就是所谓的“行为分析”。
一般来说,恶意软件总是会有一些比较奇怪的(反常的)行为。因此,杀毒软件会根据某个软件的行为,来判断其是否具有恶意。
“基于行为的检测”有时候也被称作“动态分析”。

误报

所谓的误报就是 — — 杀毒软件把正常文件当成恶意软件。
为啥会有误报?比较常见的原因是在少数情况下,安全研究人员提取的特征指纹不够独特(不具有唯一性)。就会导致 某个正常文件碰巧也带有该指纹所具有的特征。在这种情况下,当杀毒软件扫描这个正常文件,就会误报。

根据杀软的信息,可以对该文件的安全性有一个初步的了解。但是完全信任杀软的话会出现很多问题,想要使用有些未知安全性的软件,还是得靠自己。先用PEiD查一下壳

查壳


把可执行软件.exe拖入可查壳

然后可以在脱壳步骤中执行通用脱壳或者指定类型的壳专脱。

脱壳

1、PEiD最常用的插件就是脱壳,PEiD的插件里有个通用脱壳器,能脱大部分的壳,如果脱壳后import表损害,还可以自动调用ImportREC修复import表,点击”=>”打开插件列表,比如我们使用unpacker for upx插件进行脱壳。

默认的脱壳后的文件放置位置在peid的根目录下。

文件名为原文件名前加un字样。

如果是一些简单的压缩壳,就在沙盘中运行OD,脱掉,分析。这时要做的不是一步步跟下去,而是找一下这个文件调用的API。在反汇编窗口右击,查找——当前模块中的名称(标签)。

观察一下API,这时也是有所取舍的。对于字符函数和字符串处理函数这类的,可以忽略过去;对于注册表函数、文件函数则要多加留意。比如说,看到了CreateFile,就在这个函数上下断,注意看有没有对系统敏感位置写入文件。同样,查看字符串也是有效的方式。一般地,可以从字符串找出一些病毒的特征。比如有的灰鸽子会有“客户端安装成功”之类的字样,发现一些邮件地址以及相应密码的。这些都是很可疑的。遇到一些猛壳,脱掉它是很困难的,这时可以借助下沙盘。 
让程序在沙盘里完全运行,之后终止所有程序。

查看一下程序生成了什么。

从程序生成的文件基本可以判断是否是病毒了。当然,也不乏一些检测沙盘、虚拟机的小东西。在病毒样本区的页面上方有在线沙盘的链接。分析的结果十分具体,可以用来参考。如果你觉得手工检测太麻烦,可以借助在线沙盘,既快又详细。

微步云沙箱(https://s.threatbook.com/)

安恒云沙箱-下一代沙箱的领航者 (dbappsecurity.com.cn)

VirusTotal - Home

先查一下壳,应该是没壳的.

此时我比较喜欢用PEiD的反汇编工具看看字符串,这个功能很方便.

注意选中的部分,很可疑.是一个URL,指向的还是个exe文件.这时应该怀疑这个外挂是个下载器.

下面将它用OD载入(在沙盘或虚拟机中进行),看一看当前模块中的名称(标签),有一个URLDownloadToFileA,这个函数可以实现将一个网络上的文件下载到本地的功能,一般的ShellCode常用到它.

在输入函数上切换断点,运行,可以看出具体的行为.

在此之后要做的就是对下载下来的这个文件进行分析

一般来说微软的程序不会有这样的图标,而一个外挂莫名其妙地下载微软的东西,很奇怪,只能说是欲盖弥彰,所以可以直接毙掉了.

同理,如果用沙盘直接运行,最终会在沙盘里提取到这个文件,会发现在临时目录里.在外挂的目录下还会发现一个隐藏文件,应该就是干净的外挂.

挂的这个马应该变了,与小生附件中的程序已经不同了.

如果你认为很麻烦,可以直接把它扔到在线沙盘里,让机器替你分析.

比如说我认为下载下来的这个文件壳比较难脱,或者说我根本不会脱壳,那么就打开云沙箱 ,选择文件,然后Upload,静候几分钟,就可以出结果,其它的在线沙盘也是大同小异.

引用

简书 https://www.jianshu.com/p/c738b5e8a3a3
如何快速判断一个文件是否为病毒 by 是昔流芳https://www.52pojie.cn/thread-69716-1-1.html
最后更新于 2023-11-29