iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Security

資安這條路:系統化學習藍隊技術系列 第 6

Day6:藍隊提升技術力: 網路釣魚分析(1)─信件釣魚基本知識

  • 分享至 

  • xImage
  •  

為什麼要從網路釣魚分析開始培養技術能力

從網路釣魚分析開始培養技術能力,是因為網路釣魚是現今最主要的攻擊途徑,其影響範圍涵蓋個人和企業,並且會造成機密性、完整性、可用性、財務、聲譽等多方面的損害。

  • 網路釣魚是最常見的攻擊手法: 與漏洞利用等其他攻擊方法相比,網路釣魚更容易成功,因為它利用的是人性的弱點,而非技術漏洞。攻擊者只需要發送大量看似合法的電子信件,就能誘騙受害者點擊惡意連結或下載惡意附件,進而竊取帳號密碼、安裝惡意軟體或進行其他惡意行為。
  • 網路釣魚造成的損失巨大: 網路釣魚攻擊可能導致企業和個人面臨嚴重的後果:
    • 企業: 商業機密洩露、營運中斷、商譽受損、龐大的經濟損失
    • 個人: 經濟損失、信用受損,甚至影響生活品質

從 ATT&CK 看釣魚

image

ATT&CK框架中對網路釣魚有三個相關的技術,以下透過拆解讓大家了解對應的特點與子技術。

T1598 - Phishing for Information (釣魚取得資訊)

這個技術主要用於偵查(Reconnaissance)階段,目的是取得敏感資訊,而非直接執行惡意程式碼。

主要特點

  1. 目的: 取得資訊,而非執行惡意指令
  2. 時機: 通常在攻擊的早期階段進行
  3. 目標: 取得帳號密碼、個人資料或其他可操作的資訊

子技術包括

  • T1598.001 - Spearphishing Service (針對性釣魚服務)
  • T1598.002 - Spearphishing Attachment (針對性釣魚附件)
  • T1598.003 - Spearphishing Link (針對性釣魚連結)
  • T1598.004 - Spearphishing Voice (語音釣魚)

T1566 - Phishing (釣魚)

這個技術屬於初始存取(Initial Access)戰術,目的是取得對受害系統的存取權限。

主要特點

  1. 目的: 取得系統存取權限
  2. 執行: 通常涉及惡意附件或連結的執行
  3. 範圍: 可以是針對性的或大規模的攻擊

子技術

  • T1566.001 - Spearphishing Attachment (針對性釣魚附件)
  • T1566.002 - Spearphishing Link (針對性釣魚連結)
  • T1566.003 - Spearphishing via Service (透過服務進行針對性釣魚)
  • T1566.004 - Spearphishing Voice (語音釣魚)

T1534 - Internal Spearphishing (內部針對性釣魚)

更進階的技術,屬於橫向移動(Lateral Movement)戰術。

主要特點

  1. 前提: 攻擊者已經取得了內部系統或帳號的存取權限
  2. 目的: 進一步擴大在組織內部的影響範圍
  3. 方法: 利用已被攻破的合法帳號來增加釣魚攻擊的可信度

分析重點

  1. 多樣化的攻擊途徑: 從ATT&CK的分類可以看出,釣魚攻擊不僅限於電子信件,還包括即時通訊、語音電話等多種管道。
  2. 攻擊階段的演進: 釣魚攻擊可以從初始的資訊收集(T1598),發展到系統存取(T1566),再到內部擴散(T1534)。
  3. 社交工程的重要性: 所有形式的釣魚都涉及社交工程,這強調了人為因素在網絡安全中的關鍵作用。
  4. 技術與非技術手段的結合: 釣魚攻擊結合了技術手段(如偽造信件頭)和非技術手段(如冒充可信來源),這增加了防禦的難度。
  5. 持續演化的威脅: ATT&CK框架的更新反映了釣魚攻擊技術的不斷演變,這要求防禦者需要持續學習和適應。

如何防禦釣魚,藍隊對應的能力

  • 防禦網路釣魚需要多方面的技術能力: 要有效識別、分類和防禦網路釣魚攻擊,需要掌握多種技術能力,以信件釣魚為例:
    • 了解電子信件的工作原理: 包括電子信件的基礎架構、通訊協定、信件結構等。
    • 熟悉網路釣魚攻擊的常見手法: 例如偽造寄件人地址、使用惡意連結、誘騙受害者提供敏感資訊等。
    • 掌握相關的分析工具和技術: 例如分析電子信件標頭、檢測惡意連結和附件、調查網路釣魚攻擊的來源等。

