什麼是連接埠掃描?
在電腦網路中,「連接埠」是一個抽象概念,用於標識電腦上運行的特定進程或服務的網路接入點。每個連接埠都有一個唯一的編號,範圍從 0 到 65535,這個編號讓電腦知道應該將接收到的資料傳送給哪個應用程式。
你可以把電腦想像成一棟大樓,連接埠就是大樓裡的一個個房間門牌號。常見的「門牌號」包括:HTTP 網頁服務通常用連接埠 80,HTTPS 安全網頁用連接埠 443,電子郵件服務 SMTP 則用連接埠 25。當資料封包抵達電腦時,系統會根據連接埠號將其準確地「投遞」到對應的服務或應用程式。
什麼是連接埠掃描?
連接埠掃描就是將特定的資料封包傳送到目標機器的各個連接埠,然後根據返回的回應來判斷哪些連接埠是開放或關閉的。這就像有人在一棟大樓外逐個敲門,透過有沒有人應答來判斷哪些房間有人、哪些房間空置。
連接埠掃描本身是一項中性的技術——網路管理員用它來檢查系統安全漏洞,滲透測試人員用它來評估系統防護能力,而攻擊者則可能用它來尋找入侵的突破口。
網站如何在瀏覽器中實現連接埠掃描?
你可能會覺得奇怪:一個普通的網頁,怎麼能掃描你電腦上的連接埠呢?這背後利用了瀏覽器的一些工作機制。
基於時間的掃描方法
最早的瀏覽器連接埠掃描技術依賴「計時攻擊」。當網頁透過 XMLHttpRequest 或 fetch 向某個連接埠發起請求時:
如果連接埠關閉,瀏覽器會立即收到「連線被拒絕」的回應,請求很快失敗
如果連接埠開放,瀏覽器會等待伺服器端回應,這個過程耗時更長
透過測量請求的回應時間,網站就可以推斷出哪些連接埠是開放的。不過這種方法受網路波動影響較大,準確性有限。
基於 iframe 的掃描方法
後來研究者發現了一種更可靠的技術,主要針對 Chrome 瀏覽器。當 Chrome 嘗試連線到一個關閉的連接埠時,瀏覽器會將頁面地址改為 chrome-error://chromewebdata/。利用這一特性:
網站建立一個隱藏的 iframe,載入目標地址(如 http://127.0.0.1:8080)
如果連接埠關閉,iframe 的 onload 事件會被觸發兩次(因為 URL 發生了變化)
如果連接埠開放,onload 事件只會觸發一次
透過計數 onload 事件的觸發次數,網站就能準確判斷連接埠是否開放。
基於 WebSocket 的掃描方法
一些工具還利用 WebSocket 連線來探測連接埠狀態——連線成功意味著連接埠開放,連線失敗則意味著連接埠關閉。
網站為什麼要掃描你的連接埠?
1. 反欺詐與機器人偵測
許多大型網站(包括一些政府服務網站和電商平台)會透過連接埠掃描來偵測使用者是否為真人。例如,某些反機器人系統會嘗試連線 127.0.0.1:8888——這是 Burp Suite 等安全測試工具的預設代理連接埠。如果發現該連接埠開放,系統就會懷疑存取者可能是安全研究人員或自動化腳本,從而觸發額外的驗證。
2. 使用者指紋追蹤
研究表明,基於瀏覽器的連接埠掃描結果具有足夠的唯一性,可以作為追蹤使用者的手段。透過偵測本地開放的連接埠,網站可以推斷出使用者正在執行哪些軟體——例如,連接埠 80 或 443 開放可能意味著使用者正在執行網頁伺服器,連接埠 25 開放可能意味著郵件伺服器在執行。不同使用者安裝的軟體組合千差萬別,這就構成了一個獨特的「軟體指紋」。
更令人擔憂的是,有研究顯示即使只掃描一秒鐘,生成的連接埠指紋也具有很高的唯一性。當連接埠掃描結果與其他指紋技術(如 Canvas 指紋、WebGL 指紋等)結合使用時,追蹤能力會進一步增強。
3. 探測內網裝置
大多數瀏覽器預設允許公網網站向私有 IP 位址(如 127.0.0.1 或 192.168.x.x)發起請求。這意味著一個惡意網站不僅可以掃描你電腦本地的連接埠,還可以掃描你家路由器、智慧電視、網路攝影機等內網裝置的連接埠,尋找可能存在漏洞的裝置進行攻擊。
如何防範瀏覽器連接埠掃描?
1. 使用瀏覽器擴充功能
uBlock Origin:在設定中的「隱私」欄目下,勾選「阻止外部入侵內網」選項即可生效
NoScript:提供阻止區域網路存取的選項
一些專門的防護外掛程式也可以阻止網站掃描本地連接埠
2. 使用內建防護的瀏覽器
部分瀏覽器已經內建了連接埠掃描防護功能。例如,某些瀏覽器會主動阻止已知的惡意掃描腳本,並限制公網網站對本地資源的存取。Chrome 等瀏覽器也在逐步推行「私有網路存取」規範,要求網站存取本地資源前先獲得使用者許可。
3. 使用指紋瀏覽器
對於有更高隱私需求的使用者,反偵測瀏覽器提供了更全面的防護方案。這類工具可以模擬不同的連接埠狀態,讓網站無法獲取真實的連接埠掃描結果,從而有效保護你的裝置指紋隱私。
總結
連接埠掃描是一項既可用於正當安全審計、也可能被濫用於隱私侵犯的技術。了解它的工作原理和潛在風險,是保護自己網路安全的第一步。正如安全領域的一句老話所說:「知道你的『門』在哪裡開著,才知道該關上哪一扇。」
你可以把電腦想像成一棟大樓,連接埠就是大樓裡的一個個房間門牌號。常見的「門牌號」包括:HTTP 網頁服務通常用連接埠 80,HTTPS 安全網頁用連接埠 443,電子郵件服務 SMTP 則用連接埠 25。當資料封包抵達電腦時,系統會根據連接埠號將其準確地「投遞」到對應的服務或應用程式。
什麼是連接埠掃描?
連接埠掃描就是將特定的資料封包傳送到目標機器的各個連接埠,然後根據返回的回應來判斷哪些連接埠是開放或關閉的。這就像有人在一棟大樓外逐個敲門,透過有沒有人應答來判斷哪些房間有人、哪些房間空置。
連接埠掃描本身是一項中性的技術——網路管理員用它來檢查系統安全漏洞,滲透測試人員用它來評估系統防護能力,而攻擊者則可能用它來尋找入侵的突破口。
網站如何在瀏覽器中實現連接埠掃描?
你可能會覺得奇怪:一個普通的網頁,怎麼能掃描你電腦上的連接埠呢?這背後利用了瀏覽器的一些工作機制。
基於時間的掃描方法
最早的瀏覽器連接埠掃描技術依賴「計時攻擊」。當網頁透過 XMLHttpRequest 或 fetch 向某個連接埠發起請求時:
如果連接埠關閉,瀏覽器會立即收到「連線被拒絕」的回應,請求很快失敗
如果連接埠開放,瀏覽器會等待伺服器端回應,這個過程耗時更長
透過測量請求的回應時間,網站就可以推斷出哪些連接埠是開放的。不過這種方法受網路波動影響較大,準確性有限。
基於 iframe 的掃描方法
後來研究者發現了一種更可靠的技術,主要針對 Chrome 瀏覽器。當 Chrome 嘗試連線到一個關閉的連接埠時,瀏覽器會將頁面地址改為 chrome-error://chromewebdata/。利用這一特性:
網站建立一個隱藏的 iframe,載入目標地址(如 http://127.0.0.1:8080)
如果連接埠關閉,iframe 的 onload 事件會被觸發兩次(因為 URL 發生了變化)
如果連接埠開放,onload 事件只會觸發一次
透過計數 onload 事件的觸發次數,網站就能準確判斷連接埠是否開放。
基於 WebSocket 的掃描方法
一些工具還利用 WebSocket 連線來探測連接埠狀態——連線成功意味著連接埠開放,連線失敗則意味著連接埠關閉。
網站為什麼要掃描你的連接埠?
1. 反欺詐與機器人偵測
許多大型網站(包括一些政府服務網站和電商平台)會透過連接埠掃描來偵測使用者是否為真人。例如,某些反機器人系統會嘗試連線 127.0.0.1:8888——這是 Burp Suite 等安全測試工具的預設代理連接埠。如果發現該連接埠開放,系統就會懷疑存取者可能是安全研究人員或自動化腳本,從而觸發額外的驗證。
2. 使用者指紋追蹤
研究表明,基於瀏覽器的連接埠掃描結果具有足夠的唯一性,可以作為追蹤使用者的手段。透過偵測本地開放的連接埠,網站可以推斷出使用者正在執行哪些軟體——例如,連接埠 80 或 443 開放可能意味著使用者正在執行網頁伺服器,連接埠 25 開放可能意味著郵件伺服器在執行。不同使用者安裝的軟體組合千差萬別,這就構成了一個獨特的「軟體指紋」。
更令人擔憂的是,有研究顯示即使只掃描一秒鐘,生成的連接埠指紋也具有很高的唯一性。當連接埠掃描結果與其他指紋技術(如 Canvas 指紋、WebGL 指紋等)結合使用時,追蹤能力會進一步增強。
3. 探測內網裝置
大多數瀏覽器預設允許公網網站向私有 IP 位址(如 127.0.0.1 或 192.168.x.x)發起請求。這意味著一個惡意網站不僅可以掃描你電腦本地的連接埠,還可以掃描你家路由器、智慧電視、網路攝影機等內網裝置的連接埠,尋找可能存在漏洞的裝置進行攻擊。
如何防範瀏覽器連接埠掃描?
1. 使用瀏覽器擴充功能
uBlock Origin:在設定中的「隱私」欄目下,勾選「阻止外部入侵內網」選項即可生效
NoScript:提供阻止區域網路存取的選項
一些專門的防護外掛程式也可以阻止網站掃描本地連接埠
2. 使用內建防護的瀏覽器
部分瀏覽器已經內建了連接埠掃描防護功能。例如,某些瀏覽器會主動阻止已知的惡意掃描腳本,並限制公網網站對本地資源的存取。Chrome 等瀏覽器也在逐步推行「私有網路存取」規範,要求網站存取本地資源前先獲得使用者許可。
3. 使用指紋瀏覽器
對於有更高隱私需求的使用者,反偵測瀏覽器提供了更全面的防護方案。這類工具可以模擬不同的連接埠狀態,讓網站無法獲取真實的連接埠掃描結果,從而有效保護你的裝置指紋隱私。
總結
連接埠掃描是一項既可用於正當安全審計、也可能被濫用於隱私侵犯的技術。了解它的工作原理和潛在風險,是保護自己網路安全的第一步。正如安全領域的一句老話所說:「知道你的『門』在哪裡開著,才知道該關上哪一扇。」
