Contents

[从零开始的免杀生活]00.序

0x00.了解杀软

国内杀毒厂商

  • 360
  • 火绒
  • 金山毒霸
  • 腾讯电脑管家 国外杀毒厂商
  • BD
  • Windows Defender
  • 小红伞

0x01. 了解静态杀毒原理

杀毒引擎包含几种查杀方式

  • 基于yara规则
  • 基于启发式引擎
  • 基于混乱程度san值检测

0x03.了解Shellcode

GPT解答:

0
Shellcode是一种用于利用计算机程序漏洞的恶意代码,通常是用汇编语言编写的,用于执行特定任务,如破解系统安全、执行恶意软件、获取系统权限等。Shellcode通常很小,因为它必须适合在漏洞中注入或植入恶意软件中,因此它需要非常紧凑和高效。

这个解释应该用在pwn中 呃呃,我们主要就是把我们的恶意代码编写成shellcode后可以更容易的混淆 然后再内存中动态的加载,这样基于字符串,iat检测的杀软就无从下手了

0x04.了解特征码

什么是特征码呢?特征码就是在一个程序中独特的代码 例如你这个程序中加了个版权信息 powered by tupler 这串text的ascii码就可以被当做是特征码,当你这个软件为恶意程序时 上传的样本经过人员分析或者是沙箱分析将该程序判为黑时就会将此特征码放入数据库中,当下次这个杀软再检测到这串特征时就会将该程序识别为恶意程序, PS: 杀软不是一定会完整的把一整串字符串当做特征,可能会取其中一部分,也可能不是将字符串,可能是某处完整的代码,例如

//此处为伪代码,参数未填写
CreateFile(xxxxxxx)
CopyFile(xxxxxx)
ShellExecute(xxxxx)

当这三个函数同时存在时并顺序为当前顺序就会很容易被杀软特征

0x05.一般免杀做法基于Shellcode混淆与执行

  1. 通过加密shellcode存储在堆栈中
  2. 在内存中进行解密并设置内存可执行权限
  3. 执行shellcode

以上是一般普通的混淆免杀做法,因为该类样本十分的多,所以该免杀效果对于一些将某些函数定为特征的杀软并不是很好~

0x06.特定杀软喜欢杀的地方

我们知道一个程序执行肯定有自己的一套算法,杀软也一样,不同的杀软对于查杀的侧重点不一样,静态来说

火绒: 字符串 iat导入函数 而且会有个微型沙箱进行运行后对模拟的沙箱内存进行yara匹配shellcode

360: 资源信息 签名信息 字符串 壳的特征 敏感函数调用

DEFENDER:比较均衡 主要是查敏感函数调用 以及 shellcode ,就我测试来看 普通的加密方式似乎对defender无用