日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何干净的删除vm_如何在macOS 10.15 Catalina绕过XProtect?

發布時間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何干净的删除vm_如何在macOS 10.15 Catalina绕过XProtect? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在macOS 10.15 Catalina中,Apple進行了許多安全性能地改進,包括通過使所有可執行文件都受XProtect掃描來加固系統,而不管文件是否帶有com.apple.quarantine位標記。對于安全研究人員而言,這意味著不再像以前的macOS一樣,僅通過使用xattr實用程序刪除隔離位就可以運行已知的XProtect惡意軟件了。這對于用戶來說是個好消息,但是對于那些想要探索XProtect樣本的更詳細的行為細節的研究人員來說,這可能是個問題。在本文中,研究人員將研究研究人員如何繞過這種各種安全功能,并在需要時仍在Catalina上運行已知的惡意軟件。

為什么要在Catalina上運行已知的惡意軟件

不久之前,研究人員可能不太關心XProtect已知的惡意軟件,因為XProtect很少更新,并且沒有涵蓋macOS研究社區已知的許多攻擊。最重要的是,在Catalina之前,XProtect總是很容易被繞過。

然而,時代已經變了,蘋果公司終于意識到,Mac電腦在野外正受到各種不同攻擊因素的攻擊。最近幾個月,蘋果公司不僅更頻繁地更新其內部安全工具,而且還發現了其他研究人員之前面臨的一些攻擊。但Apple很少共享攻擊情報,而且如果攻擊被Catalina上的XProtect阻止,則研究人員則無法更深入地研究攻擊的工作原理。這種深度探索是必要的,至少有兩個原因。首先,研究人員要開發比XProtect使用的遺留方法更有效的緩解措施和阻止措施;其次,研究人員希望能夠分析惡意軟件的行為并跟蹤活動,以便在攻擊開始之前采取行動。

如何在Catalina上運行已知的惡意軟件樣本

鑒于研究人員不能再刪除com.apple.quarantine位以允許惡意軟件在Catalina上運行了,研究人員必須采取其他策略。

首先,研究人員可以在macOS的早期版本(例如10.14)上運行示例,在這些早期的版本中,研究人員可以使用常規的XProtect繞過。這在某些情況下可能沒問題,但這意味著研究人員無法測試特定于Catalina的惡意行為。此外,一旦研究人員升級到10.16及更高版本,測試計算機上的操作系統將越來越落后于實際使用的惡意軟件作者所針對的操作系統。最終,研究人員最終會獲得一個甚至根本不支持該惡意軟件的操作系統,因此從長遠來看,還需要另一種解決方案。

第二種可能性是禁用SIP并修改XProtect文件(例如刪除所有簽名),盡管在實驗室設備或專門用于測試惡意軟件的VM上執行此操作沒有問題,但這個解決方案會帶來很多副作用。除非萬不得已,不要使用該方案。它的問題是在SIP關閉的情況下,你可能會遇到更多的問題,因為惡意軟件在這樣一個不尋常的環境中會有不同的行為。惡意軟件的開發者知道,真正的用戶很少在禁用SIP的情況下運行,因此他們可以使用一種簡單的反分析技術來運行csrutil狀態,然后相應地退出或改變行為。

第三種可能性是確定樣本觸發的規則,然后修改樣本以避免該規則。XProtect很久以前就不僅僅是一個簡單的基于哈希的文件掃描程序了,現在它使用了Yara規則,因此僅僅在示例的末尾添加一兩個字節來更改計算的文件散列是行不通的。然而,正如我們將看到的,仍然可以通過一些工作繞過XProtect,但是有幾個“陷阱”需要注意,我將在下面解釋。

如何在macOS 10.15及更高版本上攻擊計算機

當然,研究人員指的是在運行惡意軟件之前正確隔離的一次性VM實例的攻擊!一旦你處在一個安全的、可任意使用的環境中,第一個任務就是確定惡意軟件所針對的規則是什么。就本文而言,我將使用此示例,該示例在發布時未被VT上的任何靜態引擎檢測到:

