首页
社区
课程
招聘
[原创]免杀技术有一套(免杀方法大集结)(Anti-AntiVirus)
发表于: 2017-5-22 08:17 29528

[原创]免杀技术有一套(免杀方法大集结)(Anti-AntiVirus)

2017-5-22 08:17
29528

什么是免杀?来自百科的注解:

免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字翻译为“反-反病毒”,翻译为“反杀毒技术”。

有本比较有名的书,想详细学习的同学可以去看看。《黑客免杀攻防》

其实我大概好像只看过目录...( ╯□╰ )

下面我介绍的是自己实践的一些方法,有没有效果,试试就知道了。

免杀大概可以分为两种情况:

免杀也可以分为这两种情况:

下面就静态和动态免杀来详细说说免杀的技术。

对于静态免杀,针对的是杀毒软件的静态文件扫描,云查(病毒库)杀。

杀毒是提取文件一段特征码来识别病毒文件。

能识别一个程序是一个病毒的一段不大于64字节的特征串

那杀毒软件是怎么提取文件特征码的?

如果我们知道了一个文件是病毒,那么通过md5肯定可以判断一个就是这个病毒文件,那如果该病毒文件做了小小变动呢,直接md5肯定是不行了,那杀毒软件是怎么做的呢?这里有个叫做模糊哈希(Fuzzy Hashing)算法的东西。

模糊哈希算法又叫基于内容分割的分片分片哈希算法(context triggered piecewise hashing, CTPH),主要用于文件的相似性比较。

大致就可以理解为,不要把一个文件的所有内容都拿来计算hash,而通过分片,取出部分重要(不易改变)的内容进行hash计算,这样就能达到通过一个特征码找到类似的病毒变种。

关于模糊哈希更加详细的内容可以查看文章后面的参考文章,这里不再详述。

具体杀毒软件是不是通过这个算法来计算特征码的,我也不能完全肯定(纯猜测加网上一点点信息),但是根据免杀的经验可以总结出几点:

常见的特征码定位工具有CCL、MYCCL。工具大致原理就是分割文件,某些分割部分填入数据(0),如果扫描该部分不报警,则特征码在这个部分。如此反复,直到找到很短的某一段内容。不同工具之前局别是使用的分割算法不同,查找特征码的效果不同。

目前比较常有名气的特征码定位器主要有CCL与MYCCL,他们都采用文件分块定位的办法,定位效果带有运气成份,且可能每次定位出的位置都不尽相同,这个免杀带来了困难。

后来出来了一款新的特征码定位软件VirTest。下面是作者自己的介绍:

我们可以这样假设报毒过程,如果检测文件是PE,如果在CODE位置存在 标志A,在DATA位置存在标志B,在资源位置存在标志C,同时满足这个3个条件,那么杀软就会报毒,VIRTEST工作原理就是要找到引起报毒最后一个标志,也就是假设中的标志C。

因此VIRTEST采用2分排除法,测试标志C所在文件中的位置,由于被杀的文件可能存在多个 类似于ABC这样的连锁条件,所以我们必须要通过一种排除机制,先要找最靠近文件前部的连锁条件,排除掉文件尾部数据,当找到第一个连锁条件后,抹掉引标志C,再恢复尾部数据,

然后继续测试另外的连锁条件,直到找到最后一个连锁条件,抹掉后,整个文件免杀了,则说明特征代码被定为完毕了,所以VIRTEST绝对可以精确的定位出所有的复合特征。这比文件分块定位法先进得多,更为科学。

工具查找肯定是针对二进制文件(有源码的也编译后在检查)。

具体用过MYCCL(使用方法自行查找),确实比手工分割文件定位方便,也可以找到某些文件的特征码,但是有些时候可能会出现非常多非常多...的被杀文件分割,然后...崩溃了。

后来也用了virtest,感觉作者说的挺有道理,应该挺好用吧。然后试了试,确实感觉比MYCCL高大上多了,也可以定位到特征码,但是tmd改了之后怎么还是报呢,反正你可能会折腾很久...

