目錄
第一步:找出
#第二步:定位
首頁 運維 安全 如何進行基於威脅情報週期模型的APT木馬剖析

如何進行基於威脅情報週期模型的APT木馬剖析

May 14, 2023 pm 10:01 PM
apt

關於威脅情報處理週期模型

「威脅情報處理週期」(F3EAD)一詞源自於軍事,是美陸軍為主戰兵種各級指揮官設計的組織資源、部署兵力的方法。網路緊急應變中心借鏡這套方法,分成以下六個階段處理威脅情報資訊:

如何進行基於威脅情報週期模型的APT木馬剖析威脅情報處理週期F3EAD

威脅情報處理週期模型的應用程式

第一步:找出

某月某日,部署在合作方公有雲端伺服器上的「洋蔥「系統警告發現疑似木馬程序,於是應急響應團隊快速啟動應急相應流程:

幹係人等一鍵拉群,電話接入。

受害系統隔離待查。

安全系統、稽核日誌匯出待溯源分析。

業務系統架構、程式碼相關資料準備,待分析入侵突破口及受影響範圍

#第二步:定位

根據安全系統的審計記錄發現,惡意文件目錄存在另一個*.ko文件,而此文件是透過scp從另一伺服器傳過來。

由此可見,攻擊者先拿到某個存在弱點的伺服器權限,然後再跳轉scp木馬檔案到包括目前受害機在內的透過已攻陷的伺服器可存取的機器,並安裝控制。

接下來咱們重點分析這組木馬文件,根據AV廠商的命名規則(附錄1),暫為其命名為"Backdoor:Linux/Rmgr!rookit",其中「rmgr」來至木馬程式碼中多個函數用了rmgr前綴。

2.1. 木馬檔案

目前已經掌握的木馬檔案分成四部分,其功能簡單描述如下:

如何進行基於威脅情報週期模型的APT木馬剖析

2.2 木馬工作流程

木馬從植入到運行,包括後續可能的滲透活動都採用了各種技術進行隱藏,如果沒有安全系統則很難發現。同時,該木馬也做了很多對抗,常規的安全監測能力未必可以發現。其運作流程簡要描述如下圖:

如何進行基於威脅情報週期模型的APT木馬剖析

#木馬工作流程

2.3 木馬各部份主要功能

1. rmgr.ko

rootkit採用常見的LKM核心模組。下面逐一列舉此rootkit載入後的主要操作。

1)proc_create_data建立虛擬檔案/proc/.dot3,用於後續與木馬用戶態進程互動;

2) register_kprobe註冊4個kp結構體:

kp_kallsyms_lookup_name\krp_alloc_pid\kp_do_exit\kp_seq_path,用於透過kprobe來搶先在系統執行到這些函式的時候抹除對木馬程序的動作;

如何進行基於威脅情報週期模型的APT木馬剖析

#kp#註冊的處理函數,fake_seq_path用來摘除核心程序鍊錶;

如何進行基於威脅情報週期模型的APT木馬剖析

4) 當系統有讀取「/proc/net/tcp」檔案的時候,由fake_seq_show處理,抹除木馬網路連線;

如何進行基於威脅情報週期模型的APT木馬剖析

5) 在fake_sys_getdents中patch vfs_readdir,抹除所有與木馬相關的資訊;

如何進行基於威脅情報週期模型的APT木馬剖析

#6) 當系統對木馬相關檔案存取的時候,會由fake_filldir處理,根據判斷呼叫者是否木馬操作來決定是否回傳正確結果;

如何進行基於威脅情報週期模型的APT木馬剖析

7 ) 在核心模組鍊錶中刪除自己,kobject_del刪除自己的核心物件;

如何進行基於威脅情報週期模型的APT木馬剖析

#8) kthread_create建立核心執行緒dot_thread

如何進行基於威脅情報週期模型的APT木馬剖析

##建立核心模組自啟動/etc/sysconfig/modules/ati_remote3.modules