信件釣魚基礎

電子郵件的運作方式

首先,了解釣魚攻擊之前,我們需要知道電子郵件是如何運作的。電子郵件的傳遞依賴於一些關鍵的技術,如SMTPPOP3IMAP,以及背後的伺服器和軟體客戶端。

電子郵件地址是什麼

電子郵件地址有兩個部分:信箱名稱(mailbox 或稱為 local part)和網域(domain)。

例如在contact@feifei.tw中,contact是信箱名稱,feifei.tw是網域,這兩者合在一起,幫助電腦知道郵件應該發送給誰以及送到哪裡。

電子郵件傳輸協定

  1. SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協定)

    • 功能:負責電子郵件的發送。
    • 運作方式:SMTP 將郵件從寄件人的郵件伺服器傳送到收件人的郵件伺服器,通常用於郵件發送過程中的路由和傳遞。
    • 比喻:像是將信件送到郵局,郵局再將信件轉寄到目的地收件人的郵局。
  2. POP3(Post Office Protocol - Version 3,郵局協定第三版)

    • 功能:負責接收電子郵件。
    • 運作方式:POP3 會將郵件從伺服器下載到使用者的本地設備,下載後郵件通常會從伺服器刪除,這意味著郵件不再保存在伺服器上,適合單一設備的郵件接收。
    • 比喻:像是從實體郵箱取出信件,信件只保存在收件人手中,不再留在郵局(伺服器)。
  3. IMAP(Internet Message Access Protocol,網際網路訊息存取協定)

    • 功能:允許多設備同步查看和管理郵件。
    • 運作方式:IMAP 允許郵件保存在伺服器上,使用者可以從多個設備訪問郵件,這使得所有設備上的郵件狀態(例如已讀、未讀、刪除)能夠保持同步。
    • 比喻:像是將信件保存在雲端郵箱中,無論你在哪裡,都可以通過任何設備查看信件。

補充說明

  • SMTP 負責發送郵件,無法處理接收郵件的工作。
  • POP3IMAP 是用於郵件接收的協定,但方式不同。POP3 適合用單一設備接收郵件,而 IMAP 則適合需要跨多個設備同步郵件的使用者。
  • 現代電子郵件系統通常會同時使用 SMTP 來發送郵件,並使用 POP3 或 IMAP 來接收郵件,以實現完整的郵件收發功能。

電子郵件的傳遞過程

流程

  1. 撰寫與發送
    • 小明使用 Gmail 撰寫一封郵件並寄送給 me@feifei.tw
    • 郵件首先傳送到 Google 的 SMTP 伺服器。SMTP 是負責發送郵件的主要協定。
  2. 查詢收件人網域的位置
    • Google 的 SMTP 伺服器無法直接找到「feifei.tw」網域的位置。
    • SMTP 伺服器會向 DNS 伺服器查詢「feifei.tw」的 IP 地址,透過查詢 MX(Mail Exchange)記錄,來找到接收郵件的伺服器。
  3. 郵件傳送到目標伺服器
    • 確定 IP 地址後,郵件會經由網路傳輸到「feifei.tw」的 SMTP 伺服器。
  4. 儲存與查看
    • 「feifei.tw」的 SMTP 伺服器接收郵件後,會將郵件轉存至 POP3 或 IMAP 伺服器。
    • 收件人可使用郵件客戶端(如 Outlook 或 Webmail)從這些伺服器查看郵件。
  5. IMAP 與 POP3 的區別
    • IMAP:郵件保留在伺服器上,允許收件人從不同的設備檢視郵件。
    • POP3:郵件下載至本地設備,並從伺服器上刪除。

實作

目的:學習如何使用 Mailtrap 測試郵件發送功能,並了解郵件的結構和相關標頭資訊

步驟一:註冊 mailtrap.io

點選開始測試

image

步驟二:進入 My Inbox 中的 Intergration

可以看到 SMTP、API、POP3 包含測試的帳號密碼
image

步驟三:往下滑可看到程式碼範例

  • 以 cURL 為例
    image

步驟四:進行 cURL 測試

image

步驟五:進行收信

image

分析實作

1. 發送指令

echo 'Looking to send emails in production? Check out our Email API/SMTP product!' curl \
--ssl-reqd \
--url 'smtp://sandbox.smtp.mailtrap.io:2525' \
--user '90423217b87339:XXXXXXXXX' \
--mail-from from@example.com \
--mail-rcpt to@example.com \
--upload-file - <<EOF

