国产精品高清一区二区三区不卡-国产精品一区二区三区免费视频-日韩免费高清一级毛片-亚洲欧美一区二区三区国产精品-日韩欧美一区二区三区不卡视频-亚欧免费视频一区二区三区-亚洲欧美日韩一区成人-欧美日韩视频综合一区无弹窗-精品日韩在线视频一区二区三区-国内精品视频一区二区三区

你好,歡迎進(jìn)入江蘇優(yōu)軟數(shù)字科技有限公司官網(wǎng)!

誠(chéng)信、勤奮、創(chuàng)新、卓越

友好定價(jià)、專業(yè)客服支持、正版軟件一站式服務(wù)提供

13262879759

工作日:9:00-22:00

利用macOS Dock實(shí)現(xiàn)攻擊持久化

發(fā)布時(shí)間:2024-06-15

瀏覽次數(shù):0

sublime text 3 函數(shù)追蹤_追蹤函數(shù)如何使用_跟蹤函數(shù)

sublime text 3 函數(shù)追蹤_跟蹤函數(shù)_追蹤函數(shù)如何使用

1. 背景

追蹤函數(shù)如何使用_跟蹤函數(shù)_sublime text 3 函數(shù)追蹤

最近,我一直在關(guān)注 macOS 持久性領(lǐng)域,特別是選擇那些可以被低級(jí)用戶修改并可能影響用戶交互的文件。我發(fā)現(xiàn)最終用戶經(jīng)常與之交互的一個(gè)位置是 Dock。

通過我的研究,我發(fā)現(xiàn)有一個(gè) plist 可以控制 Apple Dock 中應(yīng)用程序的視覺呈現(xiàn)。這里沒有太多開創(chuàng)性的東西,因?yàn)檫@個(gè) plist 經(jīng)常被最終用戶通過圖形用戶界面 (GUI) 修改。在查看了 plist 中的值后sublime text 3 函數(shù)追蹤,我想探索是否可以更改這些值,以將合法應(yīng)用程序替換為運(yùn)行自定義代碼的惡意應(yīng)用程序。

這項(xiàng)研究的突破之一是 .js,我將其整合到我的項(xiàng)目中。在我的實(shí)現(xiàn)中,我將 或 替換為惡意應(yīng)用程序。我專注于 和 ,因?yàn)樗鼈兒芸赡艹霈F(xiàn)在用戶的 Dock 中。然而,該理論實(shí)際上適用于任何應(yīng)用程序。一旦最終用戶單擊 或 圖標(biāo),我們的惡意應(yīng)用程序就會(huì)運(yùn)行。這種持久性類似于 macOS 中的快捷方式 (.LNK) 文件持久性,因?yàn)?Dock 圖標(biāo)通常是實(shí)際應(yīng)用程序的快捷方式。

這種持久性方法需要將我們的惡意應(yīng)用程序上傳到目標(biāo)機(jī)器。我更喜歡使用代理中的上傳功能將應(yīng)用程序保存在目標(biāo)上。

修改 plist 后,我??們可以立即重新加載 Dock。但是,這會(huì)導(dǎo)致最終用戶的屏幕出現(xiàn)短暫閃爍。或者,我們可以等待用戶重新啟動(dòng),然后再讓虛假應(yīng)用程序出現(xiàn)在 Dock 中,因?yàn)樾薷暮蟮?plist 將在重新啟動(dòng)后持續(xù)存在。

sublime text 3 函數(shù)追蹤_跟蹤函數(shù)_追蹤函數(shù)如何使用

2.攻擊方法

2.1 部署

如前所述,這種持久性方法需要將惡意應(yīng)用程序上傳到目標(biāo)。在此過程中,有多種方法可以繞過保護(hù),使我們能夠?qū)阂鈶?yīng)用程序上傳到目標(biāo)。這些方法包括:

1、將應(yīng)用程序包壓縮,在代理(或)中使用上傳命令,然后在目標(biāo)機(jī)中解壓。

2.將應(yīng)用程序包壓縮,托管在某處,使用curl下載到目標(biāo),然后在目標(biāo)機(jī)器上解壓。

3、將應(yīng)用程序包壓縮,并進(jìn)行編碼,解碼后保存在目標(biāo)上,然后在目標(biāo)電腦上解壓。