寫入核心模組檔案/lib/modules/%s/kernel/drivers/input/misc/ati_remote3. ko

釋放rmgr_fake_libc.so檔案到磁碟

釋放rmgr_daemon檔案到磁碟,並以「[khelper]」進程名稱透過call_usermodehelper_exec運行它。

如何進行基於威脅情報週期模型的APT木馬剖析

2. rmgr__fake_libc.so

此共用程式庫文件,由核心rootkit釋放寫入磁碟,路徑為/tmp/.tmp_{21個隨機字母數字},用於木馬的使用者態進程的行為隱藏。

subhook前綴的函數摘抄自開源程式碼(附錄2),詳細功能請移步github圍觀,本文不贅述。

如何進行基於威脅情報週期模型的APT木馬剖析

fake前綴的函數主要用於對抗常見HIDS的進程和命令記錄,fork和execve直接透過syscall調用,而不使用glibc的封裝,避開了hook glibc方式的HIDS。

如何進行基於威脅情報週期模型的APT木馬剖析

fake_bash_add_history則讓bash指令稽核功能失效。

如何進行基於威脅情報週期模型的APT木馬剖析

3. rmgr_daemon

#此程序由rmgr.ko釋放寫入磁碟,路徑為/tmp/.tmp_{21個隨機字母數字}。由C 開發,編譯後upx加殼壓縮,直接用開源軟體upx -d rmgr_daemon即可脫殼,並無特殊處理。

它主要有的功能有:

1) 監控核心模組狀態,與核心rootkit資訊互動;

如何進行基於威脅情報週期模型的APT木馬剖析2) 更新;

如何進行基於威脅情報週期模型的APT木馬剖析3) 產生rmgr_fake_sshd,並且patchELF,修改依賴的動態函式庫,也就是加入rmgr_fake_libc.so,功能如前述;

##從核心取得路徑如何進行基於威脅情報週期模型的APT木馬剖析

#返迴路徑如何進行基於威脅情報週期模型的APT木馬剖析

如何進行基於威脅情報週期模型的APT木馬剖析

patch ELF

4) 連接C2 hm2.yrnykx.com;

5) 管理rmgr_fake_sshd;如何進行基於威脅情報週期模型的APT木馬剖析

#其中patchELF程式碼摘錄自GitHub - NixOS/patchelf (附錄3)

4. rmgr_fake_sshd

檔案由rmgr_daemon寫入磁碟,路徑為/tmp/.tmp_{ 21個隨機字母數字},它的運作均由rmgr_daemon管理。

作為後門它硬編碼了PRIVATE KEY ,如下圖:

如何進行基於威脅情報週期模型的APT木馬剖析

#因為透過patchELF hook了部分函數,實現了ssh登入之後的命令執行等行為的隱匿。而rmgr_fake_sshd本身,以及ssh登入派生的子程序均透過rmgr.ko根據前述分析透過patch核心呼叫實現隱匿。

rmgr_fake_sshd啟動時載入了硬編碼的sshd_config,請注意其中幾個關鍵配置。

監聽在本地的26657端口,rmgr_daemon連接此端口轉發來至C2的ssh指令。這裡實作了擬合業務環境常用網路協議,使得常規的NIDS的偵測邏輯被繞過。 如何進行基於威脅情報週期模型的APT木馬剖析

第三個步驟:消除

這裡主要是指加固,避免被攻擊者以同樣的手法攻擊。具體手段如下:

突破口加固,補丁更新,ACL加固。

維運通道,停用舊帳戶,修改攻擊連結中伺服器帳戶,並上雙重認證。

根據使用者角色限定可存取系統範圍。

受害系統dump保存虛機鏡像,待查。

重裝受害系統,重新發布部署業務環境。

新系統核心模組載入要求簽名校驗。

第四步:利用

完成緊急應變工作,分析完事件現場和文件之後,整個事件中提取到的關鍵資訊將沉澱為威脅情報。本文將威脅情報金字塔模型的內容縮減到iocs和ttps兩部分,ttps用att&ck矩陣模型做歸納。

