作者:FA1C0N@RPO-Official
相關閱讀:《ATT&CK 初探--偵察階段》

介紹

RPO是一個信息安全愛好者成立的小組,我們致力于找到有趣且好玩,充滿挑戰性的東西。

前言

ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge )是一個攻擊行為知識庫和模型,主要應用于評估攻防能力覆蓋、APT情報分析、威脅狩獵及攻擊模擬等領域。從2013年MITRE首次提出這個概念,2015年ATT&CK框架正式發布。在2016年到2020年的一份Excel電子表格發展到如今的社區知識集合。簡單的說ATT&CK就是一張表,紅藍雙方按照表中的區塊對企業設施展開對抗,從而發現安全的薄弱點。我們未來會不斷更新整個框架的技術細節和利用/防御方式。

image-20210506211206510

正篇

資源開發利用階段(Resource Development)

攻擊者在試圖建立可以用來支持他們進行下一步行動的資源(基礎)。資源開發包括攻擊者創建、購買或破壞/竊取可用于滲透目標的資源的技術。此類資源包括基礎設施、帳戶或功能。攻擊者可以利用這些資源在整個攻擊周期的其他階段提供幫助。

由于整個資源開發階段的實施都與攻擊者自己部署的服務有關,所以防守方很難在相關的環節采取措施阻止和預防攻擊。因此我們只會在有有效緩解措施的攻擊方式下介紹緩解措施。

一 獲取基礎設施 (Acquire Infrastructure)

攻擊者在滲透目標期間可以購買或租用可使用的基礎設施。基礎架構解決方案包括物理或云服務器、域和第三方 Web 服務。此外,僵尸網絡也可供出租或購買。

域(Domains)

攻擊者會購買可在定位期間使用的域。域名可以指向一個或多個 IP 地址。攻擊者可以購買或者在某些情況下免費獲得。攻擊者可以將購買的域用于各種目的,包括網絡釣魚、入侵和命令與控制(C2)。攻擊者可以選擇與合法域相似的域,包括通過使用相近的字母和數字變換,相同含義的不同表述或使用不同的頂級域 (一級域名,例:com,xyz,org等)。

誤植域名攻擊(URL劫持)可用于借助Drive-by Compromise(例如某些XSS平臺:beef-xss)的方式交付有效載荷。

使用方式

beef

攻擊者還可以使用國際化域名 (IDN,某國語言+頂級域名的形式) 來創建視覺上相似的域以用于操作。

每個域名注冊商都維護一個可公開查看的數據庫,該數據庫顯示每個注冊域名的相關信息。但是攻擊者可能會使用域名隱私保護功能來掩蓋相關信息。攻擊者還可能會通過使用不同的注冊信息和向不同的域注冊商購買域來進一步阻斷跟蹤其基礎設施的工作。

防守方緩解措施

相關企業可以有意注冊與自己相似的域并且時刻關注域名的狀態,以阻止攻擊者創建相近域名或域名搶注。

DNS服務器(DNS Server)

攻擊者可以設置自己的DNS服務器。在入侵成功之后的活動期間,攻擊者可能會將 DNS 流量用于各種任務來降低被受害方發現的概率(DNS隧道),包括命令與控制(C2)。

攻擊者可以選擇配置和運行自己的 DNS 服務器來支持操作,而不是劫持現有的 DNS 服務器。使用自己的DNS服務器難度會低得多。

通過運行自己的 DNS 服務器,攻擊者可以更好地控制他們管理C2流量。通過對 DNS 服務器的控制,攻擊者可以配置 DNS 應用程序以提供對惡意軟件的條件響應,并且通常在基于 DNS 的 C2 通道結構方面具有更大的靈活性。

使用方式

現在有很多現成的工具可以用來搭建DNS隧道,例如dnscat2等。

虛擬專用服務器(Virtual Private Server)

攻擊者可以租用可在滲透目標期間使用的虛擬專用服務器 (VPS)。目前有多家云服務提供商將虛擬機/容器作為服務進行銷售。使用云基礎設施可以讓攻擊者更輕松地配置、修改、移動甚至銷毀他們的基礎設施。

獲取 VPS 也可用于攻擊的后期階段,例如命令與控制(C2)。攻擊者還可以從 VPS 服務提供商那里獲取基礎設施,這些服務提供商以極少的注冊信息租用 VPS 而聞名,從而允許更多地匿名獲取基礎設施。

常見的VPS服務提供商有搬瓦工,AWS,vultr等。

