前兩篇文章我們已經設定好環境,並更深入了解前後端的概念。現在,我們繼續拆解,當我們面對一個網站時,還會發現哪些架構呢?
以我們的 nodelab.feifei.tw 為例,上一篇提到了域名和子域名的概念,接下來針對域名進行詳細說明。
域名的存在是為了讓我們更容易記住並找到所需的資源,其背後對應著一組 IP 位址。
在討論域名前,先來了解一下 IP 位址的概念。
IP 位址(Internet Protocol Address)是指派給網路上每個設備的獨特數字識別碼。其主要功能包括:
前兩篇提到的 HTTP 所傳送的內容,就是封包。
IPv4(Internet Protocol version 4)
IPv6(Internet Protocol version 6)
雖然 IP 位址對網路通訊至關重要,但它們不容易被人記住和使用。
這就是我們需要域名系統(DNS,Domain Name System)的原因:
在 Windows 和 Linux 系統中,都可以使用以下指令:
nslookup nodelab.feifei.tw
在進行網站安全滲透測試時,域名往往是獲取目標資訊的重要起點。
透過對域名的深入分析,可以取得大量資訊。
許多企業會為不同的服務或部門使用不同的子域名。
像 Sublist3r、Amass 等工具可用於自動化子域名發現。
測試環境(如 test.example.com)往往安全措施較弱,是潛在的突破口。
許多工程師為了測試網站,也會將測試伺服器的 IP 對應到 test 或 testweb 這種子域名。
線上工具可能會使用 DNSDumpster.com 來檢查對應的資訊。
輸入對應的「主要域名」就可以透過該工具查詢相關資訊。
DNS 伺服器有不同的廠商可供使用,可以是自己架設的 DNS 伺服器,也可以放在購買域名的廠商處:
如圖所示,可以看到 feifei.tw 是放在 CDN 廠商 CloudflareNet 中。
DNS 伺服器中有許多不同種類的記錄:
A 記錄可能讓我們得知機器的位置,甚至是機器廠商。
定義:A 記錄將域名直接對應到一個 IPv4 位址。
範例:
example.com. IN A 203.0.113.1
資安考量:
安全建議:
定義:MX 記錄指定負責處理該域名郵件的郵件伺服器。
範例:
example.com. IN MX 10 mail.example.com.
資安考量:
安全建議:
SPF(Sender Policy Framework)
目的:防止郵件詐騙和垃圾郵件。
運作方式:指定哪些郵件伺服器被授權發送該域名的電子郵件。
範例:
v=spf1 ip4:192.0.2.0/24 include:_spf.example.com -all
解釋:此 SPF 記錄允許來自 192.0.2.0/24 IP 範圍的伺服器發送郵件,同時包含另一個 SPF 記錄,並拒絕所有其他來源。
DKIM(DomainKeys Identified Mail)
目的:驗證郵件的完整性,確保郵件在傳輸過程中未被篡改。
運作方式:使用簽章來驗證郵件。
範例:
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC...
解釋:這是 DKIM 的公鑰,用於驗證郵件的數位簽章。實際的 TXT 記錄會更長,包含完整的公鑰。
DMARC(Domain-based Message Authentication, Reporting & Conformance)
目的:結合 SPF 和 DKIM,提供更完整的郵件驗證策略。
範例:
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com
解釋:此 DMARC 策略指示接收方將未通過驗證的郵件隔離,並將報告發送到指定的信箱。
定義:TXT 記錄用於儲存文字資訊,常用於各種驗證和安全設定。
範例:
example.com. IN TXT "v=spf1 ip4:203.0.113.0/24 -all"
資安考量:
安全建議:
定義:CNAME 記錄將一個域名指向另一個域名。
範例:
blog.example.com. IN CNAME example.bloghost.com.
資安考量:
安全建議:
網址:https://viewdns.info/iphistory/?domain=feifei.tw
可以透過 viewdns.info 免費使用,但查詢次數有限制。
舊的 A 記錄可能指向已停用但未完全移除的系統。
這些系統可能未及時更新,存在安全漏洞。
DNS 記錄的變更可能反映出組織架構或基礎設施的變化。
例如,MX 記錄的變更可能表示郵件系統遷移。
透過歷史記錄可以了解組織的 IP 位址範圍變化。
有助於識別可能被遺忘的資產。
域名系統使用層級結構,從右到左閱讀:
頂級域名(Top-Level Domain,TLD):
通用頂級域名(gTLD):如 .com、.org、.net
國家頂級域名(ccTLD):如 .tw、.uk、.jp
二級域名(Second-Level Domain,SLD):
三級域名(Third-Level Domain):
更多子域名:
輸入域名
查找附近的 DNS 伺服器
查詢對應 IP
回傳 IP
進行連線
比較容易理解的比喻:
你去一家便利商店買東西。第一次去的時候,你可能需要四處尋找才能找到你要的商品。但是,下次再去的時候,你已經記住了商品的位置,可以直接走過去拿。這就像你的腦袋裡有了「商品位置的快取」。
快取的好處:
簡介:
安裝:
sudo apt-get install fierce
使用:
fierce --domain feifei.tw
簡介:
安裝:
sudo apt-get install dnsmap
使用:
dnsmap zonetransfer.me
dnsmap zonetransfer.me -w wordlist.txt
dnsmap zonetransfer.me -d 20 # 設定查詢間隔為 20ms
下載字典檔:
https://raw.githubusercontent.com/rbsec/dnscan/master/subdomains-100.txt
主要參數:
-w FILE
:指定字典檔,預設使用 dnsmap 內建字典。-d Nms
:設定兩次查詢的間隔時間,可以避免觸發 IDS/IPS,預設為 10ms。簡介:
安裝:
sudo apt-get install dnsenum
使用:
dnsenum feifei.tw
dnsenum feifei.tw --noreverse --dnsserver 8.8.8.8
dnsenum feifei.tw -f /path/to/wordlist.txt
dnsenum feifei.tw -r
主要參數:
--noreverse
:不進行名稱反向解析。--dnsserver
:指定 DNS 伺服器進行 A、NS、MX 查詢。-f FILE
:指定暴力破解用的字典檔。-r
:對 NS 查找到的網域再進行子網域查找。輸出解析:
DNS 區域傳輸(Zone Transfer)是一種允許 DNS 伺服器之間複製區域檔案的機制。
如果設定不當,可能被攻擊者利用來獲取整個域的 DNS 記錄。
攻擊目標:zonetransfer.me
目的:查看目標域名有哪些名稱伺服器。
dig +nostats +nocomments +nocmd NS zonetransfer.me
nslookup -type=ns zonetransfer.me
目的:檢查是否可以從外網存取 DNS 伺服器並執行區域傳輸。
dig axfr zonetransfer.me @nsztm1.digi.ninja
nslookup
server nsztm1.digi.ninja
ls -d zonetransfer.me
如果 ls -d zonetransfer.me
指令成功執行並回傳域名的詳細記錄,表示區域傳輸是允許的。
SOA(Start of Authority)記錄:包含有關區域的管理資訊。
修改 DNS 伺服器設定檔案以限制區域傳輸:
設定檔案路徑:/etc/named.conf
新增以下設定:
options {
allow-transfer {
1.2.3.4;
5.6.7.8;
};
};
這將限制區域傳輸只能從指定的 IP 位址執行。
nsztm1.digi.ninja.
之外的另一個名稱伺服器。zonetransfer.me.
的 A 記錄對應的 IP 位址。在這篇文章中,我們深入探討了域名系統(DNS)的重要性及其在網路安全中的角色。
學習:
nslookup
或 dig
命令查詢其 A、MX、TXT 和 CNAME 記錄。分析這些記錄可能揭示的安全風險。