174c5712759c4abd2bdfc1b93f4c990011c45aeed236e89c1c864b1e8379c54d

在Catalina上,研究人員仍然必須刪除com.apple.quarantine位,才能同時滿足Gatekeeper(山獅中引入的一項新安全技術,它可保證用戶安裝來自Mac App Store或者擁有開發者簽名的應用)和Notarization?要求(2019年,蘋果在10.14.5上新引入的App Notarization機制,要求開發人員上傳應用程序之前,將它們提交給蘋果,以掃描惡意內容,并查找可能存在的代碼簽名問題,沒有經過蘋果檢測的應用程序以后可能將不被允許運行)。

$ xattr -rc ~/mdworker_share.app

但是,正如研究人員看到的那樣,當嘗試引爆樣本時,盡管VT不了解這種惡意軟件,但XProtect卻知道。

這意味著研究人員首先必須檢查研究人員的惡意軟件,并將其與XProtect.yara中的規則進行比較以找到匹配項。之前我們已經寫過有關如何逆轉XProtect簽名定義的文章,因此請參閱該文章中的內容。

如果你試圖測試已經在VT或其他存儲庫中發現的惡意軟件,那么你可以通過查看惡意軟件的檢測名稱來獲得線索,但蘋果的新簽名并不使用普通的惡意軟件名稱。如今,蘋果公司更喜歡使用無意義的字母數字標識符,如下面所示,來混淆他們所檢測的內容:

如果像研究人員在此使用的示例一樣,你的惡意軟件不為殺毒引擎所知,并且被XProtect阻止,那么請先查看更新的XProtect規則。至少在目前,較新的規則往往位于文件的頂部。但研究人員發現經常關注XProtect的更改是很有用的,這樣可以查看每次更改的內容,從而使這個過程更快、更容易。

你可能必須根據規則對樣本的二進制文件進行grep字符串查找,直到找到匹配項為止。

在此示例的情況下,事實證明這些字符串與Apple所謂的MACOS.b264ff6的規則匹配,目前,該規則已添加到XProtect v2112中。

研究人員可以將惡意軟件樣本加載到十六進制編輯器中,并以十六進制搜索規則,以確認樣本是否符合要求:

當然,請確保你的樣本符合指定的確切條件,而不僅僅是一個字符串。對于此規則,研究人員需要從$ a和$ b集合中的字符串中每個擊中一個,以及從字符串$ c中獲得一個命中。

Macho and filesize < 3000000 and (1 of ($a*)) and (1 of ($b*)) and $c

如何修補二進制文件以繞過XProtect Yara規則

假設該規則在條件中有一個文件大小,我們可以選擇將垃圾數據附加到二進制文件的末尾,或者修改規則中指定的一個字符串。該規則表示可執行文件必須小于3MB,而實際上研究人員的樣本只有86Kb,因此要添加很多垃圾。不過,將垃圾附加到二進制文件中很容易。這樣做可能需要幾分鐘,但是很容易用條件將數字替換為下面括號中的第二個數字,并且代碼會將文件膨脹到所需的大小:

for i in {1..3000000}; do echo '0' >> mdworker_share; done

盡管這種方法在這個特定的示例上工作得很好,又可能導致其他樣本改變其行為,例如,如果它對自己的文件大小進行自我檢查。同樣,盡管當前幾乎所有XProtect規則都在條件中指定了文件大小,但將來可能不成立。因此,研究人員還應該考慮修補二進制文件,而不僅僅是將垃圾數據附加到二進制文件中。

在修補二進制文件時,需要注意一些“陷阱”,我將在下一部分中列出,但是你要注意的第一個也是最直接的一個是確保你不要更改會破壞的東西,或更改惡意軟件的行為。例如,假設研究人員的示例具有在MACOS.b264ff6規則中指定的$ b4字符串:

$b4 = { /usr/sbin/system_profiler }

研究人員不應該只是將其更改為某些垃圾字符串,因為這可能會阻止他們分析的惡意軟件正常運行或完全無法執行。相反,研究人員可以將該路徑更改為另一個長度相等的路徑,然后將system_profiler二進制文件的副本放在研究人員的測試設備上。例如,研究人員可以創建/tmp/sbin/system_profiler