威脅情報金字塔模型如何進行基於威脅情報週期模型的APT木馬剖析

1. iocs

1) md5:

7d859a22f38f0bcd55a46bc8b67c40df

fa73b2fd914a0cfd5e7d#21

#fa73b2fd914a0cfd5e7d#2110

hm2.yrnykx.com

2. ttps

如何進行基於威脅情報週期模型的APT木馬剖析

第五步:分析

從上節ttps可以看出來,att&ck矩陣並不能完全覆蓋此次木馬用於對抗安全系統的全部隱匿手段。

粗略的分類其隱匿(進程、網路、檔案)手段有:

C2透過fake_sshd避開NIDS的偵測;

透過patchELF繞過hook libc的命令審計HIDS;

透過fake_bash_add_history讓shell審計失效;

透過patch seq_show修改系統對/proc下檔案資訊讀取的返回,實現對木馬相關的檔案、進程、網路連接資訊的隱匿;

透過patch vfs_readdir實現隱藏木馬檔案;

透過摘除內核進程、模組鍊錶訊息,避免被rookit偵測工具發現核心中木馬痕跡;

可見,此木馬套裝存在大量技術細節來對抗安全系統,不過它主要針對市面上已知的一些舊款HIDS和事後取證調查工具。核心態的進程派生syscall hook和inotify 雲端查殺還是可以發現它的。

如何進行基於威脅情報週期模型的APT木馬剖析木馬與安全系統的對抗維度

一套完整的木馬系統不可能僅僅因為一次滲透入侵而開發,必然會借鑒很多開源或者家族代碼。所以從溯源角度來說,可以做程式碼「考古」工作,同時將相關程式碼風格和木馬行為納入安全系統特徵庫。限於篇幅,暫不在此贅述。

第六步:傳播

傳播即是本文本身。

總結

事實上,實際的事件回應處置過程順序不可能完全跟上述流程一致。但走完整套流程,筆者認為才能算是安全事件處置圓滿的結束。其實,F3EAD流程比較重視情報從分析到應用(改善安全對抗能力),特別是在「分析」階段的反覆迭代。

如何進行基於威脅情報週期模型的APT木馬剖析F3EAD週期的分析階段(迭代)

從冰冷的情報到落地到我們安全系統安全能力的提升,這才實現了威脅情報的真正價值。

以上是如何進行基於威脅情報週期模型的APT木馬剖析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
使用ZoomEye尋找APT攻擊的範例分析 使用ZoomEye尋找APT攻擊的範例分析 May 27, 2023 pm 07:19 PM

ZoomEye線上的數據是覆蓋更新的模式,也就是說第2次掃描如果沒有掃描到數據就不會覆蓋更新數據,ZoomEye上的數據會保留第1次掃描獲取到的banner數據,這個機制在這裡種惡意攻擊溯源裡其實有著很好的場景契合點:惡意攻擊比如Botnet、APT等攻擊使用的下載伺服器被發現後一般都是直接停用拋棄,當然也有一些是被駭的目標,也是很暴力的直接下線!所以很多的攻擊現場很可能就被ZoomEye線上緩存。當然在ZoomEye歷史api裡提供的數據,不管你覆蓋不覆蓋都可以查詢出每次掃描得到的banner數

Linux套件管理工具yum和apt有什麼差別 Linux套件管理工具yum和apt有什麼差別 May 30, 2023 am 09:53 AM

