0x0 背景
手机为iOS系统,最近听说Steam Mobile大优化,今天喜滋滋的更新3.x试试,结果更新完就发现原来的Steam令牌掉了。需要跟着步骤转移。而转移后就和目前Steam++里正在使用的令牌对不上了,逛了一圈GitHub和keylol发现伙计们还是降级用旧版应用导出令牌,有些难受。故而想尝试另寻他法进行导出。注意此方法导出也会有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)。
以下多图预警:
- 从
AppStore安装App Store 上的“Stream” 安装完成后打开可能是英文界面,可以点击
Languages修改语言至简体中文
- 点击开始抓包,并允许添加VPN配置
在弹出界面中点击
去安装证书
点击
步骤一:安装CA证书,并点击允许下载配置描述文件。
打开系统
设置- 点击已下载描述文件
- 在弹出的窗口中点击右上角
安装并输入密码,在新界面中再次点击安装-安装 - 到系统
设置-通用-关于本机拉到最下面找到并点击证书信任设置 - 打开名为
Stream Generated CA XXXXX的开关 此刻回到
Stream应用,可以看到设置成功:CA证书已经安装且信任。
至此,抓包软件配置完毕。
0x2 抓包Steam令牌设置
- 请确认抓包软件已经安装并配置完毕,可以抓取
HTTPS请求。并且在软件中开始抓包 首先解绑令牌

解绑令牌后再次绑定


- 看到恢复代码后就可以关闭
Steam了 - 回到抓包软件点击
停止抓包,点击抓包历史找到并打开刚在抓包的时间段 点击右上角的搜索图标,按照以下图中条件搜索
- 关键词
/AddAuthenticator - 方法
POST

- 关键词
在搜索结果中查找正确的抓包记录
- 可以点击右上角
切换详细模式查看更详细的信息(截图中点过啦) 在下面的记录中找返回类型为
Octet-Stream的记录,如果有多个就都看看
- 可以点击右上角
点进去后再点击
响应-查看响应
按照下图复制密钥出来备用
- 需要找到并从
optauth开始一直复制到issuer=Steam结尾

- 需要找到并从
在电脑上新建
txt文本文件,并将复制的密钥粘贴进去保存
在
Steam++中选择新增-其它软件导入-WinAuth导入- 找到保存的txt文件打开即可导入

至此就导入完成啦~
首发于博客 & 其乐 & Steam++ Github
其乐老哥admimerest反馈的风险点比较重要,摘抄至此:
1、抓包软件本身是否可信,生成的证书文件是否真的是随机生成
2、在信任证书后手机的所有正在进行通信数据 抓包软件都可以明文得知
3、在使用完抓包软件之后务必将证书信任关闭且将证书删除,如不关闭可能产生中间人攻击
0x3 题外话
文中提到实际上返回值是序列化后的Protobuf,虽然没有去尝试dump出proto,但也可以用工具扫一下返回值。
使用dannyhann/protobuf_decoder 可以扫出几个内容:

1 条评论
感谢大佬分享,以前用汉化版的SDA被盗号了