注意:本篇文章仅用于学习以及笔记记录,不得用于其他违规用途。

一、什么是免杀

免杀,也就是病毒与反间谍的对立面,英文为Anti-AntiVirus(简写Virus AV),翻译为“反杀毒技术”。
这是一种能使病毒木马免于被杀毒软件查杀的技术。
由于免杀技术涉及到很多方面,包括反汇编、逆向工程、系统漏洞等技术,难度很高,所以本篇文章内容基本上都是修改病毒、木马的内容改变特征码,从而躲避杀毒软件的查杀。

二、为什么有免杀

当我们在做安全测试的过程中,经常会自己编写一些脚本或者制作一些工具,其中用到的一些命令或者代码函数的特征已经被各大杀毒软件给识别到了自己的木马病毒库中,所以我们经常需要对自己编写的脚本或者工具进行免杀。

三、常见的免杀方法

1、加壳
2、ShellCode混淆,加密
3、各种语言的加载器
4、powershell混淆免杀
5、分离免杀(远程加载)shellcode和加载器不写在一个文件中,远程加载等。
6、白加黑(白名单程序执行恶意样本)
7、套接字免杀
8、使用一些免杀工具
9、自己写加载器
10、自己写远控

四、杀软介绍

1、杀软的基本原理

常见的杀毒软件对程序的划分大致分为三种:
无害
没有任何的可疑行为,没有任何的特征符合病毒或木马
可疑
存在可疑行为:操作注册表,打开powershell,修改用户,操作敏感文件等
存在病毒
特征符合病毒或木马
杀软常用识别恶意样本的方式
静态查杀,动态查杀

2、静态查杀

特征码
杀软会通过反编译的方式查看源代码,可以看到里面的一些函数和汇编代码
exe→函数→汇编

(1)代码中的函数

virtualalloc,rtlmovememory,ntcreatthread等
主要都是windows api函数,尤其是和内存、堆、线程相关的函数,当然在python中如果存在cmd等关键词也是会被识别的。
危险函数,远控关键词(msf,conbalt strike)一些关键字(shellcode)

(2)shellcode的特征



以msf的shellcode举例,杀毒软件最常用的就是判断一部分的代码来识别,通常汇编层级下的代码要深入识别查杀堆杀毒软件来说有一定误判的风险,所以一般的杀毒引擎都是通过shellcode中的特征码来识别。

(3)文件名和MD5

如果这个文件名使用了rlo翻转的话,无论是否是病毒都会直接杀,MD5值的话就是匹配样本库中的MD5值,看是否存在,这个一般都能规避掉。

(4)加密(可疑)

使用加密解密行为对文件有额外保护措施

(5)数字签名

判断当前程序的数字签名是否正常,可以使用签名伪造。

3、动态查杀

通常这一步都是静态分析之后做的,部分杀毒软件会有沙盒,相当于开一个虚拟机运行一下恶意样本,看一下运行效果。

(1)计算机相关

通常由r1或r2层挂监控的方式(类似于hook)当触发这些条件就会产生事件,例如:360会在系统的内核层对注册表和cmd进行监控,注册表的监控相对不那么严格,可以通过win32 api添加用户,通常杀软监控的有:
服务、注册表、组策略、放回去、敏感程序、用户敏感操作、敏感文件夹。
常见的绕过思路:替换方法,cmd用不了就用powershell(混淆,编码,加密),换函数api,或者用shellcode。

(2)网络相关

IP,域名,证书匹配,查找通讯的IP活域名是否之前存在攻击行为
流量内容,事件特征,内容特征,结构特征。
常见的绕过思路:
TCP分段,内容加密,使用合法证书

4、样本启动流程

五、具体姿势

1、加壳

加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是隐藏程序真正的OEP(入口点,防止被破解)。大多数病毒就是基于此原理。
加壳就是隐藏程序的入口文件。
通过对恶意样本的加壳处理,把原本的入口函数,再封装一层,让杀软无法找到我们程序的正常入口文件,进而躲避杀软分析我们的恶意样本,进而免杀。

2、什么是shellcode

shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。
shellcode常常使用机器语言编写,可在暂存器eip溢出后,塞入一段可以让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。
shellcode就是能够执行命令的机器码,不是一个exe,常见的exe木马是可以脱离内存存在硬盘中的,但是shellcode不可以,他必须在内存中才可以运行。
为了方便阅读,大部分的shellcode都是16进制显示给用户的。
本质:二进制-16进制-汇编代码
msf和cs生成的raw格式的payload就是一个二进制格式的文件。

3、shellcode加载器原理

shellcode加载器:简单来说,就是一个执行shellcode可执行文件。

加载器就是你用编程语言写出来的那个程序,shellcode是这个程序里面的一部分,在程序中就是一段字符,不能直接运行,而加载器的作用就是让他可以运行起来,最后shellcode执行后就是简历一个stager(建立目标和攻击者之间通信的道路,cs中的beacon指的就是stager)
常见加载器的主要功能
1、获取shellcode
2、virtualalloc函数申请内存
3、将shellcode载入内存
4、createthread函数创建新线程
5、等待创建的线程运行结束
为什么要有加载器?
默认情况下你的shellcode就是一堆字符,无法在内存中运行,所以需要加载器帮助他放到内存中运行,这也是加载器干的活。
本来想举例子,但想了想不放出来了。

