0x00 前言

这一节将来看看杀毒软件相关的概念,毕竟知己知彼才能百战不殆,最后会介绍一下常见的免杀方法。

0x01 目的

常规杀毒软件的目的就是发现已知病毒并中止删除它,而作为攻击者则需要对病毒文件进行免杀处理,从而使杀毒软件认为我们的文件是合法文件。

0x02 杀软受到的限制

1、杀毒软件不能把可疑文件删除或者结束运行,否则用户的正常操作可能就会受到影响,同时也会对杀毒软件公司的声誉、口碑产生影响。

2、杀毒软件不能占用太多的系统资源,否则用户可能会考虑卸载杀毒软件。

3、大多数杀毒软件的一个弱点就是只会在浏览器下载文件或者文件被写入磁盘时才会检查这个文件的特征码,也就是说在这种情况下才会检查文件是否是病毒。

0x03 如何工作

1、在大多数杀毒软件背后都会有一个已知病毒的签名数据库,通过将当前文件的特征码与病毒签名数据库进行比对,如果一致则说明该文件是病毒。

2、同时一些杀毒软件也会去发现用户的一些可疑行为,而且杀毒软件对这种可疑行为的判定会下比较大的功夫。因为如果误杀,造成的后果可能对用户来说是比较严重的。

3、一些杀毒软件会在沙箱环境中去运行可疑文件,然后根据该可疑文件的行为判断是否为病毒。

0x04 如何免杀

首先要判断目标使用了哪款杀毒软件,然后自己在虚拟机中去尝试绕过它。

其次可以使用 Cobalt Strike 的 Artifact Kit 组件制作免杀可执行文件。Artifact Kit 是一个制作免杀 EXE、DLL 和 Service EXE 的源代码框架,在 Cobalt Strike 的 Help --> Arsenal 处可下载 Artifact Kit。

Artifact Kit 的工作原理大概如下:

1、将病毒文件进行混淆处理,使杀毒软件将其判定为可疑文件而不是病毒文件。这种混淆可以逃避那些使用简单字符串搜索来识别恶意代码的杀毒软件。

2、对病毒文件进行一些处理,以绕过沙箱检测。比如 Artifact Kit 中的 src-common/bypass-pipe.c 会生成可执行文件和DLL,它们通过命名管道为自己提供shellcode。如果防病毒沙箱不能模拟命名管道,它将找不到已知的恶意 shellcode。

Artifact Kit 的使用步骤大概如下:

1、下载 Artifact Kit

2、如果需要的话就修改/混淆病毒文件

3、构建

4、使用 Artifact Kit 加载脚本

0x05 Artifact Kit 使用演示

首先来看看未进行免杀处理的效果,这里采用 virustotal 进行检测,发现被 42 个引擎检测到。

接下来就试试 Artifact Kit 进行免杀的效果,有条件的可以去官网下载支持一下正版。

当然 Github 上也有人上传了,项目地址:https://github.com/Cliov/Arsenal

这里使用 Artifact Kit 中的 dist-peek 方法进行测试。

来到 Cobalt Strike 下打开 Cobalt Strike -> Script Manager,Load 加载 /Arsenal/artifact/dist-peek/artifact.cna 插件,之后在 Attacks -> Packages -> Windows Executable 中生成木马文件。

使用 VT 检测发现仅有 8 个引擎检测到,感觉效果好像还行。

把每个杀软的病毒库升级到最新后,实测可以过腾讯电脑管家、火绒,但 360 安全卫士 、 360 杀毒不行。

说句题外话,至于为什么用了两款 360 的产品,主要就是为了截图好看些。

0x06 Veil Evasion 使用演示

此外,也可以使用 Veil Evasion 框架,Veil Evasion 的安装也是比较简单的,Veil-Evasion 在 Kali 2020以前是自带的,但 Kali 2020 中是需要独立安装的。在 Kali 中可以直接使用 apt-get 进行安装。

git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'apt-get install veil-evasion
veil

其他系统可以使用 veil-evasion 项目中的介绍进行安装,项目地址:https://github.com/Veil-Framework/Veil-Evasion

由于 Veil Evasion 有 200 多 M ,因此建议挂上代理进行下载安装。

安装完成之后,在 Cobalt Strike 里的 Attacks -> Packages -> Payload Generator 中选择 Veil 输出生成一个 payload.txt 文件

随后来到 Kali 下,输入 veil 启动,输入 use Evasion 使用 Evasion 工具,list 查看当前可用的 Payload

veil
use Evasion
list

这里使用第 17 个即 go/shellcode_inject/virtual.py Payload 作为示例,因为 go、c 等编译性语言语言相对于 python 等脚本语言来说免杀效果会好些。

use 17

之后输入 generate,选择第三项 Custom shellcode string ,粘贴刚生成的 payload.txt 文本内容,输入要生成的 exe 文件名,即可生成一个免杀木马。

generate
3
粘贴 payload.txt 内容
bypass_go   #生成文件的名称

使用 virustotal 查杀了一下生成的 bypass_go.exe,发现被 40 个引擎检测到,不得不说这效果很一般。

实测可以过360 安全卫士、 360 杀毒,但腾讯电脑管家、火绒不行。

看到 VT 的检测结果后,我还以为四款杀软都能检测到呢,没想到啊。

0x07 免杀插件