服務器(Server)

攻擊者在滲透目標期間可以購買、租用可使用的物理服務器。與VPS不同,攻擊者可以選擇配置和運行自己的物理服務器來執行攻擊,這使得搭建相關基礎設施時具有更高的自定義空間。高配置的物理服務器往往能表現出比VPS更好的性能。但相對而言,物理服務器的配置和移動沒有VPS輕松。

僵尸網絡(Botnet)

攻擊者可以購買、租用可在滲透目標期間使用的已被侵入可被控制的網絡。僵尸網絡是受感染系統的網絡,可以指示其執行協調任務。借助僵尸網絡,攻擊者可能會執行后續活動,例如釣魚或DDOS。

一些僵尸網絡掌握者往往通過出讓僵尸網絡的資源來獲取收益(挖礦,DDOS等)。

WEB服務(Web Services)

攻擊者可能會注冊可使用的 Web 服務。存在多種流行網站供攻擊者注冊基于 Web 的服務,這些服務可能會在攻擊者滲透周期的后期階段被濫用,例如在命令與控制(C2)或通過web服務滲透。

使用方式

利用社交工具的動態信息、個性簽名等來向已被控制的受害者機器發號施令。

相關工具

twittor:利用twitter做C2的工具

gcat:一個隱秘的基于 Python 的后門,使用 Gmail 作為命令和控制服務器

gdog:一個隱秘的基于 Python 的 Windows 后門,使用 Gmail 作為命令和控制服務器

二 盜取賬戶 (Compromise Accounts)

攻擊者可能會盜取帳戶。對于包含社會工程的操作,在線角色的利用會很重要。攻擊者可能會破壞,入侵現有帳戶,而不是創建帳戶。如果潛在受害者與被入侵賬戶的角色有一定的關系,則利用該角色可能會在潛在受害者群體中產生一定程度的信任(更有利于社工的展開)。

存在多種方法來盜取帳戶,例如通過網絡釣魚收集憑據、從第三方站點購買憑據或通過暴力破解憑據(重用密碼)。在入侵,盜取帳戶之前,攻擊者可能會進行偵察,以確定要入侵哪些帳戶來執行進一步操作的決策。

社交媒體賬戶(Social Media Accounts)

角色可能存在于單個站點或跨多個站點(例如:Facebook、LinkedIn、Twitter、Google 等)。被盜取的賬戶信息可能需要一定的修改,這可能包括填寫或修改個人資料信息、進一步開發社交網絡。

Email賬戶(Email Accounts)

攻擊者可能會直接利用被盜用的電子郵件帳戶進行社工攻擊(網絡釣魚等)。

三 攻陷基礎設施(Compromise Infrastructure)

與獲取基礎設施不同,直接攻陷基礎設施并作為自己的資源進行下一步操作可以隱藏攻擊者的行蹤(避免直接接觸,除非溯源者可以攻陷跳板),也會節省很多成本。但被攻陷的基礎設施建設起來也相當費力(如果不想被溯源者攻陷)

域(Domains)

攻擊者會在攻擊目標期間劫持目標的域或者子域。域名劫持注冊是未經原始注冊人許可便更改域名注冊,攻擊者通過獲取域所有者郵箱賬號,進而發送忘記密碼的郵件給域名注冊商,從而更改域注冊。攻擊者還可以借助社會工程學域名,續訂過期域名的方式實現攻擊。比如因名稱空間沖突造成的困擾,微軟以高價買下了魔鬼域名corp.com。還存在一些比如惡意搶注別的公司到期的域名,然后高價賣回去的操作。

當組織有指向不存在或取消分配資源的 DNS 條目時,可能會發生子域名接管。在這種情況下攻擊者可以控制子域進行操作,而該域名相關聯的信托也受益。

DNS服務器(DNS Server)

攻擊者會通過攻擊第三方DNS服務器,在 post-compromise期間,攻擊者會利用DNS協議作為C2協議等其他利用方式。

通過攻擊DNS服務器,攻擊者可以更改DNS記錄這種攻擊可以導致流量的重定向,攻擊者可以從中收集信息和憑證。攻擊者也可以將DNS解析到惡意服務器,而不是實際指向的位置。

使用方式

DNS污染和DNS劫持

虛擬專用服務器(Virtual Private Server)

攻擊者可能會隨機/針對性的對VPS服務器進行攻擊,獲取權限后將其作為基礎設施,從而隱蔽自己的攻擊IP,從而逃避防守方的溯源。

