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.