一 概念简介
0day中的0表示zero,早期的0day表示在软件发行后的24小时内就出现破解版本,现在我们已经
引申了这个含义,只要是在软件或者其他东西发布后,在最短时间内出现相关破解的,都可以叫
0day。 0day是一个统称,所有的破解都可以叫0day。简而言之,0day就是代表还没有公开的漏
洞,nday就是代表已经公开了的漏洞。漏洞开发者在利用0day和Nday时,除了在逃过windos的
自身安全机制的基础上,不可避免的要接触到与杀软对抗的工作,就一般情况来看,如果针对特
定的目标杀软还是有很大可能可以绕过,难点是通用所有的杀软。
另外值得注意的一点,现今主流杀软很多,在通用的前提下,免杀工作往往占用很多时间。
二 构造POC
2.1 构造POC
要想利用一个漏洞,首先得构造一个POC样本,构造好的POC,会遭遇杀软的第一层防护,
也就是经常说的静态查杀。
2.2 必要工具
MYCCL,VirTest。
2.3 0day构造
杀软容易检测的地方,比如:会被检测的堆喷代码或者0322中类似判断文件
存在的这类代码,漏洞触发的经典字节码。
重灾区:PE结构的嵌入。
杀软认为危险的函数名或者一些二进制中能看到的字符串。
2.4 Nday的构造
漏洞爆出来时所用的代码已经被“黑名单”。
一些杀软对二进制文件漏洞触发点检测很深入。
2.5 0day 过静态
宗旨:尽量让代码和二进制文件靠近“正常”或者“随机”。
方法:加密,混淆,随机数据,压缩。
2.6 Nday过静态
最理想:通过另外一种方法或者类似方法去重新构造一个样本。
一般时候:可通过前面提到的那些方法使杀软不认识这些文件或代码。
三 漏洞触发
3.1 检测
构造好POC后,运行起来的POC样本能不能过掉杀软正确的触发漏洞走到攻击者的代码,
就是攻击者面临的杀软第二层保护。代表:EMET