这里说的是针对有源码的(二进制就别想手工了...),方法非常简单。

大致流程:

此方法,虽然笨,但是定位特征码不会很慢,挺准确。

别找了,直接盲免杀吧(后面具体看,有效)

前面已经找到特征码了,怎么免杀呢?

其实前面已经说到了,找到特征码之后,只要改变这个特征码值得话就免杀成功。如果不需要软件正常运行,直接填零得了...开玩笑,这怎么可能。所以修改特征码还得保证软件正常功能。所以也是有讲究的。

常用的修改工具有,OD,C32ASM,UE,010Editor等等。

1. 数据

如果特征码定位到数据(通过IDA/OD等确认),其实不好修改,稍微不慎就会导致程序不能运行,或者影响程序运行流程或结果。

反正特征码定位到数据位置不容易修改(可以再试试后面的盲免杀)。

2. 代码

如果特征码定位到代码(也通过IDA/OD等确认),在不改变程序功能基础上,应用各种方法修改。

在有源码的情况下,修改的方式就更灵活了,更简单了。

如果特征码是数据,那么修改数据位置,访问数据的代码位置等(思想类比非源码方式)。

加花指令,这是最有效也是最常用的方式,要点在于如何加话指令。

在没找到有效的特征码,或者不好修改的时候,可以试试这种方式。

1. 加资源

使用ResHacker对文件进行资源操作,找来多个正常软件,将它们的资源加入到自己软件,如图片,版本信息,对话框等。

2. 替换资源

使用ResHacker替换无用的资源(Version等)。

3. 加签名

使用签名伪造工具,将正常软件的签名信息加入到自己软件中。

几种方式可以交替重复多次进行组合使用。

1. PE优化

使用PE优化工具对文件进行优化,删除0,PE头优化,附加数据等。

2. 增加节

增加节数据,随意加入无效数据。

可以将加壳简单理解为:解密器/解压器+加密器/压缩器(原始代码)。

通过加密器/压缩器将原始代码进行加密压缩,让其特征码变化隐藏,然后组装上解密器/解压器到文件中,运行是先运行解密/解压器,将加密压缩内容解密解压,然后继续运行原始代码。

1. 加冷门壳

壳也有特征,知名壳都已经被分析的非常多了,杀软基本都能查这类壳,或者自动脱壳,然后进行查杀。

所以加冷门壳,壳特征未被分析,不能自动脱壳,可以更好隐藏原始代码,得到免杀效果。

2. 加壳改壳

将常用壳进行修改,让壳特征变化,也可以是杀软失效。

比如修改入口,区段信息修改,入口代码移位。

可以类比为免杀壳,上面介绍的方法都可以使用。

杀毒软件现在都会有主防的功能,对恶意行为进行拦截提示。

比如这些行为:

说白了,恶意行为都是通过API调用来完成的,可能是一个API,可能是多个APi组合。

杀软通过技术手段拦截这些API调用,通过策略来判断是否属于恶意行为。

关键点:

所以后面的方法就是针对这两点做的工作。

下面介绍的方式对非源码、源码都有效,但是非源码修改起来非常非常麻烦...

1. 替换api

使用相同功能的API进行替换,杀软不可能拦截了所有API,所以这种方式还是有效的。比如MoveFileEx替换MoveFile。

2. 未导出api

寻找相同功能的未导出API进行替换,杀软拦截一般是导出API,或者底层调用,寻找未导出API有一定效果。

寻找方法,通过分析目标API内部调用,找到内部一个或多个未导出API,来完成相同功能。

3. 重写api

完全重写系统API功能(通过逆向),实现自己的对应功能API,对于ring3的行为拦截非常有效。比如实现MoveFile等。

4. api+5

ring3的API拦截通过是挂钩API头几个字节内容,然后进入杀软自己函数进行参数检查之类的。