服務器(Server)

與上文中虛擬專用服務器的操作相似,故略過

僵尸網絡(Botnet)

攻擊者會破壞很多第三方系統,形成一個僵尸網絡。僵尸網絡是一個受破壞的網絡系統,可以執行調度任務,比如16年的Mirai網絡。攻擊者也可能對現有的僵尸網絡進行接管,例如將機器重定向到C2服務器上。除了這些,攻擊者還可以利用僵尸網絡實現大規模網絡釣魚或DDOS攻擊。

WEB服務(Web Services)

與上文中WEB服務的操作相似,故略過。

四 開發能力(Develop Capabilities)

攻擊者需要具備自行開發工具的能力,而不是購買、下載甚至竊取。這是識別開發要求和構建解決方案(例如惡意軟件、漏洞和自簽名證書)的過程。攻擊者可能會依賴自己的開發能力在接下來的步驟中發揮一定的作用。

開發能力可能需要不同的技能組合。所需的技能可能位于內部,也可能需要外包。

惡意軟件(Malware)

構建惡意軟件可能包括開發負載、裝載器(droppers)、后滲透工具、后門、免殺工具(packers)、C2 協議以及創建受感染的可移動媒體。攻擊者可能會開發惡意軟件來支持他們的操作,從而創建一種方法來持久化控制、繞過防御和后滲透的行為。

代碼簽名證書(Code Signing Certificates)

代碼簽名證書往往是具有迷惑性的東西。攻擊者可能會創建自簽名代碼簽名證書使被簽名的軟件具有一定的迷惑作用。代碼簽名是對可執行文件和腳本進行數字簽名以確認軟件作者并保證代碼未被更改或損壞的過程。代碼簽名為開發人員的程序提供了一定程度的真實性,并保證程序未被篡改。用戶或安全工具相對于未簽名的代碼會更信任簽名的代碼,即使他們不知道證書的頒發者或作者是誰。

在代碼簽名之前,攻擊者可能會開發自簽名證書以用于操作。

數字證書(Digital Certificates)

攻擊者可以創建自簽名/證書機構簽發的SSL/TLS證書。如果攻擊者竊取到受害者證書的密鑰,那么他們可以知道用該密鑰進行溝通的對話內容。攻擊者也可以用證書加密C2流量。

漏洞利用程序(Exploits)

漏洞利用往往通過錯誤或漏洞來導致計算機硬件或軟件上發生異常行為。攻擊者可能會尋找并開發自己的漏洞,而不是從網上查找/修改已有漏洞或從漏洞供應商處購買漏洞。攻擊者可能會使用通過漏洞獲取的信息來專注于漏洞利用開發工作。作為漏洞利用開發過程的一部分,攻擊者可能會通過模糊測試和補丁分析等方法發現可利用的漏洞。可以對某cms前后兩個版本進行對比,發現修復的地方然后反推漏洞所在。

攻擊者可能會在攻擊周期的各個階段使用漏洞利用(即利用面向公眾的應用程序、利用客戶端執行、利用特權升級、利用防御規避、利用憑據訪問、利用遠程服務以及利用應用程序或系統利用)。

五 建立賬戶(Establish Accounts)

攻擊者在攻擊過程中可以創建和培養一批賬號來進行更深層次的攻擊。攻擊者會在社交媒體,網站或其他公開信息中偽裝這批賬號的簡介,儀表,過往歷史和工作單位,從而在之后用這批虛假賬號進入目標企業/單位。

對于需要社會工程的攻擊來說,在線角色的利用非常重要。這些角色可能是虛構或者冒充真實的人。該角色可能存在于單個或多個網站,比如臉書,推特,github,dorkerhub等。

建立賬號還可以包括創建電子郵件提供商的賬戶,從而直接用于釣魚攻擊。

使用方式

這里只說一些常見的匿名郵箱和在線驗證碼接收平臺,不涉及黑灰產會用到的工具

https://10minutemail.com/

短信驗證碼在線接收碼平臺

社交媒體賬戶(Social Media Accounts)

與上文中盜取社交媒體賬戶之后的操作相似,故略過。

Email賬戶(Email Accounts)

與上文中盜取Email賬戶之后的操作相似,故略過。

六 獲取組件 (Obtain Capabilities)

攻擊者會購買/竊取/下載滲透過程中會使用到的組件,而不是自己內部開發。這些組件包含惡意軟件,工具及其許可證,漏洞,證書以及與漏洞相關的信息。這些組件可以在攻擊周期的多個階段提供幫助。