修補程序本身就是使用類似hex Fiend的十六進制編輯器,對規則中出現的每個惟一字符串或十六進制字節進行搜索和替換。如果可以選擇,請選擇理想情況下只出現在一個地方的代碼,以減少破壞樣本的風險。

研究人員使用的這個特定示例匹配字符串$ a1,$ b2和$ c,只需要更改其中之一即可發起攻擊。字符串$b2看起來像一個方法名,只有當用戶取消授權請求時才會調用這個方法名。

$b2 = { didCancelAuthenticationChallenge }

由于我不打算在測試中執行此操作,因此我將在Hex Fiend中更改此方法名稱的前幾個字符,然后保存二進制文件。

在最壞的情況下,惡意軟件會對其自身的代碼完整性進行內部檢查,或者你在不影響惡意軟件行為的情況下無法找到要更改的值,則可能必須制作此類補丁才能首先通過XProtect進行啟動,然后再取消補丁。調試器中的二進制文件,以使其在執行內部檢查或修補的代碼之前返回其原始狀態。這涉及在修補的代碼上設置斷點(請記住,你必須在出現的任何地方對其進行修補/取消修補),然后在繼續之前提供原始值。

修補二進制文件時的一些注意事項

研究人員的示例現在可以運行了,但是在啟動它之前,先了解一些陷阱,以確保做的一切都是正確的。

首先,請確保僅替換二進制文件中的字節,而不添加字節。雖然在二進制文件的末尾添加垃圾文件是可以的,但是在二進制文件中創建的任何補丁都不應該添加額外的字節,否則你將移動所有偏移量,代碼將無法運行。

其次,確保你的補丁工具能夠在不破壞二進制文件的情況下保存它們。例如,Ghidra似乎無法在不破壞二進制文件的情況下進行修補和保存。Hex Fiend可能是你最好的選擇,但是其他工具當然也應該起作用。

第三,打補丁時,你將破壞可能存在的所有代碼簽名。這通常不是問題,因為你將通過刪除com.apple.quarantine位來禁用代碼簽名檢查,但是如果你確實需要對二進制文件進行有效的代碼簽名(例如,如果它檢查自己的代碼簽名)在修補后使用臨時簽名對它重新簽名,或者修補或跳過在二進制文件中返回代碼簽名檢查的方法。

第四,如果你在Catalina上運行了一個示例,但該示例被XProtect阻止,則請勿修補被阻止的同一實例??雌饋?#xff0c;無論是通過XProtect還是LaunchServices,卡塔琳娜都記得已被阻止的文件,并且無論你對其進行多少修補,它都將無法運行。因此,在另一臺計算機或VM上修補一個干凈的惡意軟件副本,然后將其轉移過來。在嘗試啟動之前,請記住刪除隔離位。

如果你避免了上述所有“陷阱”,那么你現在應該能夠引爆惡意軟件,,并愉快地繼續你的macOS反向工程探索!

樣本

mdworker_share.app.zip

791157ca6a1f10ee209ea71ffa0f8c9109028f4d1013d092276a6a7e50e1b2a4

174c5712759c4abd2bdfc1b93f4c990011c45aeed236e89c1c864b1e8379c54d

46724f195ea18e82d833ed92637a20ed95f9afe1ef749aa06c9156f2719ce389

helper.app.zip

0ac25a8dd9134284406248110ad66dbdb7f4ec557570be02fb9f92bee93727bf

fa88ca779f16e7adbe0702db8473883c20b0aaa69a2345d07c81d322ff2bc990

terninal.app.zip

cbc7751d5fcca12d9e7ea2fd90862d14af8d024710ff22f5457a2f8d427b7fee

參考及來源:https://www.sentinelone.com/blog/macos-malware-researchers-how-to-bypass-xprotect-on-catalina/

總結

以上是生活随笔為你收集整理的如何干净的删除vm_如何在macOS 10.15 Catalina绕过XProtect?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。