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 可以扫出几个内容: