成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

安全 黑客攻防
在本文中,我們展示了macOS中類似于Windows .LNK文件的持久化攻擊方法。

 一、背景

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

近期,我一直專注于macOS持久化領(lǐng)域,特別選擇了一些較低級(jí)別用戶可以修改的文件,而這些文件可能會(huì)影響用戶交互。我發(fā)現(xiàn),終端用戶經(jīng)常進(jìn)行交互的一個(gè)位置是Dock。

通過(guò)研究,我發(fā)現(xiàn)有一個(gè)plist負(fù)責(zé)控制Apple Dock應(yīng)用程序的可視化呈現(xiàn)。在這里沒(méi)有太多突破性內(nèi)容,因?yàn)榻K端用戶經(jīng)常會(huì)通過(guò)圖形化界面(GUI)來(lái)修改這一plist。在查看了plist中的值之后,我想探究是否可以更改這些值,從而使用運(yùn)行自定義代碼的惡意應(yīng)用程序來(lái)替換合法的應(yīng)用程序。

這項(xiàng)研究中的一個(gè)突破是DockPersist.js,我將其納入到PersistentJXA項(xiàng)目之中。在我的實(shí)現(xiàn)中,將使用惡意應(yīng)用程序替換Safari或Chrome。我主要研究Safari和Chrome,因?yàn)槎吆芸赡軙?huì)出現(xiàn)在用戶的Dock中。但是,這一理論實(shí)際上適用于任何應(yīng)用程序。終端用戶在單擊Safari或Chrome圖標(biāo)后,就會(huì)運(yùn)行我們的惡意應(yīng)用程序。這種持久化方式類似于Windows上的快捷方式(.LNK)文件持久化,因?yàn)樵趍acOS中,Dock圖標(biāo)通常會(huì)作為實(shí)際應(yīng)用程序的快捷方式。

這種持久化方法需要將我們的惡意應(yīng)用程序上傳到目標(biāo)計(jì)算機(jī)。我傾向于在Mythic代理中使用上傳功能,將應(yīng)用程序保存到目標(biāo)上。

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

二、攻擊方式

2.1 部署

前面已經(jīng)說(shuō)過(guò),這種持久化方式需要將惡意應(yīng)用程序上傳到目標(biāo)。在此過(guò)程中,有多種方法可以繞過(guò)Gatekeeper保護(hù),允許我們將惡意應(yīng)用程序上傳到目標(biāo)。這些方法包括:

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

2、壓縮應(yīng)用程序包,在某個(gè)位置托管,使用curl下載到目標(biāo),然后在目標(biāo)計(jì)算機(jī)中解壓縮。

3、壓縮應(yīng)用程序包,進(jìn)行Base64編碼,在進(jìn)行Base64解碼后保存到目標(biāo)上,然后在目標(biāo)計(jì)算機(jī)中解壓縮。

作為概念驗(yàn)證(PoC),我僅僅是在“自動(dòng)操作”(Automator)中創(chuàng)建了一個(gè)應(yīng)用程序。PoC應(yīng)用程序會(huì)打開(kāi)Safari瀏覽器,這樣就避免了終端用戶沒(méi)有感知的情況。然后,它將運(yùn)行我們的Apfell Payload。

在PoC應(yīng)用程序中,JXA打開(kāi)Safari并執(zhí)行Apfell Payload:

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

為了不讓終端用戶發(fā)覺(jué),我將默認(rèn)的“自動(dòng)操作”圖標(biāo)替換為Safari瀏覽器。當(dāng)然,如果使用Xcode,還可以創(chuàng)建更復(fù)雜的應(yīng)用程序。

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

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

接下來(lái),我壓縮應(yīng)用程序包,并將其上傳到目標(biāo)。在解壓縮到/Users/Shared/之后,我們可以集中精力,在滿足前提條件的情況下調(diào)用持久化方法。

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

2.2 調(diào)用持久化

將腳本導(dǎo)入Mythic中的Apfell代理:

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

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

注意:Bundle ID位于Info.plist中,可以使用以下命令來(lái)獲取:

  1. /usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' ~/FakeApp/Safari.app/Contents/Info.plist 

在Apfell代理中調(diào)用DockPersist函數(shù),指定Safari、Bundle ID和是否重新加載Dock的選項(xiàng):

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

三、檢測(cè)方法

Crescendo是一個(gè)能在主機(jī)上迅速捕獲事件的絕佳工具。Crescendo可以作為macOS的實(shí)時(shí)事件查看器,它的一項(xiàng)出色功能就是利用了Apple的終端安全框架(ESF)。ESF可以監(jiān)視系統(tǒng)事件中是否存在潛在的惡意活動(dòng),實(shí)際上它是系統(tǒng)擴(kuò)展框架中的一個(gè)API。與Windows相比較,可以將其理解為macOS上一個(gè)功能有限的事件追蹤(ETW)。

通過(guò)Crescendo,我們可以輕松地查看由持久化執(zhí)行創(chuàng)建的文件和進(jìn)程事件。

對(duì)于不太了解ESF的讀者,大家需要了解下面的一些事件會(huì)同步到Crescendo:

  1. ES_EVENT_TYPE_AUTH_EXEC = process::exec 
  2.  ES_EVENT_TYPE_NOTIFY_EXIT = process::exit 
  3.  ES_EVENT_TYPE_NOTIFY_CREATE = file::create 
  4.  ES_EVENT_TYPE_NOTIFY_KEXTLOAD = process:kext::load 
  5.  ES_EVENT_TYPE_NOTIFY_MOUNT = file::mount 
  6.  ES_EVENT_TYPE_NOTIFY_UNLINK = file::unlink 
  7.  ES_EVENT_TYPE_NOTIFY_RENAME = file::rename 
  8.  ES_EVENT_TYPE_NOTIFY_UIPC_CONNECT = network::ipcconnect 
  9.  ES_EVENT_TYPE_NOTIFY_FORK = process::fork 

盡管目前Crescendo不會(huì)捕獲ES_EVENT_TYPE_NOTIFY_MMAP、ES_EVENT_TYPE_NOTIFY_WRITE和ES_EVENT_TYPE_NOTIFY_EXEC,但它已經(jīng)捕獲到了這種持久化方式對(duì)應(yīng)的足夠多的事件。如果要應(yīng)對(duì)其他惡意活動(dòng),我強(qiáng)烈建議使用Xorrior的Appmon。

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

首先,plutil將Dock plist轉(zhuǎn)換為XML。XML格式更加易于操作。

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

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

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

DockPersist.js在/private/tmp/下創(chuàng)建一個(gè)隨機(jī)命名的文件。該腳本會(huì)修改plist的XML版本,并將其以隨機(jī)文件名保存。在這里,temp0wsn4p包含XML格式的惡意plist,因此我們用正確加載Dock所需的二進(jìn)制格式版本覆蓋了此文件。

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

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

接下來(lái),DockPersist.js在~/Library/Preferences/com.apple.dock.plist中刪除現(xiàn)有的plist。

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

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

ESF捕獲到這一動(dòng)作,并將新的惡意plist以二進(jìn)制格式保存到~/Library/Preferences/com.apple.dock.plist。

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

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

最后,由于我們?cè)诤瘮?shù)調(diào)用中制定了重新加載Dock,因此將調(diào)用killall。

重新加載Dock:

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

要建立檢測(cè)方式,這些事件就是我們的起點(diǎn)。這里的關(guān)鍵是檢測(cè)到了plutil和killall。此外,文件創(chuàng)建、刪除和修改事件也同樣可以用于檢測(cè)。在攻擊者進(jìn)行持久化之前,還可以針對(duì)將惡意應(yīng)用程序上傳到目標(biāo)計(jì)算機(jī)的這個(gè)動(dòng)作來(lái)進(jìn)行檢測(cè)。

3.1 正常執(zhí)行

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

在正常執(zhí)行的情況下,cfprefsd(Core Foundation Preferences Daemon)將會(huì)在com.apple.dock.plist上觸發(fā)file::rename事件(文件覆蓋)。當(dāng)用戶通過(guò)GUI手動(dòng)對(duì)Dock進(jìn)行更改時(shí),也會(huì)觸發(fā)這些事件。

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

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

3.2 嘗試逃避檢測(cè)

攻擊者可以在另一臺(tái)主機(jī)上修改plist,然后將修改后的plist上傳到目標(biāo)計(jì)算機(jī)的對(duì)應(yīng)位置,這樣就能減少潛在指標(biāo)的數(shù)量。但是,這樣做仍然會(huì)觸發(fā)file::rename事件,而這一事件不會(huì)使用在正常執(zhí)行情況下的cfprefsd進(jìn)程。由此看來(lái),識(shí)別非cfprefsd進(jìn)程對(duì)plist的修改動(dòng)作,可能是檢測(cè)惡意行為的一個(gè)較好的判斷標(biāo)準(zhǔn)。

借助Apfell代理覆蓋替換com.apple.dock.plist:

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

3.3 可視化指標(biāo)

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

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

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

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

四、其他指標(biāo)

在瀏覽ESF日志之后,我注意到了其中包含了寫入SQLite數(shù)據(jù)庫(kù)的一些內(nèi)容。如果攻擊者利用了osascript,則需要注意的一點(diǎn)是,osascript在~/Library/Caches/com.apple.osascript/Cache.db的位置有一個(gè)緩存數(shù)據(jù)庫(kù)。

