跳至內容

Phantomsocks/修改方式

維基教科書,自由的教學讀本

修改方式

[編輯]

修改方式是填在config.jsoninterface下的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.goraw.gowindivert.go文件。

參考來源

[編輯]