Shadowsocks Redirect Attack

💡 原文约1900字/词,阅读约需7分钟。
📝

内容提要

客户端和服务端进行了两次握手,客户端发起连接请求,服务端回复无需验证,客户端发送目标地址和端口,服务端回复绑定地址和端口,客户端将消息加密后放入待发送消息队列,和服务端建立连接,服务端收到消息后解密,向目标网站发送请求,客户端收到服务端的消息后解密,最后将消息发送给用户。

🎯

关键要点

  • Shadowsocks的漏洞源于默认使用不合适的密码组件,导致中间人可以重定向解密后的流量。
  • 用户通过代理软件访问目标网站,流量经过客户端和服务端。
  • 客户端在封装流量包时,加入目标网站信息,流量在客户端到服务端之间是加密的。
  • 客户端与服务端之间的握手过程包括两次请求和应答。
  • 中间人无法解密流量,但可以控制明文请求。
  • 抓包分析显示客户端与服务端之间的流量结构。
  • 服务端接收客户端消息并解密,向目标网站发送请求,最后将回复加密后发送给客户端。
  • 漏洞的关键在于流密码的特性,允许已知明文攻击。
  • 通过构造特定的密文,中间人可以重定向解密后的信息到任意地址。
  • 复现过程中遇到的问题包括脚本与服务端连接的管理。
🏷️

标签

➡️

继续阅读