生命在于学习——免杀相关推荐

  1. 生命在于学习——MSF初体验(一)

    注意:本篇文章仅用于学习笔记记录与交流,不得用于其他违规用途. 一.什么是MSF框架 Metasploit就是一个漏洞利用框架,全称是The Metasploit Framework,简称MSF(美少 ...

  2. 后端开发工程师的生命周期,生命在于学习

    后端开发工程师的生命周期 1 职业发展方向: 标准:需要不断学习.主动思考.不断锻炼.多提问 技术专家:三年.五年.八年的时间节点 2 后端学习成长路线 2.1 后端技术图谱 2.2 Go语言技术图谱 ...

  3. 生命在于学习——docker逃逸

    注意:本篇文章仅用于学习记录,不得用于其他用途. 一.docker逃逸 docker逃逸就是从当前docker容器权限中逃逸出来,获得宿主机的权限. 二.常见的逃逸方法 1.配置不当引起的逃逸 (1) ...

  4. 生命在于学习——框架-中间件的学习(一)

    声明:本篇文章仅用于学习笔记记录,不得用于其他用途. 一.什么是框架 Web框架(Web framework)或者叫做Web应用框架(Web application framework),是用于进行W ...

  5. 生命在于学习——文件解析

    本篇文章只是学习笔记. 一.概述 文件解析漏洞,是指web容器(Apache.nginx.iss等)在解析文件时出现了漏洞,以其他格式执行出脚本格式的效果从而黑客可以利用该漏洞实现非法文件的解析. 二 ...

  6. 20165223《网络对抗技术》Exp3 免杀原理与实践

    目录 -- 免杀原理与实践 免杀原理与实践 本次实验任务 基础知识问答 免杀扫描引擎 实验内容 正确使用msf编码器,msfvenom生成jar等文件,veil-evasion,加壳工具,使用shel ...

  7. 关注木马是如何免杀的

    最近自己的正当程序老被杀软查杀,特此准备学习免杀. 第一部分:对国内外杀毒软件分析 在讲定位内存特征码前,先要分析国内外著名杀毒软件的内存查杀特点.大家在使用木马过程都会发现,内存查杀,一般都指得被瑞 ...

  8. 小七免杀 源码免杀培训班

    被杀毒软件误杀 为什么不学习免杀呢?小七免杀论坛 2013年源码免杀培训课程,带你走进杀毒软件的世界. 百度网盘:http://pan.baidu.com/s/1i3yxshB 提取密码:tt0q 第 ...

  9. Python shellcode免杀

    浅谈Python shellcode免杀 一.前言 在安全厂商日趋成熟的背景下,编写免杀马的难度和成本日益增长.很多师傅好用的开源免杀项目公布出来的同时几乎也就意味它的失效,对于一些和我一样对系统底 ...

最新文章

  1. 如何用Python实现超级玛丽的人物行走和碰撞检测?
  2. MySQL中的blob和clob
  3. 访问Mat中每个像素的值
  4. 成就卓越代码,从关注细节开始
  5. kmp2-HDU1358 HUST1010 POJ2406 POJ2752
  6. PLSQL创建用户及权限分配
  7. mysql master status_show master status为空解决办法
  8. Map的使用和遍历方法示例
  9. 2014浙大ACM网络省赛-----Talented Chef问题(Problem -C)
  10. Android2.2+opencv3.1配置实现
  11. css3-10 css3中的边框样式有哪几种
  12. springBoot操作数据库方式
  13. 尚品汇笔记——尚硅谷
  14. 如何取消WPS 2019启动就显示稻壳商城?关闭后如何打开?
  15. 学习纹理格式(DXGI_FORMAT 和 VkFormat)
  16. python wmic_wmic linux python
  17. mesh组网是什么意思
  18. [转] 校园职场』 [公告]兰州城市学院学生因自习室“抢座位”引发血案,造成7人伤亡(转载)
  19. QCon2016演讲《Rust语言的核心竞争力》总结和补充
  20. c++小组实践大作业——面包星推荐

热门文章

  1. Windows的SSH密钥获取
  2. PHP - 命名空间(namespace)概述及实例说明
  3. [附源码]java毕业设计四六级考试管理系统
  4. 20175208 实验一 Java开发环境的熟悉
  5. 质心定位算法C语言实现,TOA定位算法.pdf
  6. 医疗卫生行业如何做好数字化转型?
  7. 数据可视化之文本情绪(极性)分析
  8. :要求查询出每一个雇员的编号,姓名,工资,领导的姓名,部门名称及位置,工资所在公司的工资等级
  9. 沐风:企业网络营销赚钱关键设计
  10. 厨神之路六--凉拌菜