一般來說著名的Linux系統基本上分為兩大類:RedHat系列:Redhat、Centos、Fedora等;Debian系列:Debian、Ubuntu等。 yum(YellowdogUpdater,Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體套件管理器。 apt(AdvancedPackagingTool)是一個在Debian和Ubuntu中的Shell前端軟體套件管理器。概述一般來說著名的Linux系統基本上分為兩大類:RedHat系列:Redhat、Cento

如何進行基於威脅情報週期模型的APT木馬剖析 如何進行基於威脅情報週期模型的APT木馬剖析 May 14, 2023 pm 10:01 PM

關於威脅情報處理週期模型「威脅情報處理週期」(F3EAD)一詞源自於軍事,是美陸軍為主戰兵種各級指揮官設計的組織資源、部署兵力的方法。網路緊急應變中心借鏡這套方法,分以下六個階段處理威脅情報資訊:威脅情報處理週期F3EAD威脅情報處理週期模型的應用第一步:找出某月某日,部署在合作方公有雲伺服器上的「洋蔥」系統警告發現疑似木馬程序,於是應急響應團隊快速啟動應急相應流程:幹係人等一鍵拉群,電話接入。受害系統隔離待查。安全系統、稽核日誌匯出待溯源分析。業務系統架構、程式碼相關資料準備,待分析入侵突破口及受

如何更改Ubuntu的apt-get更新來源? 如何更改Ubuntu的apt-get更新來源? Jan 05, 2024 pm 03:40 PM

手動修改Ubuntu的apt-get來源1、用ssh工具連接到Ubuntu(我用的xshell)2、命令列敲入cd/etc/apt/3、備份此目錄下的source.list檔(要有sudo權限),此時就有了一個source.list.bak檔4、清空source.list檔內容(註:清空後不可恢復,所以需要執行上一步提前備份一下這個檔),此時用sudo提示權限不夠,直接切換到root用戶下執行這條指令5、用vim開啟source.list,按i鍵進入編輯模式把要修改的來源位址貼進來,然後按

deepin系統安裝php8教學。 deepin系統安裝php8教學。 Feb 19, 2024 am 10:50 AM

在Deepin系統上安裝PHP8,您可以按照以下步驟進行操作:更新系統:打開終端,並執行以下命令來更新系統軟體包:sudoaptupdatesudoaptupgrade新增OndřejSurýPPA來源:PHP8可以透過OndřejSurýPPA來源進行安裝。執行下列命令來新增此來源:sudoaptinstallsoftware-properties-commonsudoadd-apt-repositoryppa:ondrej/php更新軟體包清單:執行下列命令來更新軟體包清單以取得PPA來源中的PHP

Ubuntu 20.04系統編譯安裝MySQL5.7教學。 Ubuntu 20.04系統編譯安裝MySQL5.7教學。 Feb 19, 2024 pm 04:57 PM

可以透過使用MySQL官方的APT儲存庫來安裝MySQL5.7。以下是在Ubuntu20.04系統上透過官方APT儲存庫安裝MySQL5.7的步驟:新增MySQLAPT儲存庫:wgethttps://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.debsudodpkg-imysql -apt-config_0.8.17-1_all.deb在安裝過程中,您將看到一個設定介面。選擇MySQLServer版本為5.7,然後完成設定。更新軟體包列表:sud

Ubuntu系統中找不到yum及安裝方法! Ubuntu系統中找不到yum及安裝方法! Mar 02, 2024 pm 01:07 PM

yum是RedHat系列發行版(如RHEL和CentOS)中的套件管理器,而Ubuntu使用的是另一個套件管理器,名為apt(AdvancedPackageTool)。在Ubuntu系統中,您可以使用apt指令來管理軟體包。以下是在Ubuntu系統中安裝軟體包的基本步驟:更新軟體包索引在執行任何安裝操作之前,首先執行以下命令以更新軟體包索引:sudoaptupdate安裝軟體包使用以下命令來安裝特定的軟體包:sudoaptinstallpackage_name將」package_name&#822

Ubuntu 18.04系統編譯安裝Docker教學。 Ubuntu 18.04系統編譯安裝Docker教學。 Feb 19, 2024 pm 02:03 PM

以下是Ubuntu18.04系統編譯安裝Docker的教學課程:卸載舊版Docker(如果已安裝):sudoaptremovedockerdocker-enginedocker.iocontainerdrunc更新系統軟體包:sudoaptupdatesudoaptupgrade安裝Dockeracties:sudoapt-capt-transport-Pet-transport-com官方的GPG金鑰:curl-

See all articles