跳转到内容

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文件。

参考来源

[编辑]