前言

反病毒爱好者们非常喜欢讨论的一个问题就是,现在什么样的病毒才算得上是主流,或者说什么样的病毒才是厉害的病毒呢?我们之前的课程所解说的都是Ring3层的病毒。所以有些朋友可能会觉得。那么Ring0层的病毒事实上才是最厉害的,也是病毒发展的主流;或者有朋友可能觉得,採取了五花八门的隐藏技术的病毒才是最难对付的。

诚然,大家的观点都非常有道理。病毒编写者往往也会用复杂高深的技术来武装自己的恶意程序,使其难以被发现难以被清除。那么是不是说Ring3层的病毒就没有“市场”了呢?我觉得不是。比方前段时间出现的“比特币敲竹杠”病毒。就是一个基于Ring3层的病毒,其特色就在于採用了一定的算法来加密目标计算机中的相应文件。而假设没有password,那么是不可能实现解密操作的。这就体现出了病毒作者的“创意”。说明即便没有高深的技术,但仅仅要有想法。那么Ring3层的病毒依然是非常可怕的。而我们这次所讨论的txt病毒,所走的也正是创意的路线。

一个奇怪的“txt”文件

在之前的课程中,我以前讨论过一种U盘病毒。当时在U盘中发现它的时候。我之所以没中圈套。正是由于我发现了它的.exe小尾巴:

图1

这也就说明,虽然它的图标是文件夹的图标,可是它本质上事实上就是一个可执行程序。利用图标的更换来将自己伪装成一个文件夹,这种手段还是比較古老的,也是非常easy被发现的。

相信大家通过那次的课程。也建立起了防范意识。

可是假设大家看到了一个这种文件。会作何感想?

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

图2

我相信,绝大部分的朋友是不会对这个文件起疑心的。会觉得这就是一个文本文档文件。会毫不犹豫地对其双击。可是双击执行后,那么也就中了陷阱,事实上这是一个经过伪装的Setup.exe,也就是我们之前讨论过的“熊猫烧香”病毒样本。

“txt病毒”原理

可能大家会有疑惑,为什么一个exe程序的“扩展名”会显示为txt呢?事实上,说它是一个“txt病毒”并不准确,严格来讲,它是一种混淆视听的手段。由于对于一个exe程序来说,我们不单单能够把它伪装成txt格式。还能够伪装成诸如jpg、doc、ppt等格式。事实上现原理就是採用了“反转字符串”的方法。

我们就拿“熊猫烧香”病毒样本为例:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

图3

首先能够使用Resource Hacker将该程序的图标改动为文本文档的图标:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

图4

然后我们将这个程序重命名为“readtxt.exe”,此时保持重命名的状态别确定。将光标移到“read”与“txt”的中间,单击鼠标右键。选择“插入Unicode控制字符”中的“RLO”:

图5

这个“RLO”是一个转义字符。仅仅要在一行字符前面加上它,就能够实现文本的反向排列。它是Unicode为了兼容某些文字的阅读习惯而设计的一个转义字符。当我们增加这个字符后。从而也就实现了图2中的效果。

那么利用这个原理,我们就能够实现非常多有创意的,而且颇具迷惑性的文件名称称。再将文件的图标改动为相应的假的后缀名的图标。那么我相信,即便是资深反病毒爱好者。也非常可能会落入陷阱的。

“RLO”与注冊表

事实上我们上面所讲的这个“RLO”的原理,还能够运用于其他的方面,比方注冊表:

图6

在上图中我们发现了两个名为“Microsoft”的项。而注冊表是不同意同名的项存在的。

事实上第二个“Microsoft”正是我利用转义字符原理生成的。

某些病毒程序就有可能利用这一点,来将自己伪装成正常的程序。这是须要大家格外留意的。

其他的字符陷阱

既然讲到了关于字符的陷阱。那么我这里再讲一个样例。

有些病毒为了实现站点的劫持。会把想要劫持的站点重定向到自己指定的地址。

为了实现这一目的。病毒作者通常的做法是改动Windows系统里位于%SystemRoot%\system32\drivers\etc文件夹下的hosts文件。

而病毒作者是不希望我们找到真实的hosts文件,以进行进一步的解析的,于是病毒作者能够将真实的hosts文件设置为隐藏,再伪造一个hosts文件出来。而伪造的方式,能够使用上述转义字符的方法,或者採用将原始的文件名称中的英文字符替换为其他的。easy造成混淆的字符。关于这个最为经典的样例就是     将“kernel32.dll”中“32”前面的“l”改为“1”,从而变成“kerne132.dll”,而后者正是一个恶意的动态链接库程序。

而详细到hosts这个样例。我们应当怎样达到混淆的效果呢?也非常简单,首先我们能够在“记事本”中输入“hosts”这几个字符,然后保存为Unicode的形式。接着使用十六进制编辑工具打开这个文本文档,查看其十六进制代码:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

图7

上图红框中的“6f 00”(注意这里是小端显示),也就是Unicode码的0x006f,表示的就是小写英文字母的“o”,那么这里我们将其改动为“3e 04”。也就是Unicode码的0x043e,它表示的是俄文字符的“o”:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

图8

保存后,再使用“记事本”打开,能够发现原来的“o”变成了一个怪怪的俄文字符:

图9

只是没关系。我们将上述字符复制粘贴。使其成为一个文件的名称。并复制到真实的hosts文件文件夹中:

图10

能够发现。此时出现了两个“hosts”文件,而事实上第二个是我们伪造的。从而也就达到了混淆的效果。

小结

假设我们光凭肉眼,是非常难阻止这类在字符上做手脚的病毒的,因此我在此也呼吁大家,一定要在计算机中安装杀毒软件,由于杀软并不会根据程序的名称进行杀毒,而是依靠病毒体内的特征码检測等方式来识别病毒的。

