Phantomsocks/修改方式
外觀
修改方式
[編輯]修改方式是填在config.json的interface下的hint部分,phantom.go中將其分為3類:DNS、FAKE和MODIFY。
DNS
[編輯]此類hint主要影響Phantomocks的DNS服務器。
https:有為發往80端口的HTTP請求回復302重定向到HTTPS的功能。分到DNS里可能是因為其還有啟用HTTPS記錄的作用。h2:在回復的HTTPS記錄中加入h2的ALPN,指示應用程序使用HTTP/2。h3:在回復的HTTPS記錄中加入h3以及多個之前的草案的ALPN,指示應用程序使用HTTP/3。ipv4: 只查詢A記錄,並且只使用IPv4連接ipv6: 只查詢AAAA記錄,並且只使用IPv6連接
Fake
[編輯]ttl: 發出的TCP包將使用下一段ttl中註明的TTL(Time To Live)w-md5: 發出的TCP包帶有錯誤的md5值n-ack: 未知w-ack: 發出的TCP包帶有錯誤的確認碼w-csum: 發出的TCP包帶有錯誤的校驗和w-seq: 發出的TCP包帶有錯誤的序號w-time: 發出的TCP包帶有錯誤的時間戳
Modify
[編輯]s-seg: TCP連接的首包小於8字節1-seg:tls-frag: 使TLS Record所在的TCP包分段[1]tfo: 建立連接時使用TFO(TCP Fast Open)發送首包數據(僅windivert和pcap可用)half-tfo:mode2: 以另一種順序注入TCP包move:strip: 對客戶端瀏覽器實現SSL Strip。客戶端訪問HTTP的80端口時,phantomsocks訪問HTTPS服務並忽略證書錯誤。fronting: 未完成的域前置方法,和strip同時使用。訪問HTTPS服務時操作tls.Config的ServerName並忽略證書錯誤。目前無法指定ServerName值。
未分類
[編輯]df: 發出的TCP包不會分段。(Don’t Fragment)sat: 持續注入TCP包直到TLS握手完成
更多的修改方式請查詢源碼中pcap.go、raw.go或windivert.go文件。
參考來源
[編輯]- ↑ Niere, Niklas(2023年).Circumventing the GFW with TLS Record Fragmentation.