那么如果调用API时,跳过头部几字节,就可以避开这种拦截方式。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 3
支持
分享
最新回复 (17)
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
2
目前杀毒还有在r3拦截api的么...
2017-5-22 09:24
0
雪    币: 346
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
感谢分享!
2017-5-22 10:28
0
雪    币: 10072
活跃值: (3008)
能力值: ( LV15,RANK:515 )
在线值:
发帖
回帖
粉丝
4
evilor 目前杀毒还有在r3拦截api的么...
有,x64更有
2017-5-22 11:14
0
雪    币: 115
活跃值: (23)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
5
没有用,推荐看坛子大大牛,玩命        免杀需要很强的技术,如果你能编写PE病毒感染的话,可以考虑下,你所总结的那些都是菜鸟玩的
2017-5-22 14:37
0
雪    币: 7560
活跃值: (5402)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
面对现在各种云,修改特征码免杀真的已经不是出路.
2017-5-22 14:43
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
7
终极免杀:给国内的厂商塞钱,然后带节奏说国外的厂商(如卡巴)误报
2017-5-22 15:13
0
雪    币: 10072
活跃值: (3008)
能力值: ( LV15,RANK:515 )
在线值:
发帖
回帖
粉丝
8
我是谁! 没有用,推荐看坛子大大牛,玩命 免杀需要很强的技术,如果你能编写PE病毒感染的话,可以考虑下,你所总结的那些都是菜鸟玩的
哦,大牛求给推荐链接
2017-5-22 15:37
0
雪    币: 10072
活跃值: (3008)
能力值: ( LV15,RANK:515 )
在线值:
发帖
回帖
粉丝
9
lononan 面对现在各种云,修改特征码免杀真的已经不是出路.
那出路是7楼所说?
2017-5-22 15:37
0
雪    币: 10072
活跃值: (3008)
能力值: ( LV15,RANK:515 )
在线值:
发帖
回帖
粉丝
10
hzqst 终极免杀:给国内的厂商塞钱,然后带节奏说国外的厂商(如卡巴)误报
老司机!
2017-5-22 15:38
0
雪    币: 115
活跃值: (23)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
11
杀毒的机制大家可以去  看玩命的电子书,他做成PDF的,自己搜把,启发原理和主动防御的原理,都不知道女的裤子扣子在哪里,像瞎子一样,玩什么呢!哈哈
2017-5-22 16:06
0
雪    币: 10072
活跃值: (3008)
能力值: ( LV15,RANK:515 )
在线值:
发帖
回帖
粉丝
12
我是谁! 杀毒的机制大家可以去 看玩命的电子书,他做成PDF的,自己搜把,启发原理和主动防御的原理,都不知道女的裤子扣子在哪里,像瞎子一样,玩什么呢!哈哈
谢指导,但是不知道大牛有没有看我文章的内容,然后就在说别人是瞎子....
2017-5-22 16:23
1
雪    币: 287
活跃值: (51)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
谢谢分享,知识是总结出来的,不用管别人说什么,仅仅会喷人的人终究不会把心放到真正的技术上,请坚持!
2017-5-22 17:00
0
雪    币: 30
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
先是在大佬博客上看到这个帖子感觉讲的很好,原来大佬是看雪的
2017-6-12 00:14
0
雪    币: 8387
活跃值: (4961)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
说得很细致啊    不错   
2017-6-25 12:23
0
雪    币: 254
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
十一楼的,求资源,
2017-6-25 13:56
0
雪    币: 267
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我是谁! 杀毒的机制大家可以去 看玩命的电子书,他做成PDF的,自己搜把,启发原理和主动防御的原理,都不知道女的裤子扣子在哪里,像瞎子一样,玩什么呢!哈哈
玩命的电子书叫什么名字?
2017-6-28 19:37
0
雪    币: 4634
活跃值: (936)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
18
我是谁! 杀毒的机制大家可以去 看玩命的电子书,他做成PDF的,自己搜把,启发原理和主动防御的原理,都不知道女的裤子扣子在哪里,像瞎子一样,玩什么呢!哈哈
玩命的电子书叫什么名字? 
2018-6-21 11:20
0
游客
登录 | 注册 方可回帖
返回
//