而对于我们伪装的“熊猫烧香”病毒样本。即便是我们之前所编写的简陋的主动防御系统,也是能够将其制止住的。这也就凸显了杀软的重要性。

病毒木马查杀实战第022篇:txt病毒研究的更多相关文章

  1. 病毒木马查杀实战第025篇:JS下载者脚本木马的分析与防御

    前言 这次我与大家分享的是我所总结的关于JS下载者脚本木马的分析与防御技术.之所以要选择这样的一个题目,是因为在日常的病毒分析工作中,每天都会遇到这类病毒样本,少则几个,多则几十个(当然了,更多的样本 ...

  2. 病毒木马查杀实战第011篇:QQ盗号木马之专杀工具的编写

    前言 由于我已经在<病毒木马查杀第004篇:熊猫烧香之专杀工具的编写>中编写了一个比较通用的专杀工具的框架,而这个框架对于本病毒来说,经过简单修改也是基本适用的,所以本文就不讨论那些重叠的 ...

  3. 病毒木马查杀实战第010篇:QQ盗号木马之十六进制代码分析

    前言 按照我的个人习惯,在运用诸如IDA Pro与OllyDBG对病毒进行逆向分析之前,我都会利用一些自动化的工具,通过静态或动态的分析方法(参见<病毒木马查杀第008篇:熊猫烧香之病毒查杀总结 ...

  4. 病毒木马查杀实战第009篇:QQ盗号木马之手动查杀

    前言 之前在<病毒木马查杀第002篇:熊猫烧香之手动查杀>中,我在不借助任何工具的情况下,基本实现了对于"熊猫烧香"病毒的查杀.但是毕竟"熊猫烧香" ...

  5. 病毒木马查杀实战第020篇:Ring3层主动防御之基本原理

    前言 假设说我们的计算机中安装有杀毒软件,那么当我们有意或无意地下载了一个恶意程序后.杀软一般都会弹出一个对话框提示我们,下载的程序非常可能是恶意程序,建议删除之类的.或者杀软就不提示.直接删除了:或 ...

  6. 病毒木马查杀实战第015篇:U盘病毒之脱壳研究

    前言 因为我们的终于目标是编写出针对于这次的U盘病毒的专杀工具.而通过上次的分析我们知道,病毒有可能在不同的计算机中会以不同的名称进行显示.假设真是如此,那么就有必要在此分析出病毒的命名规律等特征,然 ...

  7. 病毒木马查杀实战第017篇:U盘病毒之专杀工具的编写

    前言 经过前几次的讨论,我们对于这次的U盘病毒已经有了一定的了解,那么这次我们就依据病毒的行为特征,来编写针对于这次U盘病毒的专杀工具. 专杀工具功能说明 因为这次是一个U盘病毒,所以我打算把这次的专 ...

  8. 病毒木马查杀实战第013篇:一个基于.NET的“敲竹杠”病毒研究

    前言 恶意程序发展至今,其功能已经从最初的单纯破坏,不断发展为隐私的窥探,信息的盗取,乃至如今非常流行的"敲竹杠"病毒,用于勒索.可见随着时代的发展,病毒的作者们往往也是想利用自己 ...

  9. 病毒木马查杀实战第012篇:QQ盗号木马之逆向分析

    前言 在本系列的文章中,对每一个病毒分析的最后一个部分,若无特殊情况,我都会采用逆向分析的手段来为读者彻底剖析目标病毒.但是之前的"熊猫烧香"病毒,我用了三篇文章的篇幅(每篇250 ...

随机推荐

  1. Selenium2+python自动化43-判断title(title_is)【转载】

    前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取到的结果用做断言. 本篇介绍另外一种方法去判断页面title是否与期望结果一种,用到上一篇Selenium2+p ...

  2. 深入理解Java的注解(Annotation):自定义注解入门(2)

    要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法. 元注解: 元注解的作用就是负责注解其他注解.Java5. ...

  3. sqlalchemy源代码阅读随笔(4):url。py 阅读

    在_to_string中,有 _rfc_1738_quote(text): 这个函数.这个主要是遵循 RFC 1738的规则.对传入的信息(主要是用户名或者密码)进行格式匹配.其代码就一行: retu ...

  4. Vmware esxi开启snmp服务

    https://jingyan.baidu.com/article/9f7e7ec055c4c86f28155435.html http://pubs.vmware.com/vsphere-50/in ...

  5. php(间接)调用nmap命令时的选项特殊点

    使用php调用pythn-nmap时,发现无法正常执行扫描动作 将nmap命令直接写入php,由后者调用,发现仍然无法执行,提示需要添加“-Pn”选项 原来是: 正常情况下:nmap -n host ...

  6. Jest+Enzyme React js/typescript测试环境配置案例

    本文案例github:https://github.com/axel10/react-jest-typescript-demo 配置jest的react测试环境时我们可以参考官方的配置教程: http ...

  7. VisualStudio 2013开发Office插件

    在VS中选择创建新项目,选择App for Office 选择mail出现的位置 Task pane The app appears in the task pane of a Microsift O ...

  8. django 项目使用setting文件里定义的变量方法

    1.在Django项目的settings文件里定义里变量 REDIS_CONN = { 'HOST':'127.0.0.1', 'PORT':6379, 'DB':0,} 2.函数需要使用settin ...

  9. POJ 3553 Task schedule【拓扑排序 + 优先队列 / 贪心】

    Task schedule Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 515 Accepted: 309 Special J ...

  10. Codeforces 702C Cellular Network(二分)

    题目链接:http://codeforces.com/problemset/problem/702/C 题意: 在数轴上有N个城市和M个信号塔,给你这N个城市以及M个塔在数轴上的位置,求M个塔可以覆盖 ...