0x0 背景

手机为iOS系统,最近听说Steam Mobile大优化,今天喜滋滋的更新3.x试试,结果更新完就发现原来的Steam令牌掉了。需要跟着步骤转移。而转移后就和目前Steam++里正在使用的令牌对不上了,逛了一圈GitHubkeylol发现伙计们还是降级用旧版应用导出令牌,有些难受。故而想尝试另寻他法进行导出。注意此方法导出也会有15天冷却

以下步骤比较详细,看起来很难,但其实操作起来简单~~也不用等待长时间的数据备份。不要吓到哦

0x1 安装并配置抓包软件

分析的第一步当然是进行抓包验证。既然令牌是Steam下发的,那在网络请求中应该可以一探究竟,只期望Steam没有加密返回值或者设置证书Pinning甚至魔改请求协议。上Fiddler抓包看了下确实没有加密,只是通讯用的Protocol Buffers,不过并不影响令牌的抓取。为方便手机用户,以下使用iOS上的免费抓包软件App Store 上的“Stream”来进行抓包。

根据其乐大佬admimerest反馈风险点,请考虑APP抓包风险。另外iOS上有替代抓包APP,App Store 上的“HTTP Catcher” (付费)App Store 上的“Thor” (付费)

如果使用电脑抓包,则有可靠抓包软件Fiddler (Windows) 以及 Charles (MacOS)。

以下多图预警:

  1. AppStore安装App Store 上的“Stream”
  2. 安装完成后打开可能是英文界面,可以点击Languages修改语言至简体中文

    修改语言

  3. 点击开始抓包,并允许添加VPN配置
  4. 在弹出界面中点击去安装证书

    安装证书

  5. 点击步骤一:安装CA证书,并点击允许下载配置描述文件。

    下载配置描述文件

  6. 打开系统设置 - 点击已下载描述文件

    已下载描述文件

  7. 在弹出的窗口中点击右上角 安装 并输入密码,在新界面中再次点击 安装 - 安装
  8. 到系统设置 - 通用 - 关于本机 拉到最下面找到并点击 证书信任设置
  9. 打开名为Stream Generated CA XXXXX的开关
  10. 此刻回到Stream应用,可以看到设置成功:CA证书已经安装且信任

    信任证书

至此,抓包软件配置完毕。

0x2 抓包Steam令牌设置

  1. 请确认抓包软件已经安装并配置完毕,可以抓取HTTPS请求。并且在软件中开始抓包
  2. 首先解绑令牌

    解绑令牌

  3. 解绑令牌后再次绑定

    短信验证

    救援代码

  4. 看到恢复代码后就可以关闭Steam
  5. 回到抓包软件点击停止抓包,点击抓包历史找到并打开刚在抓包的时间段
  6. 点击右上角的搜索图标,按照以下图中条件搜索

    1. 关键词 /AddAuthenticator
    2. 方法 POST

    搜索条件

  7. 在搜索结果中查找正确的抓包记录

    1. 可以点击右上角切换详细模式查看更详细的信息(截图中点过啦)
    2. 在下面的记录中找返回类型为Octet-Stream的记录,如果有多个就都看看

      找到记录

  8. 点进去后再点击 响应 - 查看响应

    查看响应

  9. 按照下图复制密钥出来备用

    1. 需要找到并从 optauth开始一直复制到issuer=Steam结尾

    复制密钥

  10. 在电脑上新建txt文本文件,并将复制的密钥粘贴进去保存

    TXT

  11. Steam++中选择新增 - 其它软件导入 - WinAuth导入 - 找到保存的txt文件打开即可导入

    导入

    完成

至此就导入完成啦~

首发于博客 & 其乐 & Steam++ Github

其乐老哥admimerest反馈的风险点比较重要,摘抄至此:

1、抓包软件本身是否可信,生成的证书文件是否真的是随机生成
2、在信任证书后手机的所有正在进行通信数据 抓包软件都可以明文得知
3、在使用完抓包软件之后务必将证书信任关闭且将证书删除,如不关闭可能产生中间人攻击

0x3 题外话

文中提到实际上返回值是序列化后的Protobuf,虽然没有去尝试dumpproto,但也可以用工具扫一下返回值。

使用dannyhann/protobuf_decoder 可以扫出几个内容:

protobuf

最后修改:2022 年 10 月 18 日
如果觉得我的文章对你有用,请随意赞赏