作為概念驗(yàn)證 (PoC),我簡(jiǎn)單地在“自動(dòng)化”中創(chuàng)建了一個(gè)應(yīng)用程序 ()。PoC 應(yīng)用程序?qū)⒋蜷_瀏覽器,以便最終用戶不會(huì)意識(shí)到這一點(diǎn)。然后,它將運(yùn)行我們的

在 PoC 應(yīng)用程序中,JXA 打開并執(zhí)行:

追蹤函數(shù)如何使用_跟蹤函數(shù)_sublime text 3 函數(shù)追蹤

為了向最終用戶隱藏它,我用瀏覽器替換了默認(rèn)的 圖標(biāo)。當(dāng)然,您可以使用 Xcode 創(chuàng)建更復(fù)雜的應(yīng)用程序。

帶有瀏覽器圖標(biāo)的PoC應(yīng)用程序,我們將其命名為:

追蹤函數(shù)如何使用_跟蹤函數(shù)_sublime text 3 函數(shù)追蹤

接下來,我將應(yīng)用程序包壓縮并上傳到目標(biāo)。將其解壓到 /Users// 后,如果滿足先決條件,我們就可以專注于調(diào)用持久性方法。

注意:由于 plist 的二進(jìn)制格式,自動(dòng)實(shí)現(xiàn)要求虛假應(yīng)用程序命名為“”或“”,并位于 /Users//。我們可以修改 變量來更改此位置。

2.2 呼叫持久性

將腳本導(dǎo)入代理:

跟蹤函數(shù)_sublime text 3 函數(shù)追蹤_追蹤函數(shù)如何使用

調(diào)用該函數(shù)。該函數(shù)接受三個(gè)參數(shù):應(yīng)用程序名稱(或)、ID 以及立即重新加載 Dock 的選項(xiàng)。

注意:ID在Info.plist中,可以使用以下命令獲取:

/usr// -c ‘打印’ ~//.app//Info.plist

調(diào)用代理中的函數(shù),指定ID以及是否重新加載Dock的選項(xiàng):

sublime text 3 函數(shù)追蹤_跟蹤函數(shù)_追蹤函數(shù)如何使用

3.檢測(cè)方法

它是一款快速捕獲主機(jī)事件的絕佳工具。它可以用作 macOS 的實(shí)時(shí)事件查看器。它的一個(gè)突出特點(diǎn)是利用了 Apple 的 (ESF)。ESF 可以監(jiān)視系統(tǒng)事件以發(fā)現(xiàn)潛在的惡意活動(dòng)。它實(shí)際上是系統(tǒng)擴(kuò)展框架中的一個(gè) API。相比之下,它可以理解為 macOS 上功能有限的事件跟蹤 (ETW)。

有了它,我們可以輕松查看持久執(zhí)行創(chuàng)建的文件和進(jìn)程事件。

對(duì)于不熟悉 ESF 的讀者sublime text 3 函數(shù)追蹤,您需要知道將同步以下事件:

XEC = ::exec

_EXIT = ::退出

= 文件::

= :kext::加載

= 文件::掛載

= 文件::

= 文件::

= ::

_FORK = ::fork

雖然它目前無法捕獲 _MMAP 和 _EXEC,但它捕獲了足夠的事件以用于這種持久性方法。如果你想檢測(cè)其他惡意活動(dòng),我強(qiáng)烈建議你使用它。

下面重點(diǎn)討論持久化方法的執(zhí)行,不同攻擊者使用的具體方法不同,實(shí)際惡意應(yīng)用對(duì)應(yīng)的事件可能會(huì)有所不同。

首先,將 Dock plist 轉(zhuǎn)換為 XML。XML 格式更易于使用。

將當(dāng)前的com.apple.dock.plist轉(zhuǎn)換為XML格式:

隨后,記錄文件創(chuàng)建和進(jìn)程創(chuàng)建。

.js 在 //tmp/ 中創(chuàng)建一個(gè)隨機(jī)命名的文件。此腳本會(huì)修改 plist 的 XML 版本,并使用隨機(jī)文件名保存。在本例中,惡意 plist 是 XML 格式,因此我們使用正確加載 Dock 所需的二進(jìn)制格式版本覆蓋此文件。

將修改后的 plist 轉(zhuǎn)換回二進(jìn)制格式:

接下來,.js 刪除 ~///com.apple.dock.plist 中現(xiàn)有的 plist。

刪除當(dāng)前的com.apple.dock.plist:

ESF 捕獲此操作并將新的惡意 plist 以二進(jìn)制格式保存到 ~///com.apple.dock.plist。

保存修改后的com.apple.dock.plist:

