【技術分享】如何使用C#加密攻擊載荷來繞過殺毒軟件
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
譯者:興趣使然的小胃 一、前言 曾經有人問過我,如何繞過所有的殺毒軟件? 我的回答是:非常簡單。但這是一種秘密技術,大多數滲透測試者或黑客永遠都不會與他人共享。他們與我一樣有各種各樣的理由,但最大的原因在于,一旦技術公開,殺軟公司很快就會檢測并封殺這種技術。在本文中,我想跟大家分享一種C#編程及加密方法,可以繞過所有殺軟。 在介紹具體細節之前,我想先提供一下本文用到的C#源代碼。 http://github.com/DamonMohammadbagher/NativePayloadReversetcp 如果你對滲透測試、Kali Linux以及Metasploit后門載荷比較熟悉,你也掌握一定的編程技術,那么閱讀本文后,你可以在互聯網上找到更多源代碼完成這一任務。 首先:你需要了解反病毒軟件以及基于特征的應用(如反病毒軟件)。 其次:你需要了解基于Linux的系統以及用于滲透測試的Kali Linux或其他Linux操作系統。 最后:你需要了解Windows編程技術,本文中為C# .Net編程技術。 在本文中,我主要介紹的是C#編程技術,受篇幅所限,我無法在一篇文章里面面面俱到。 請記住:想要繞過安全防御工具(如反病毒軟件或者防火墻)的每個滲透測試團隊或者紅隊都需要了解如何在Layer 7層(即應用層)繞過這些應用,這一點在Whitehat或者滲透測試項目、黑帽攻擊中非常重要,如果你的團隊或者你個人掌握多種殺軟繞過技術,顯然就掌握足夠的先機。另外我想強調的是,這一點實現起來并不困難。 二、技術細節 這一部分我會向大家介紹如何一步一步使用C#加密載荷繞過反病毒軟件。 步驟1: 我在Kali Linux里面制作了一個C類型的后門載荷,其十六進制格式如下圖所示。之所以使用“reverse_tcp(反彈型tcp)”載荷,原因在于這種載荷最容易繞過禁止入站連接的防火墻。 步驟2: 你應該使用“異或(XOR)”算法或其他加密算法,至少完成一次載荷加密。 比如,我寫了個簡單的C#應用,使用加密算法來完成加密,類似的源碼還有非常多,我們不用擔心代碼源。 如上圖所示,我使用VS.NET 2015來開發C#代碼,但所有版本的VS.NET都支持這一代碼。 上圖中,你會發現一個名為payload.txt的文本文件,這個文件就是我在步驟1中使用msfvenom工具生成的載荷。 在步驟2中,你應該使用payload.txt文件中的內容替換代碼中的載荷變量{0xfc , ….}。 步驟3: 程序的輸出如下圖所示,加密后的載荷也會一同輸出。 如上圖所示,我們的加密載荷開頭為“217,119,88….,82,12,210”。現在我們手頭上已經有一個加密載荷,你可以在backdoor.exe文件中放心使用這個載荷,因為反病毒軟件無法檢測這種載荷,只有你掌握了加密或解密載荷的密鑰。 步驟4: 現在我們需要一段C#代碼來在目標主機上執行這段加密載荷。 如下圖所示,我使用這一段C#代碼來執行加密后的載荷,在源碼中,我們需要將Payload_Encrypted變量替換為步驟3中生成的加密后的載荷,此外,我們需要將KEY值替換為步驟2中使用的那個密鑰值。 請注意:你在步驟2以及步驟4中使用的KEY值應該一致,因為加密密鑰以及解密密鑰是同一個密鑰。 在這段源碼中,我會根據命令行中的參數來生成加密載荷,所以我可以在命令行中輸入字符串形式的加密載荷,執行這個exe程序,如下圖所示。 執行程序的命令如下: dos C:> backdoor.exe “217,119,88,…….,82,12,210” 此時,加密后的載荷會解密并在目標主機的內存中運行,如果上述步驟均順利完成,那么你就可以在攻擊端的Kali Linux系統中收到一個meterpreter會話,如下圖所示: 如下圖所示,我的反病毒軟件沒有檢測到這個使用了加密載荷的后門: 事實上所有的反病毒軟件都無法檢測這種后門,檢測結果如下圖所示: 其實我開發了一個取證工具,可以實時檢測內存中的Meterpreter載荷。使用這種實時掃描工具,你可以在內存中發現這個后門,工具下載鏈接如下: http://github.com/DamonMohammadbagher/MeterpreterPayloadDetection 三、參考資料 [1] 使用DNS傳輸后門繞過反病毒軟件。http://www.linkedin.com/pulse/bypassing-anti-viruses-transfer-backdoor-payloads-dns-mohammadbagher [2] 反病毒軟件以及基于特征的檢測方法的不足(使用NativePayloadReversetcp 2.0版再次繞過反病毒軟件)。http://www.linkedin.com/pulse/antivirus-signature-based-detection-methods-doesnt-mohammadbagher?trk=pulse_spock-articles [3] 如何通過掃描內存發現無法檢測到的Meterpreter載荷。http://www.linkedin.com/pulse/detecting-meterpreter-undetectable-payloads-scanning-mohammadbagher?published=t 本文翻譯自linkedin.com 原文鏈接。如若轉載請注明出處。
該文章在 2024/4/17 18:34:00 編輯過 |
關鍵字查詢
相關文章
正在查詢... |