后来又在 GitHub 上发现一款免杀插件,2 个月前更新的,项目地址:https://github.com/hack2fun/BypassAV

使用方法可以参考项目中的介绍,目前效果感觉还是可以的,在 virustotal 上只被 10 个引擎检测到。

实测可以过 360 安全卫士、360 杀毒、腾讯电脑管家,但火绒不行。

0x08 总结

在测试完成之后,开始体会到为什么要判断目标使用了哪款杀软的目的了,就上面测试的情况来说,每一家都出现未检测到的情况。在实际的环境中,还是要根据目标的具体情况具体分析。

Emm,浏览器首页又被 360 改成 360 导航了。

另外不得不说一句,从使用的角度来说,火绒是这里面最乖的,没有其他杀毒软件那么多花花肠子。

更多信息欢迎关注我的微信公众号:TeamsSix

原文链接:https://www.teamssix.com/year/200419-150726.html
参考链接:

https://www.bilibili.com/video/BV16b411i7n5

https://www.secpulse.com/archives/127186.html

https://www.cnblogs.com/backlion/p/10616308.html

https://lunamoore.github.io/2020/08/18/veil-evasion%E5%AE%89%E8%A3%85/

【CS学习笔记】26、杀毒软件相关推荐

  1. 【CS学习笔记】17、登录验证的难点

    0x00 前言 如果当前账号权限被系统认为是本地管理员权限,那么就可以执行很多管理员才能做的事,接下来就来看一下这样的一个过程是如何工作的,其中会涉及到以下要点: 1.Access Token 登录令 ...

  2. python学习笔记26(python中__name__的使用)

    python学习笔记26(python中__name__的使用) 在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以imp ...

  3. 【CS学习笔记】19、代码执行的方式

    0x00 前言 实现代码执行的四个步骤: 1.与目标建立信任关系 2.复制可执行文件到目标上 3.在目标上运行可执行文件 4.实现对目标的控制 以上是根据视频教程中直译的结果,个人感觉其实这一节叫横向 ...

  4. 漏洞payload 靶机_【CS学习笔记】5、如何建立Payload处理器

    这一小节学起来感觉有些吃力,里面很多概念理解的不是很清楚,如果有大佬看到描述错误的地方欢迎留言指正,避免误导他人. 再次声明,这只是我的个人学习笔记,不要当成教程去看,建议想学习CS的小伙伴可以看看A ...

  5. Android学习笔记26:图片切换控件ImageSwitcher的使用

    在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...

  6. cs客户端 实时权限_【CS学习笔记】7、SMBbean的作用

    0x00 SMB Beacon 简介 SMB Beacon 使用命名管道通过一个父 Beacon 进行通信.这种对等通信对同一台主机上的 Beacon 和跨网络的 Beacon 都有效.Windows ...

  7. python __name__怎么使用_python学习笔记26(python中__name__的使用)

    在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...

  8. 31 天重构学习笔记26. 避免双重否定

    摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有 订阅 Sean Chambers的blog,所以是在国外的社区上闲逛的时候 ...

  9. 31天重构学习笔记26. 避免双重否定

    摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接 ...

  10. 学习笔记(26):Python网络编程并发编程-GIL与自定义互斥锁的区别

    立即学习:https://edu.csdn.net/course/play/24458/296443?utm_source=blogtoedu 1.GIL的基本概念 答:GIL本质上就是一把锁,只是他 ...

最新文章

  1. powershell获取linux文件,powershell如何读取文件名并赋值到变量?
  2. MYSQL常用命令(转载)
  3. dubbo 源码编译记录
  4. ddos压力测试_蓝盟IT外包,浅析DDoS攻击防御和DDoS攻击原理
  5. 成为梵高、毕加索?你最喜欢的人脸识别与神经风格迁移来啦!
  6. 不止性能优化,移动端 APM 产品研发技能
  7. asp中日期时间函数介绍
  8. 服务端I/O性能:Node、PHP、Java、Go的对比
  9. oracle standby审计,监控oracle standby
  10. 一次性计划任务at与周期性计划任务crontab
  11. 类和对象编程(六):内联函数
  12. JavaScript中的标识符(附:关键字表)
  13. pfn_to_page 函数
  14. t3 修改UFO服务器地址,t3ufo报表服务器配置
  15. 制作U盘DOS启动盘详细教程及工具,及DOS下升级BIOS方法,传统BIOS升级为UEFI
  16. 新建scheme构建报错问题处理方案
  17. 误删除vmdk文件恢复办法
  18. matlab中format使用方法
  19. 浅谈利用javascript实现gb2312编码。
  20. 1148. 简单密码破解

热门文章

  1. 网络与社会导论之幂律与富者更富及其与长尾、齐普夫定律等的关系
  2. 在这个世界我只喜欢三件事---暮光之城
  3. discuz教程 毫无基础常识的站长搭建HTTPS。图文并茂
  4. Flutter中设ListView的shrinkWrap为ture导致的崩溃
  5. 一个twitter puddles的算法实现
  6. CV学习笔记【1】:transforms
  7. linux san网络,教你如何DIY SAN存储网络
  8. HttpMessageNotReadableException: Required request body is missing:
  9. Fedora系统之打开终端快捷键设置
  10. The RK3066/RK30SDK Android 4.2 audio codec has a bug!