Exp3-免杀原理

20191306 张宇鹏

1.基础问题回答

(1)杀软是如何检测出恶意代码的?

  • 基于特征码的检测
    恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
  • 启发式恶意软件检测
    简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。
  • 基于行为的恶意软件检测
    通用的、多特征的、非精确的扫描,如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码。

(2)免杀是做什么?

一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。

(3)免杀的基本方法有哪些?

免杀的总体技术有:

改变特征码

  • 如果你手里只有EXE

加壳:压缩壳 加密壳

  • 有shellcode(像Meterpreter)

用encode进行编码

基于payload重新编译生成可执行文件

  • 有源代码
    用其他语言进行重写再编译(veil-evasion)

改变行为

  • 通讯方式

尽量使用反弹式连接
使用隧道技术
加密通讯数据

  • 操作模式

基于内存操作
减少对系统的修改
加入混淆作用的正常功能代码

(4)开启杀软能绝对防止电脑中恶意代码吗?

经过此次实验使我深刻的理解到杀软的局限性,“绝对防止”肯定达不到。

2.实验过程

(1)使用msf编码器,生成如jar之类的其他文件

识别率53/69,我们将其作为标准,对比查看不同的操作会带来怎样不同的结果

(2)利用Msfvenom多次编码

  • 再次测试

    可以看出,并没有什么变化

再多编码几次(编码50次),再次测试

还是没什么变化,上网查询后了解到:AV厂商研究的是编码器本身,shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,只要盯住这部分就可以了。

(2)利用veil生成后门程序并加壳

  • 安装并打开veil

  • 设置反弹ip 设置端口号,生成后门程序

生成的程序进行测试

有了一点成效

  • 进行加壳处理
    使用UPX对1306veil.exe加壳

    再次测试结果如下:

    还是不理想,原因可能是msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。曾经有一段时间,只要换了模板,就可以对所有AV免杀。现在这招不行了。所以一般来说AV厂商会针对其使用的模板来生成特征码,这样就一劳永逸地解决所有msfvenom生成的恶意代码了。那如果使用msfvenom免杀,就要使用原生的模板。

(3)使用C + shellcode编程

使用msf生成shellcode

根据shellcode编写c文件

编译

检测1306bd.exe

已经有很大提升了!

(4)通过组合应用各种技术实现恶意代码免杀

使用 upx 对 1306.exe 进行加壳

检测结果为:

变化并不明显,使用火绒进行测试

火绒没有查出问题,并且后门程序能正常运行

(5)附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

运行1306x.exe成功获取Windows的shell

火绒为最新版本5.0.67.0
再使用360安全卫士进行测试,360是可以查出木马病毒的,看来还是360安全一些。

posted @ 2022-04-08 17:35  20191306张宇鹏  阅读(49)  评论(0编辑  收藏  举报