駭客常透過服務標誌、TTL 值、開放埠號推測作業系統類型,進而針對性攻擊。本文以 Red Hat Linux 為例,示範如何偽裝系統資訊,增加攻擊分析難度。
預設 Apache 回應標頭會洩露版本與作業系統。修改原始碼重新編譯為根本之道:
ap_release.h,將 AP_SERVER_BASEPRODUCT "Apache" 改為 "Microsoft-IIS/5.0"。os/unix/os.h,將 PLATFORM "Unix" 改為 "Win32"。httpd.conf:ServerTokens Prod、ServerSignature Off。掃描後將顯示為 Windows + IIS 伺服器。
以 ProFTPD 為例,修改 proftpd.conf 加入:ServerIdent on "Serv-U FTP Server v5.0 for WinSock ready..."
重啟服務後,連線提示將偽裝為 Windows 下的 Serv-U。
Linux 預設 TTL=64,Windows 為 128。執行:echo 128 > /proc/sys/net/ipv4/ip_default_ttl
永久生效請修改 /etc/sysctl.conf 加入 net.ipv4.ip_default_ttl = 128。Ping 測試將回傳 TTL=128。
iptables -I INPUT -s ! xx.xx.xx.xx -p tcp --dport 22 -j DROPecho 1 > /proc/sys/net/ipv4/ip_forwardiptables -t nat -I PREROUTING -p tcp --dport 3389 -j DNAT --to xx.xx.xx.xxiptables -t nat -I POSTROUTING -p tcp --dport 3389 -j MASQUERADE駭客掃描將見不到 22 埠,反見偽裝的 3389 埠,誤判為 Windows。
Netcraft 擁有多台掃描主機,需對其網段整體轉發欺騙:iptables -t nat -I PREROUTING -s 195.92.95.0/24 -p tcp --dport 80 -j DNAT --to xx.xx.xx.xxiptables -t nat -I POSTROUTING -s 195.92.95.0/24 -p tcp --dport 80 -j MASQUERADE
偽裝手法屬「防君子不防小人」,屬纵深防禦一環,核心仍在於及時修補漏洞、最小權限原則與完善監控。