除了從網上下載免費惡意軟件,工具和漏洞外,攻擊者還可能從第三方購買這些組件。第三方包含專門開發惡意軟件,漏洞或個人。

除了購買,攻擊者還可能從第三方竊取這些組件,包含軟件許可證,惡意軟件,SSL/TLS和代碼簽名證書,或者查看或入侵公開/非公開的漏洞數據庫。

惡意軟件(Malware)

惡意軟件可以包括payload,后滲透工具,后門,裝載器,C2協議。攻擊者可以通過這些軟件獲取維持權限,繞過防護和執行后滲透攻擊。

這部分由于涉及的東西太多,我們會專門開一篇(挖個坑)文章介紹的。

工具(Tool)

工具可以是開源或閉源,免費或商業。一個工具只要能在攻擊中起到作用,即使它的本意不是惡意的也算作惡意工具,比如PsExec。設計商業許可證的紅隊團隊工具,比如CobaltStrike。商業軟件通過購買,竊取許可證或破解許可證獲得,比如Jetbrains全家桶,Visual Studio,burpsuite專業版等。

代碼簽名證書(Code Signing Certificates)

代碼簽名是數字簽名可執行文件和腳本的過程,以確認軟件作者并保證代碼未被更改或損壞,可用于繞過需要簽名代碼在系統上執行的安全策略。攻擊者會購買/竊取可以在攻擊中使用的代碼簽名,從而繞過安全控制。因為用戶信任被簽名后的代碼,而不是未簽名的代碼,即便這個簽名是攻擊者冒充/偽造的。

購買代碼簽名證書可以使用前組織或使用從以前受損的實體竊取的信息,使攻擊者能夠驗證證書提供商為該實體。攻擊者也可能直接從受損害的第三方竊取代碼簽名材料。

使用方式

windows購買合法代碼證書的方式如下:

https://docs.microsoft.com/zh-cn/windows-hardware/drivers/dashboard/get-a-code-signing-certificate

數字證書(Digital Certificates)

攻擊者可能會購買/竊取可用于滲透時的 SSL/TLS 證書。SSL/TLS 證書旨在確保信任關系。它們包括有關密鑰的信息、有關其所有者身份的信息以及已驗證證書內容的實體的數字簽名是正確的。如果簽名有效,并且檢查證書的人信任簽名者,那么他們知道他們可以使用該密鑰與其所有者進行溝通。

攻擊者可以購買或竊取 SSL/TLS 證書以推進其操作,例如加密 C2 流量(例如:與Web 協議的非對稱加密),如果證書可信或以其他方式添加到信任根源(即安裝根證書),則甚至啟用中間人。購買數字證書可以使用前組織或使用從以前受損的實體竊取的信息,使攻擊者能夠驗證證書提供商為該實體。攻擊者也可能直接從受損害的第三方(包括證書當局)竊取證書材料。攻擊者可能會注冊或劫持域名,然后購買 SSL/TLS 證書。

漏洞利用(Exploits)

Exploits 也就是我們常說的EXP/POC。攻擊者可能會購買、竊取或下載在滲透過程中可以使用的漏洞。漏洞利用錯誤,在計算機硬件或軟件上造成意外行為。攻擊者可能會從網上找到/修改漏洞,或者從漏洞利用供應商處購買,而不是開發自己的漏洞。

攻擊者可以監控漏洞披露網站來了解現有漏洞以及新發現的漏洞的狀態。在發現漏洞和公開漏洞之間通常存在延遲。攻擊者可以滲透已知進行開發研究和開發的系統,以便獲得這些知識,供后續操作使用。

使用方式

這里只推薦一些會直接給exp的漏洞網站/工具

seebug收錄的漏洞一般都會給漏洞的poc鏈接,再結合zoomeye/fofa就能愉悅喜加一(吐槽一下fofa,zoomeye每月10000免費接口查詢額度,fofa你好好學學,也吐槽一下zoomeye能不能開個夜間模式,界面太白看著難受)

Hacking8安全信息流

github-cve-monitor

漏洞信息(Vulnerabilities)

攻擊者會監控漏洞披露/數據庫,以了解現有漏洞以及新發現的漏洞的狀態。通常在發現漏洞和公開漏洞之間會有延遲,也就是我們常說的1day。攻擊者可能針對已知進行漏洞研究(包括商業供應商)的系統。對漏洞的了解可能導致攻擊者搜索現有漏洞或嘗試自行開發漏洞(即挖0day)。

