免杀基础学习记录-杀软特性、查杀方式、术语
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
前言参考SecretTeam安全团队的学习记录 什么是免杀?免杀(Bypass AV, Anti-Virus Evasion)是指恶意软件通过各种手段规避杀毒软件和安全检测系统的识别和拦截,从而在目标系统中成功执行。这种技术不仅用于恶意软件的传播,也被信息安全研究人员用来测试和提升安全防护系统的能力。根据有无源码,免杀可以分为以下两种情况:
直接对一个二进制程序进行免杀,通过修改数据,加壳加花,定位修改特征码等等黑盒方式
通过修改源码来进行免杀(大概率成为今后免杀的主流) 直接对一个二进制程序来进行免杀技术难度较高,免杀效果也不好,所以通常将二进制程序转换成一段shellcode,使用加载器来执行shellcode的方式来进行从无源码免杀向有源码免杀的转换,根据免杀阶段还分为以下两个阶段:
静态免杀主要是为了抵抗杀毒软件的静态扫描,杀毒软件的静态扫描一般会通过提取文件中的一段特征串来与自身的病毒库中的特征码进行对比来判断该文件是否为恶意文件,因此我们一般围绕修改或是掩盖文件的特征码来实现静态免杀
动态免杀主要是为了抵抗杀毒软件的动态查杀,如内存扫描,行为分析等 杀软特性360360有点全能了,在国内基本各个方面都是顶尖
金山毒霸金山走的是云安全,云防护,云鉴定这些云安全路线,所以,断了网后金山就是个废 江民主要是对特征码和资源进行定位查杀 瑞星主要是主动防御查杀 卡巴斯基非常变态的一款杀软,误报低,查杀率高,特征码+输入表变态查杀+静动态启发式+强力的虚拟机脱壳技术。人类已经无法阻止卡巴斯基的输入表查杀了,在反汇编下,你无论对输入表怎么重建,移位都不行,需要进行手动异或加密。 小红伞,木伞小红伞的特征码定位抗干扰技术和启发式比较好 火绒主要是主动防御这块,静态查杀也比较严格,不过很好做免杀 Windows Defender静态查杀能力较强,动态查杀较强,监控 HTTP 流量 杀软的查杀方式特征码特征码是什么?特征码就是病毒分析师从病毒中提取的不大众化的不大于64字节的特征串。通过判断是否有这个特征字符串从而确定是否为病毒。通常为了减少误报,一个病毒会取数个特征码。举个例子,一款很出名的木马,它的名字就能被当作特征码。 静态启发式静态启发式即对整个软件进行分析,杀软会指定一系列的规则,然后对软件进行扫描,当扫描出匹配这些规则的字符串等等之类时,杀软会将软件标记成怀疑对象,匹配到的规则越多,软件的可疑程度越高,到一定程度,就成了恶意软件了 动态启发式动态启发式又叫虚拟机查杀技术,会模拟出一个近似于windows的系统,杀软将软件放入这个虚拟机运行,监测它的行为,如果操作越可疑,就越容易被定为病毒 HIPSHIPS可以说是主动防御,何为主动防御,一个病毒或木马如果通过了表面查杀,那么主动防御就是最后一道防线,HIPS主要是对一个软件运行时的操作进行检测,如果发现软件有注册表操作,加载驱动这些一般程序不应操作的操作时,那么他就会以他R0级的优势,拦截掉并将程序暂停运行,也就是挂起,询问用户是否进行该操作。 云查杀杀软那里有一套规则,如果一个软件触犯了这些规则,则杀软会上报至云服务器,到了云服务器后,则会对上报文件进行鉴定,可能会是人工鉴定,这样的效果比杀软查杀效果要好得多。那么如果分析出这个程序是病毒,那么就会将这个程序的MD5发生至云中心,用户在联网状态下杀毒的话,就与云中心核对MD5,如果对上了,无条件认定为病毒。相当于安装了杀软的所有用户给云上提供素材,一旦素材在一台电脑上被认定为病毒,则所有安装了该杀软的用户都会查杀这个素材 免杀中的术语API泛指Windows的API函数,Windows编程中的内容。Windows API是一套用来控制Windows的各个部件的外观和行为的预先定义的Windows函数,对Windows系统中的东西进行操作都会用到API,比如我移动个鼠标,点击个键盘都会有相对于的API函数 花指令一段无意义的代码,用来迷惑杀软或则其它的反汇编工具,例如在汇编里:add eax, 1; sub eax, 1 输入表(导入表)输入表就相当于EXE文件与DLL文件沟通的钥匙,形象的可以比喻成两个城市之间交流的高速公路,所有的导入函数信息都会写入输入表中,在PE 文件映射到内存后,Windows 将相应的DLL文件装入,EXE 文件通过“输入表”找到相应的DLL 中的导入函数,从而完成程序的正常运行,这一动态连接的过程都是由“输入表”参与的。 区段PE结构中的区段, 加壳加壳分为加压缩壳和保护壳〔加密壳〕压缩壳是目的是使程序变小,但没有防止被反破解的作用。保护壳恰恰相反,保护壳的目的是使程序尽量防止被反汇编,但好的保护壳会给程序植入大量垃圾代码,以干扰破解版者,所以程序会变大。 反启发即加入对杀软的启发式干扰的代码 隐藏输入表通过自定义API的方式隐藏导入表中的恶意API 混淆这是一种将代码转换为难以理解的形式的技术,使得分析者难以从字节码中理解程序的逻辑。混淆可以应用于源代码、编译后的代码或二进制文件 代码注入将恶意代码注入到合法程序中,使得恶意代码在合法程序的执行过程中被执行,从而避开杀毒软件的检测。 内存执行恶意代码不在磁盘上留下痕迹,而是直接在内存中执行,这样可以减少被杀毒软件扫描到的机会 文件加密将恶意文件加密存储,只有在执行时才解密,这样可以避免杀毒软件通过文件内容进行检测。 多态生成多个变种的恶意代码,每种变种都有不同的特征,使得杀毒软件难以通过单一的特征码来识别。 行为混淆通过改变程序的行为模式,使得恶意行为看起来像是正常行为,从而避开基于行为分析的检测 0day利用操作系统或应用程序的0day漏洞来执行恶意代码,杀毒软件无法检测到 签名使用合法的数字证书签名恶意软件,以欺骗用户和杀毒软件,使其看起来像是可信的软件 沙箱逃逸沙箱是一种检测恶意软件的环境,它模拟了一个安全的执行环境。沙箱逃逸技术是指恶意软件能够检测到自己是否在沙箱中运行,并在检测到沙箱时改变行为,以避免被检测。 利用系统服务通过操作系统服务来执行恶意行为,因为系统服务通常具有较高的权限,可以绕过一些安全措施 利用云服务将恶意代码或数据存储在云服务上,通过云服务来分发或执行恶意行为,这样可以分散风险并增加检测难度 杀软报毒命名规则杀毒软件的报毒基本遵循一套原则,就是
前缀该前缀标识检测到该对象的子系统。 行为威胁类型/行为代表主要威胁类别,描述威胁的主要行为是什么
平台通常指win32,x64,linux,mac os 家族用于表示一组具有相同来源(作者、源代码)、操作原理或有效负载的检测到的对象。每个家族都是根据其表现的行为来命名的。常见的就是:Generic、Infector、AntiAV、KillFiles等。 变体为了识别一个家族中不同恶意软件的变体,字母按顺序使用并称为变体,从“.a”开始:“.a”-“.z”、“.aa”-“.zz”等 报毒案例
转自https://www.cnblogs.com/F12-blog/p/18362694 该文章在 2024/11/13 8:59:59 编辑过 |
关键字查询
相关文章
正在查询... |