1.实验内容
·免杀原理
免杀技术的核心原理是通过修改病毒、木马的内容,改变其特征码,从而躲避杀毒软件的查杀。杀毒软件通常使用特征码识别技术来检测和清除恶意软件,因此,通过修改恶意软件的特征码,可以使其绕过杀毒软件的检测。
·免杀技术
1.修改特征码。
·直接修改:将特征码所对应的十六进制值进行修改,通常改为相近的十六进制值或进行大小写互换。
·等价替换:将特征码所对应的汇编指令替换为功能相似的指令。
·指令顺序调换:在不影响程序正常执行的前提下,调换具有特征码的代码顺序。
2.修改校验和。
定位特征码和校验和,修改特征码时需要同步重新计算校验和。
3.花指令免杀。
添加特定指令的技术,这些指令没有实际的功能或含义,但它们的存在可以混淆程序的正常结构,使得反汇编和反编译过程变得困难,从而阻止或规避杀毒软件的检测和查杀。
4.加壳免杀。
·加壳:给恶意软件添加一层或多层包装壳,以隐藏其真实内容和行为,常见的壳有UPX等。
·改壳:对已有的壳进行修改或替换,以增加杀毒软件识别的难度。
5.内存免杀。
将恶意代码(如shellcode)直接加载到内存中执行,从而避免文件落地,进而绕过基于文件扫描的杀毒软件检测。
·回答问题
(1)杀软是如何检测出恶意代码的?
1签名检测:这是最传统的方法,依赖于一个不断更新的恶意软件签名数据库。杀软通过比对文件的特征码(签名)与已知恶意软件的特征码进行匹配来检测恶意代码。
2行为分析:杀软监控程序的行为,包括对文件、网络、系统资源的访问和修改。如果软件的行为模式与已知的恶意行为模式匹配,则可能被判定为恶意软件。
3启发式分析:利用启发式算法分析未知软件的行为和代码结构,尝试发现未知的或变种的恶意软件。这种方法不仅仅依赖于已知的恶意软件数据库,而是尝试识别新的威胁。
4沙箱执行:在一个隔离的环境(沙箱)中执行程序,分析其行为,从而不对实际系统造成影响。如果程序在沙箱中表现出恶意行为,那么它就可能被识别为恶意软件。
5云检测:借助云计算技术,杀软可以迅速分析大量数据,识别新出现的恶意软件。这种方法可以有效地提高检测的速度和准确性。
(2)免杀是做什么?
指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术,所以难度很高。
免杀技术通常涉及到对恶意软件代码的修改,使其能够绕过安全软件的检测机制,从而在未被发现的情况下在目标系统上执行。
(3)免杀的基本方法有哪些?
一是改变特征码。
·加壳:如果只有exe文件,可以进行加壳处理,包括压缩壳、加密壳等。加壳可以隐藏或改变恶意软件的特征码,使其难以被杀毒软件检测。
·编码:如果恶意软件包含shellcode(如Meterpreter),可以使用编码器对其进行编码,以改变其特征码。基于payload重新编译生成可执行文件也是一种有效的方法。
·重写源代码:如果有恶意软件的源代码,可以使用其他语言进行重新编写,以改变其特征码。例如,可以使用Python等跨平台语言进行重写,然后编译成新的可执行文件。
二是改变行为。
·修改通讯方式:尽量使用反弹式连接,让被攻击机连接攻击机。同时,可以使用隧道技术或加密通讯数据来隐藏恶意软件的通讯行为。
·改变操作模式:基于内存操作可以减少对系统的修改,并增加混淆作用的正常功能代码。这样可以使恶意软件的行为更加隐蔽,难以被杀毒软件检测。
·非常规方法:使用一个有漏洞的应用当成后门,编写攻击代码。或者利用社工类攻击手段,诱骗目标关闭杀毒软件。
2.实验过程
在做这一步之前一定要关闭杀毒软件和防火墙。
用免杀测试平台测试:https://www.virustotal.com
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
在Windows系统里面打开命令符,输入ipconfig查询ip地址为172.16.219.120。
在kali里面打开终端,输入ifconfig查询ip地址为192.168.190.128。
生成20222426weihongyu.exe。
送到VirusTotal检测,这里的检测效率是62/73。
一次编码使用命令:-p表示payloads,-e选择编码器,-b是payload中需要去除的字符,该命令中为了使’\x00’不出现在shellcode中,因为shellcode以’\x00’为结束符。
在Windows系统里面找到此文件。
这里的检测效率是61/72,差别不大。
再进行12次编码,这里的检测效率是61/73,也是差别不大。
·正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
用msfvenom生成jar文件,这里的检测效率是34/64,区别明显。
用msfvenom生成php文件,这里的检测效率是13/47,区别更是明显。
用msfvenom生成elf文件,这里的检测效率是34/65,和jar差不多。
·veil,加壳工具
这里安装veil,上面的等待下载过了很久很久,特别考验人的耐心。
这里进入setup.sh文件,修改一行代码,即sudo git clone https://gitee.com/spears/VeilDependencies.git。
安装veil成功。
显示41个payloads。
这里切换网络,kali的ip地址变化为192.168.190.129。
list显示7,进行C语言程序的加壳。
生成20222426why20241021.exe。
在kali里面找到这个文件。
传送到Windows系统里面。
用简单C文件,这里的检测效率是45/73,不太理想。
免杀加壳尝试,用upx命令对文件加压缩壳。
这里的检测效率是46/72,又是区别不大。
·使用C + shellcode编程
使用C + shellcode编程,使用msfvenom 得到shellcode。
这里不小心少了一行代码,重新添加。
可以在kali里面找到这个文件。
这里的检测效率是45/73,不太理想。
这是之前生成的所有文件,我把这些文件放在了同一个文件夹里。
(2)通过组合应用各种技术实现恶意代码免杀
利用python+rev_tcp进行。
在kali里面找到生成的20222426veil.py.py文件。
这里检测效率是12/64,很是不错。原理:使用了数据加密的方式进行多次编译后门软件。
查杀生成的所有后门文件,这里部分的后门文件与杀毒软件共生。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
电脑:windows 11,
杀软:360安全卫士,版本13.0正式版。
做一半断电,ip地址变化,不过影响不大。
使用msfvenom生成后门文件20222426why.raw。
注意需要下载shell_launcher,地址https://gitee.com/vantler/shellcode_launcher/。
配置监听模块,运行文件20222426why.raw,成功使用ls命令。
可以看到没有检测出来,效果不错。
3.问题及解决方案
- 问题1:veil不能成功下载。
- 问题1解决方案:一个是应该输入/usr/share/veil/config/setup.sh --force --silent,一个是应该安装wine32,使用以下命令:dpkg --add-architecture i386,apt-get update,apt-get install wine32。
- 问题2:卡死在python安装窗口没有响应。
- 问题2解决方案:退出,重新进入等待即可,一路按y,之后安装成功。
4.学习感悟、思考等
本次实验遇到的比较大的问题就是veil的安装,反复出现关于wine32的报错,通过自己查阅资料,输入相关命令,等待很长一段时间,veil就成功安装了。以及对于免杀技术的理解更加深入,提升了自己的实验与操作能力。总之,需要耐心,心平气和地去解决问题。