七 籌劃能力(Stage Capabilities)

攻擊者在確定攻擊目標時會通過上傳,安裝或其他方式建立自己的能力。

籌劃能力可以幫助攻擊者進行一些初始化訪問和妥協后的行為,包括但不限于:

  • 借由不當操作的攻擊(Drive-by Compromise)

  • 通過xss注入合法網站竊取cookie/OAuth/身份令牌等

  • 通過廣告提供商的合法廣告插入惡意腳本
  • 在內置web應用程序界面的客戶端插入惡意腳本

  • 建立釣魚網站

  • 上傳軟件或者工具到撕開口子的服務器,從而繼續攻擊內網和部署C2工具。

  • 安裝之前獲得的SSL/TLS證書用于加密C2流量

上傳惡意軟件(Upload Malware)

攻擊者會將惡意軟件上傳到目標可以訪問的第三方軟件托管(如github、Pastebin、CNET、AWS 社區 AMIS、Docker Hub)或者攻擊者自己的基礎設施(服務器,網站等)。惡意軟件包含payload,dropper,后滲透工具,后門以及其他惡意內容。比如攻擊者會通過payload撕開外網的一個口子后,開始投放C2工具。

在運氣爆表的時候,受害者可能自己直接下載/安裝這些后門軟件。將后門軟件偽裝成合法的軟件能大大增加受害者無意間觸發這種漏洞的可能。比如之前的pip庫通過搶占和故意寫差字母誤使程序員安裝惡意pip包和phpstudy從非官網下載的版本被植入后門等事件。

上傳工具(Upload Tool)

這部分上傳的位置與上傳惡意軟件部分相同,因此不詳細展開。

安裝數字證書(Install Digital Certificate)

攻擊者可以安裝 SSL/TLS 證書,這些證書可用于優化攻擊,例如加密 C2 流量,或竊聽受害者的通信。數字證書的安裝可以針對許多服務器類型進行,包括 Web 服務器和電子郵件服務器。

Drive-by target

攻擊者可能會上傳或注入惡意內容,如javaScript,這可以通過多種方式實現,包括將惡意腳本直接插入網頁或其他用戶可控的 Web 內容(如論壇帖子)。攻擊者也可能制作惡意網絡廣告,并通過合法廣告提供商在網站上購買廣告空間。除此之外,攻擊者還可以編寫xss腳本來收集用戶的瀏覽器信息(如通過藍蓮花戰隊的xss平臺編寫利用腳本用來收集受害者主機信息),從而尋找受害者主機的其他供給面。

被攻擊者入侵并用于進行Drive-by的網站可能是特定社區(如政府、特定行業或地區)訪問過的網站,其目標是根據共同利益損害特定用戶或一組用戶。這種有針對性的攻擊是指戰略性迂回網絡攻擊(strategic web compromise,通過攻擊目標經常訪問的網站來達到入侵目的)或水坑攻擊(watering hole attack)。

攻擊者在獲取基礎架構(域)時可能會購買類似于合法域名(例如:同字形、錯別字、不同頂級域名等)的域名,以幫助Drive-by target。

攻擊者可以通過用戶點擊惡意鏈接從而泄露信息或者RCE。鏈接攻擊可以用于釣魚攻擊,例如發送一封帶有社會工程文字的電子郵件,誘騙用戶主動點擊或復制URL粘貼到瀏覽器中。

通常鏈接的目標站點是一個HTML界面,其中包含一些客戶端腳本如JavaScript等。攻擊者會克隆合法網站的登錄界面偽裝自己的釣魚站點,從而誘導用戶泄露自己的登錄憑證。

攻擊者也可能會上傳惡意軟件,并利用鏈接誘使用戶去下載/運行。

攻擊者可以在獲取基礎架構(域)時購買類似于合法域的域(例如:同字形、錯別字、不同頂層域名等),從而更好的偽裝站點,也可以使用短鏈接服務。

使用方式

下面兩個工具都可用于網站克隆

httrack

setoolkit

Refer

https://attack.mitre.org/tactics/TA0042/

https://www.secpulse.com/archives/94973.html

https://pentestlab.blog/2017/08/03/command-and-control-gmail/

https://zhuanlan.zhihu.com/p/86538629

https://zhuanlan.zhihu.com/p/338885271

https://blog.csdn.net/weiyuanke/article/details/87256937

https://blog.csdn.net/sojrs_sec/article/details/105634010


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1628/