最后,由于我們?cè)诤瘮?shù)調(diào)用中指定重新加載Dock,因此這個(gè)函數(shù)會(huì)被調(diào)用。

重新加載 Dock:

這些事件是我們構(gòu)建檢測(cè)的起點(diǎn)。這里的關(guān)鍵是檢測(cè)是否存在。此外,文件創(chuàng)建、刪除和修改事件也可用于檢測(cè)。在攻擊者持續(xù)存在之前,還可以檢測(cè)到將惡意應(yīng)用程序上傳到目標(biāo)計(jì)算機(jī)的行為。

3.1 正常執(zhí)行

你可能有一個(gè)疑問,現(xiàn)在我們了解了 ESF 如何捕獲已知的惡意行為,那么 ESF 如何區(qū)分正常執(zhí)行呢?

在正常執(zhí)行下,(核心)將在 com.apple.dock.plist 上觸發(fā) file:: 事件(文件覆蓋)。當(dāng)用戶通過 GUI 手動(dòng)更改 Dock 時(shí),也會(huì)觸發(fā)這些事件。

com.apple.dock.plist的正常修改:

3.2 試圖逃避檢測(cè)

攻擊者可以在另一臺(tái)主機(jī)上修改 plist,然后將修改后的 plist 上傳到目標(biāo)機(jī)器,這將減少潛在指標(biāo)的數(shù)量。但是,這仍然會(huì)觸發(fā) file:: 事件,而進(jìn)程在正常執(zhí)行中不會(huì)使用該事件。因此,識(shí)別對(duì) plist 的非進(jìn)程修改可能是檢測(cè)惡意行為的良好標(biāo)準(zhǔn)。

在代理覆蓋的幫助下替換 com.apple.dock.plist:

3.3 可視化指標(biāo)

如果執(zhí)行 PoC 應(yīng)用程序,將導(dǎo)致 Dock 中出現(xiàn)兩個(gè)實(shí)例。

惡意應(yīng)用程序與合法應(yīng)用程序:

追蹤函數(shù)如何使用_sublime text 3 函數(shù)追蹤_跟蹤函數(shù)

第一個(gè)是惡意應(yīng)用程序,位于 plist 的“-apps”部分,而第二個(gè)是真實(shí)應(yīng)用程序,位于 plist 的“-apps”部分。

sublime text 3 函數(shù)追蹤_跟蹤函數(shù)_追蹤函數(shù)如何使用

四、其他指標(biāo)

查看 ESF 日志后,我注意到其中包含一些寫入數(shù)據(jù)庫的內(nèi)容。如果攻擊者利用了這一點(diǎn),需要注意的一點(diǎn)是,在 ~///com.apple./Cache.db 處有一個(gè)緩存數(shù)據(jù)庫。

注意:上述緩存數(shù)據(jù)庫創(chuàng)建僅適用于攻擊者使用二進(jìn)制文件的情況。此外,我還深入研究了使用替代方案的情況。為了進(jìn)行測(cè)試,我使用 Text 加載了 JXA dylib。與緩存數(shù)據(jù)庫位置不同,本例中的 C2 條目記錄在 ~///com..3/Cache.db 中。

使用相應(yīng)的數(shù)據(jù)庫瀏覽器查看數(shù)據(jù)庫后,我注意到該表包含服務(wù)器的 IP 地址以及用于命令和控制 (C2) 通信的 GET 請(qǐng)求的簡(jiǎn)短日志。此緩存內(nèi)容為緊急調(diào)查提供了寶貴的來源。

使用數(shù)據(jù)庫瀏覽器,我們可以在數(shù)據(jù)庫中看到C2通信的證據(jù):

還可以使用命令行工具查看這些條目:

sublime text 3 函數(shù)追蹤_跟蹤函數(shù)_追蹤函數(shù)如何使用

五、結(jié)論

在這篇文章中,我們演示了一種類似于 macOS 中 .LNK 文件的持久性攻擊方法。更重要的是,我希望本文分析的持久性指標(biāo)可以為正在開發(fā)檢測(cè)方法的研究人員提供幫助。如果您發(fā)現(xiàn)這種持久性方法的其他檢測(cè)指標(biāo),請(qǐng)隨時(shí)與我討論。

sublime text 3 函數(shù)追蹤_跟蹤函數(shù)_追蹤函數(shù)如何使用

6. 參考資源

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

如有侵權(quán)請(qǐng)聯(lián)系刪除!

13262879759

微信二維碼