Skip to main content

Command Palette

Search for a command to run...

CName Hijacking

Updated
1 min read

小弟目前在一間 Defi 新創任職,我們常常因為臨時所需會需要在 AWS 以外的平台上建立服務,然後在 Route53 上建立 CName 紀錄指向該服務。同時我們又有在 Immunefi 平台上進行資安懸賞,其中我們有一個懸賞項目是我們公告的子網域只要你能造成維護,我們就視為高風險而給予賞金。

而要發現該域名下有多少 subdomain 或是有什麼 CName 本身也不難,有簡單的方式能白嫖。我們自己有用 DNS subfinder 這工具在 GitLab schedule CI 上每天檢查有公司主域名下哪些subdomain。也有 AWS CLI 能取得 route53上的全部紀錄。但維運人員只知道這 CName 紀錄存在並指向某個外部資源,但其實他不知道這外部資源是不是還存在,就算還存在還是我們的嗎? (此時可能有人會嘴,用Terraform 部署? 也得你都有綁 EIP 啊, TF 每次重建資源都是全新的那 IP 也是狂變。)

GitLab 排程每天都在檢查。

下圖是簡易的圖示,瀏覽器輸入網址後怎麼透過 CName 指向到服務。

How Route 53 Routes Traffic

然後近期有兩次,我們一個名為 sandbox.xx.xx 的子域名的網站被劫持了,該服務本來指向 GCP 某台服務,但因為是演示用的,某天就下架該服務了。但此時 Route53 上的.CName 還是指向該 IP。就給獵人們有機會搞台機器,綁定這CName指定的 IP,然後就順理成章的劫持走了 XD,再來通報,2500 美刀就得手了。

經過這故事我們可以簡單地知道,SubDomain hijack 或叫 SubDomain takeover的幾種攻擊方式:

  1. DNS CNAME 或 A 記錄指向第三方

  2. 第三方資源被移除或停用

    • 開發團隊可能在部署或維護後,忘記刪除 DNS 記錄。
  3. 攻擊者發現該映射仍可被使用

    • 註冊相同名稱的 S3 bucket、建立同名的 GitHub Pages Repo,或重新啟用同名的 Heroku app。
  4. DNS 解析依然生效

SubDomain Finder

SubDomain Finder 是用 Go 開發的工具,所以能安裝在各種 OS 上執行。簡單用法如下

subfinder -d domain_name -o output

能看見小弟公司的網域下有超多 sub domains。這要管理起來其實頗累人。

如果要知道有哪些 CName 或 A 紀錄?

Cloudflare … 就能了 XD 小弟公司沒在 CF 上註冊自己是該網域的擁有者,且禁止閒雜人等透過 CF 來掃描。

像是你能輸入 104.com.tw CF就會顯示出 The zone name provided is subject to a hold which disallows the creation of this zone. Please contact the owner of the Cloudflare account that manages this domain to have the hold removed. 禁止我們掃描。

1111.com.tw 則是沒買所以…也是一覽無遺啊 XD

首先來到 CF 首頁點擊 Add a domain

輸入 Domain 後,按下 Countine。

啥就都出來了 XD 還能去改呢。自然就能知道你有哪些 IP 能虎視眈眈來做劫持了。

總結

我知道現在很多方便的託管平臺,像是小弟公司最近用的 Render 其他還有很多。但千萬要記住,在這種平台上建立資源,然後有 A or CName 指向這裡的話。當資源移除時,記得 DNS 上的紀錄也得要跟著移除掉。不然就是等著被劫持,不論是去跟公司要錢,或者用來當作釣魚網站跟使用者做釣魚或社交攻擊。都是很容易留給駭客作為攻擊手段的。

72 views

More from this blog

Claude Code 監控秘錄:OpenTelemetry(OTel/OTLP)實戰指南

稟告主公:此乃司馬懿進呈之兵書,詳解如何以 OpenTelemetry 陣法,令臥龍神算之一舉一動盡在掌握,知糧草消耗、察兵器效能、辨戰報異常,使主公運籌帷幄於大帳之中。 為何需要斥候情報? 司馬懿稟告主公: 臥龍神算(Claude Code)乃當世利器,然若無斥候回報,主公便如蒙眼行軍——兵器耗損幾何、糧草消費幾許、哪路斥候出了差錯,一概不知。臣以為,此乃兵家大忌。 無情報之弊,有四: 軍

Feb 19, 202610 min read162
Claude Code 監控秘錄:OpenTelemetry(OTel/OTLP)實戰指南

工程師的 Claude Code 實戰指南:從零開始到高效開發

工程師的 Claude Code 實戰指南:從零開始到高效開發 本文整合 Anthropic 官方 Best Practices 與社群實戰 Tips,帶你由淺入深掌握 Claude Code。 什麼是 Claude Code?為什麼值得學? 如果你還在用「複製程式碼貼到 ChatGPT,再複製答案貼回去」的工作流程,Claude Code 會讓你大開眼界。 Claude Code 是 Anthropic 推出的命令列工具,它直接活在你的 terminal 裡,能夠讀懂你的整個 codeb...

Feb 18, 20265 min read72
工程師的 Claude Code 實戰指南:從零開始到高效開發

System Design Interview Ch 12 Digital Wallet

確立問題與設計範疇 角色對話內容 面試者我們應該只關注兩個數位錢包之間的餘額轉帳操作嗎?我們是否需要擔心其他功能? 面試官讓我們只關注餘額轉帳操作。 面試者該系統需要支援多少 TPS(每秒交易次數)? 面試官讓我們假設是 1,000,000 TPS (每秒 100 萬次交易)。 面試者數位錢包對正確性有嚴格的要求。我們可以假設事務保證 就足夠了嗎? 面試官聽起來不錯。 面試者我們需要證明正確性嗎? 面試官這是一個很好的問題。正確性(Correctness)通常只有在交...

Feb 2, 202610 min read190
System Design Interview Ch 12 Digital Wallet

Claude Code 利用 Event-Driven Hooks 打造自動化開發大腦

在現代 AI 輔助開發中,我們不僅需要 AI 寫程式,更需要它懂規則、記性好,並且能自動處理那些繁瑣的雜事。透過 Claude Code Hooks 機制,我們可以介入 AI 的思考與執行迴圈,實現真正的「人機協作自動化」。 一、 動機與痛點:為什麼你需要介入 AI 的生命週期? 在預設狀態下,Claude Code 雖然強大,但它是「被動」且「無狀態」的,這導致了開發者常遇到以下痛點: 記憶重置 (Session Amnesia): 痛點:每次重啟終端機,AI 就像失憶一樣。 解法:你...

Jan 24, 20266 min read441
Claude Code 利用 Event-Driven Hooks 打造自動化開發大腦
M

MicroFIRE

71 posts