注:上述緩存數(shù)據(jù)庫(kù)的創(chuàng)建僅適用于攻擊者使用osascript二進(jìn)制的情況下。除此之外,我還深入研究了如果使用OSAKit替代osascript的情況。為了進(jìn)行測(cè)試,我使用Sublime Text Plugin加載了JXA dylib。與osascript緩存數(shù)據(jù)庫(kù)的位置不同,在這種情況下的C2條目被記錄在~/Library/Caches/com.sublimetext.3/Cache.db之中。

使用SQLite對(duì)應(yīng)的數(shù)據(jù)庫(kù)瀏覽器查看該數(shù)據(jù)庫(kù)后,我注意到其中的cfurl_cache_response表中包含Mythic服務(wù)器的IP地址,以及Mythic中用于命令和控制(C2)通信的GET請(qǐng)求的簡(jiǎn)短日志。這個(gè)緩存內(nèi)容為應(yīng)急排查提供了寶貴的來(lái)源。

通過(guò)數(shù)據(jù)庫(kù)瀏覽器,在SQLite數(shù)據(jù)庫(kù)中查看到C2通信的證據(jù):

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

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

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

五、總結(jié)

在本文中,我們展示了macOS中類似于Windows .LNK文件的持久化攻擊方法。更重要的是,我希望本文中分析的持久化指標(biāo)可以幫助正在開(kāi)發(fā)檢測(cè)方式的研究人員。如果大家發(fā)現(xiàn)針對(duì)這一持久化方式還有其他檢測(cè)指標(biāo),歡迎與我探討。

六、參考資源

[1] https://posts.specterops.io/detection-engineering-using-apples-endpoint-security-framework-affdbcb18b02

[2] https://medium.com/red-teaming-with-a-blue-team-mentaility/taking-the-macos-endpoint-security-framework-for-a-quick-spin-802a462dba06

[3] https://attack.mitre.org/techniques/T1547/009/

[4] https://developer.apple.com/documentation/endpointsecurity?language=objc

[5] https://github.com/SuprHackerSteve/Crescendo

[6] https://bitbucket.org/xorrior/appmon/src/master/

[7] https://sqlitebrowser.org/

[8] https://eclecticlight.co/2017/07/06/sticky-preferences-why-trashing-or-editing-them-may-not-change-anything/

本文翻譯自:https://posts.specterops.io/are-you-docking-kidding-me-9aa79c24bdc1如若轉(zhuǎn)載,請(qǐng)注明原文地址:

 【編輯推薦】

 

責(zé)任編輯:姜華 來(lái)源: 嘶吼網(wǎng)
相關(guān)推薦

2025-03-13 16:46:10

2022-09-14 11:03:26

惡意軟件macOS

2009-09-29 16:11:45

Hibernate實(shí)現(xiàn)

2009-06-17 16:00:03

Hibernate自定

2013-09-12 14:56:02

iOS持久化

2025-03-25 14:39:37

2024-03-26 00:03:08

Redis數(shù)據(jù)RDB

2025-02-05 21:24:21

2014-02-25 09:29:41

2021-11-04 05:48:43

SSL加密攻擊勒索軟件

2009-01-04 09:57:24

2022-05-05 09:04:33

惡意軟件黑客

2021-12-15 12:00:17

Pythonpickle存儲(chǔ)

2023-08-29 07:34:43

Mimir微服務(wù)

2020-03-18 09:23:24

Python數(shù)據(jù)SQL

2010-09-27 09:13:36

Visual Stud

2023-08-30 07:19:49

2020-12-30 09:27:55

漏洞DDoS攻擊網(wǎng)絡(luò)攻擊

2011-05-16 09:19:51

2011-08-30 09:39:10

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: www成人免费视频 | 国产亚洲精品久久久久久牛牛 | 久久久国产一区二区三区四区小说 | av毛片| 久艹av | 日日操夜夜摸 | 夏同学福利网 | 国产精品久久久久久久久久久久久久 | 在线观看免费黄色片 | 国产高清视频在线观看 | 紧缚调教一区二区三区视频 | 亚洲一区二区精品视频 | 精品在线免费看 | 黄色网址免费在线观看 | 日韩一级电影免费观看 | 综合二区 | 国产三区在线观看视频 | 亚洲精品视频一区二区三区 | 色爱av| 亚洲草草视频 | 最新免费黄色网址 | 国产999精品久久久久久 | 91精品麻豆日日躁夜夜躁 | 国产精品黄视频 | 成人精品一区 | 成人精品视频免费 | 亚洲精品乱码久久久久久蜜桃91 | 欧美 日韩 国产 成人 在线 91 | 91传媒在线观看 | 精品国产欧美日韩不卡在线观看 | 免费黄色av网站 | 中文字幕第一页在线 | 在线观看成人免费视频 | 日一区二区 | 91精品国产91久久久久久最新 | 国产欧美日韩一区二区三区在线观看 | 国产高清免费 | 狠狠综合久久av一区二区小说 | 国产一区二区美女 | 一级片视频免费观看 | 日韩精品在线观看一区二区 |