iT邦幫忙

1

day29 TCP/IP 堆疊差異

  • 分享至 

  • xImage
  •  

TCP/IP 堆疊的差異是 port scanner 判斷目標「是什麼操作系統 / 裝置 / network middlebox」的主要線索之一。掃描器透過主動或被動觀察 TCP/IP 各欄位與回應行為,將這些差異當成指紋(fingerprint)去分類目標,進而提升掃描結果的資訊量(OS、設備類型、可能的防火牆/中介行為),或用來調整掃描策略以增加成功率或 stealth。
(在資安/掃描領域,stealth(隱匿掃描)指的是掃描器盡量降低被目標系統或防禦設備(如 IDS/IPS、防火牆)偵測到的風險。也就是「偷偷摸摸掃描」,不像一般 TCP connect scan 那麼明顯。)

掃描方式 是否完成三向握手 被 IDS/防火牆偵測機率 主要用途
TCP connect 最簡單、可靠
SYN scan 中低 stealth、OS fingerprint
FIN/NULL/XMAS stealth、OS fingerprint
UDP scan UDP 服務檢測
Slow scan 很低 stealth、避免封鎖

能看出什麼
1 作業系統家族(Linux / Windows / BSD / Cisco / embedded) — 常見且最常見的推論。
2 可能的作業系統版本世代或內核行為(例如是否啟用 TCP timestamps、是否有特定 window/default 值) — 可提示內核/堆疊年代。
3 裝置類型(伺服器、路由器、嵌入式/IoT、負載平衡器) — 例如 TTL=255、較少 options → 路由器/網設備可能性高。
4 是否經過中介設備(NAT、Proxy、Load‑Balancer、WAF)— 若觀察到 MSS/TTL 被改寫或 IP ID 行為不一致,可能有中間設備在處理或轉發。
5 主機啟動時間 / 系統時鐘線索(可用 TCP timestamp 估算) — 若 TS 值以固定速率遞增,可推估大致 uptime。
6 ISN/序號的可預測性(安全風險) — 若 ISN 生成可預測,理論上可能被利用(TCP hijack、session prediction)。
7 是否支援某些 TCP 特性(SACK, Window Scaling, Timestamps)— 反映 kernel / stack 設定與性能特性。
8 回應策略(對異常封包)的差異 — 對 FIN/NULL/XMAS 的回應可幫助 OS 指紋與判定防火牆策略。
9 防禦與配置傾向(如是否限制 ICMP,是否 rate‑limit ICMP/ICMP unreachable)— 反映安全性/網路防禦設定。
10 可能的 honeypot/偽裝(若行為矛盾或同時呈現多種指紋)— 要小心被誘導(deception)。

具體對應關係:
1.TTL
255 → 很可能是路由器或網路設備(Cisco 等)或短距離網段設備。
~128 → 常見於 Windows 預設。
~64 → 常見於 Linux/Unix 類系統。
(注意:路由跳數會減少 TTL,所以要用「接收到的 TTL 與常見預設比對」而非絕對值。)
2.TCP Options(順序/有無)
MSS, SACK, TS, WS(且順序穩定)→ 很常見於 Linux。
某些 Windows 版本 options 順序不同或不支援 SACK/TS(視版本)。
3.IP ID
全域遞增序列(每個發出去的 IP.ID 連續)→ 舊式 Linux / 某些堆疊。
每目標遞增或隨機 → 現代系統或為了防指紋化而改動。
4.TCP Timestamp
有且以固定步進增加 → 可以推估 uptime/clock rate。
沒有 TS → 可能是簡化堆疊或安全設定(某些嵌入式設備、不啟用 TS 的 kernel)。
5.ISN(Initial Sequence Number)
時間相關/線性增加 → 可預測性高(安全風險)。
高度隨機 → 現代安全做法(較安全)。

比較可信:區分大類(Linux vs Windows vs Router vs IoT)、是否有中介設備、是否支援某些 TCP option。
不太可信(僅作參考):精確版本號(像 Ubuntu 20.04 vs 22.04)、完整漏洞是否存在(需要服務層的 banner/version),或在有負載平衡/Proxy 的情況下 OS 指紋。
關鍵干擾因子:NAT/Proxy/Load‑Balancer/IDS 會改寫/隱藏真正的特徵;honeypot 會故意偽裝堆疊。