解釋:

  • 使用 curl 指令發送信件的指令
  • --ssl-reqd: 要求使用 SSL 加密連接
  • --url: 指定 SMTP 伺服器地址和端口
  • --user: 提供 SMTP 認證資訊
  • --mail-from: 指定發件人地址
  • --mail-rcpt: 指定收件人地址
  • --upload-file -: 從標準輸入讀取信件內容

2. 信件標頭

From: Magic Elves <from@example.com>
To: Mailtrap Inbox <to@example.com>
Subject: You are awesome!
Content-Type: multipart/alternative; boundary="boundary-string"

解釋:

  • From: 發件人資訊
  • To: 收件人資訊
  • Subject: 信件主題
  • Content-Type: 指定信件內容類型為 multipart/alternative,使用 boundary-string 作為分隔符

3. 純文字內容

--boundary-string
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Congrats for sending test email with Mailtrap! If you are viewing this email in your inbox – the integration works.
Now send your email using our SMTP server and integration of your choice!
Good luck! Hope it works.

解釋:

  • Content-Type: 指定內容為純文字,使用 UTF-8 編碼
  • Content-Transfer-Encoding: 使用 quoted-printable 編碼方式
  • Content-Disposition: 指定內容應該內嵌顯示

4. HTML 內容

--boundary-string
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body style="font-family: sans-serif;">
    <div style="display: block; margin: auto; max-width: 600px;" class="main">
        <h1 style="font-size: 18px; font-weight: bold; margin-top: 20px">Congrats for sending test email with Mailtrap!</h1>
        <p>If you are viewing this email in your inbox – the integration works.</p>
        <img alt="Inspect with Tabs" src="https://assets-examples.mailtrap.io/integration-examples/welcome.png" style="width: 100%;">
        <p>Now send your email using our SMTP server and integration of your choice!</p>
        <p>Good luck! Hope it works.</p>
    </div>
    <!-- Example of invalid for email html/css, will be detected by Mailtrap: -->
    <style>
        .main { background-color: white; }
        a:hover { border-left-width: 1em; min-height: 2em; }
    </style>
</body>
</html>

解釋:

  • Content-Type: 指定內容為 HTML,使用 UTF-8 編碼
  • HTML 結構包含了信件的格式化內容
  • 包含內嵌的 CSS 樣式
  • 注意: 信件中的 HTML 和 CSS 支援有限,某些樣式可能在不同信件客戶端中無法正確顯示

5. 結束標記

--boundary-string--
EOF

解釋:

  • --boundary-string--: 表示多部分內容的結束
  • EOF: 表示整個信件內容的結束

小節

MIME 信件結構:

  1. 包含純文字版本和 HTML 版本的內容
  2. 使用 boundary-string 分隔不同部分
  3. 每個部分都有自己的頭部資訊,指定內容類型和編碼方式
  4. HTML 版本允許更豐富的格式和樣式

總結

  1. 網路釣魚的重要性
    • 網路釣魚是當前最主要的攻擊途徑,影響範圍廣泛。
    • 它利用人性弱點而非技術漏洞,造成的損失可能很大。
  2. ATT&CK框架中的釣魚技術
    • T1598: 釣魚取得資訊(偵查階段)
    • T1566: 釣魚(初始存取階段)
    • T1534: 內部針對性釣魚(橫向移動階段)
  3. 電子郵件基礎知識
    • 電子郵件地址結構:信箱名稱@網域
    • 主要協定:SMTP(發送)、POP3和IMAP(接收)
  4. 電子郵件傳遞過程
    • 撰寫與發送 -> DNS查詢 -> 傳送到目標伺服器 -> 儲存與查看
  5. 實作:使用Mailtrap進行郵件測試
    • 設置SMTP測試環境
    • 發送測試郵件
    • 分析郵件結構和標頭

下一步建議

  1. 深入學習電子郵件協定
    • 詳細研究 SMTP、POP3和 IMAP 的工作原理
    • 學習如何分析郵件標頭和追蹤郵件路由
  2. 釣魚郵件識別技巧
    • 學習常見的釣魚郵件特徵
    • 練習識別偽造的寄件人地址和惡意連結
  3. 實踐網路釣魚防禦
    • 設定郵件過濾器
    • 進行模擬釣魚攻擊測試
  4. 學習進階分析工具
    • 探索郵件分析工具,如MailHog或Papercut
    • 學習使用網路分析工具如Wireshark來觀察郵件傳輸

上一篇
Day5:資安風險管理與跨部門協作的關鍵
下一篇
Day7:藍隊提升技術力: 網路釣魚分析(2)─網路釣魚種類
系列文
資安這條路:系統化學習藍隊技術30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言