port scanner 要知道的理由:
1 辨識目標類型(OS/設備):知道是 Linux、Windows、Cisco 或 IoT,能推測預設開放埠、服務版本、以及可能的漏洞集合。
2 改善服務與版本偵測:某些 TCP/IP 特徵(options、TS 行為)可以搭配 banner/probe 回應一起提高 service/version 的判定信心。
3 調整掃描策略:依目標堆疊特性調整 timeout、重試、探測封包型式(例如對某些堆疊用 SYN、某些用 full connect),以降低誤判或被封鎖機率。
4 偵測中介設備:中間 NAT/load‑balancer/IDS 會改變 TTL、MSS、IP ID 等,掃描器可以偵測到「回應被修改」,提示可能要更保守或切換策略。
5 躲避偵測或更 stealth:若知道某些 probe 會觸發 IDS 在特定堆疊被記錄得比較多,可換 probe 或放慢速率來降低被察覺(法律風險高,僅限授權環境)。

實作上怎麼用(掃描器的指紋流程):
1 收集特徵(features):每次 probe 收到的 TTL、IP.ID、TCP.window、TCP.options(order & values)、TCP.timestamp、RST/ICMP 行為、ISN 模式。
2 建立或比對指紋庫:把 features 組成一筆「指紋」(signature),比對內建的資料庫(如 nmap/p0f 的 signature)。可用相似度或加權分數來決定最可能的 OS。
3 回饋到掃描策略:根據指紋決定下一步:例如如果指紋顯示是某嵌入式設備,就優先用 small MSS、少量 options;若顯示有防火牆,就改用分段/低速掃描或記錄為「filtered」。
4 合併服務指紋:把 TCP/IP 指紋與應用層 banner/probe 回應合併,做多來源證據(multi-evidence)判斷。
5 記錄與分數化:保留 raw 捕獲,並對每個判斷附上信心分(confidence score)。

實例(簡短範例流程):
發 SYN 到 port 80;收到回包:TTL=64, Window=64240, Options=[MSS=1460,SACK,TS,WS=7], IP.ID incremental → 指向 Linux。
根據 Linux,接著做 HTTP GET 並抓 Server header,比對版本 → 結果合併成「Linux + Apache 2.4.x」。
若 SYN 被中間設備回應(TTL=250,MSS 改成 1400),掃描器標記「有中介」並降低掃描速率或改記錄策略

用GPT今天學到了
1 Port scanner 不是只有開埠掃描:它包含很多技術(像是發不同種類的封包、抓回覆、分析服務與版本、做 OS 指紋等)。
2 TCP/IP 堆疊差異很重要:不同作業系統的網路實作(像 TTL、Window、TCP options、IP ID、ISN)會不一樣,掃描器會用這些差異當「指紋」來猜目標是什麼系統。
3 有主動指紋和被動指紋兩種:主動就是你發 probe 去看回應(資料多但會被記錄),被動就是只聽別人傳來的封包(比較隱密但需要有流量)。
4 Stealth(隱匿掃描)是為了不被發現:用像 SYN 半開掃描、FIN/NULL/XMAS、慢速掃描等技巧,目標是降低被 IDS/防火牆記錄或封鎖的機率。
5 實務上要注意中間設備會「汙染」指紋:NAT、負載平衡、IDS 可能會改掉 TTL、MSS 等欄位,會讓判斷變不準。
工具與實驗方法:常用工具有 Nmap、Scapy、hping3、p0f、Wireshark;實驗要在自己的 lab 或有授權的環境做。
6 攻擊機 → (SYN) → 目標
目標 → (SYN/ACK) → 攻擊機 ←→(如果開)
攻擊機 → (RST) → 目標 ←(中斷,不完成握手)
若 port 關閉:
攻擊機 → (SYN) → 目標
目標 → (RST) → 攻擊機
7 看 SYN(flags=S)發出;若看到 SYN/ACK(flags=SA)接回且接著有 RST(flags=R)由掃描機發出 —— 代表典型的 SYN 半開掃描流程。
Wireshark display filter 範例:
tcp.flags.syn == 1 && tcp.flags.ack == 0 → SYN 封包
tcp.flags.syn == 1 && tcp.flags.ack == 1 → SYN/ACK
tcp.flags.reset == 1 → RST

今天的重點是--->掃描不只是找開埠,還要看封包細節來判斷作業系統與中間設備。透過 SYN/FIN/NULL 等不同 probe 可以蒐集 TCP/IP 的行為差異(TTL、Window、TCP options、IP ID 等),把它們當成指紋來比對。實務上要注意中間設備會改變回應,要把指紋結果標記為「可能」而非絕對。測試時務必在授權環境進行以避免法律風險。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言