华为云Web平台渗透测试全流程:从信息收集到漏洞利用与修复 1. 项目概述与核心价值最近在帮一个客户做安全评估他们刚把一套核心的Web业务系统从本地机房迁移到了华为云上。客户老板很直接“系统上云了感觉更虚了以前机房门一锁心里还踏实点现在数据都在网上飘着你们得给我彻底查一遍看看有没有后门能让黑客随便进。” 这个需求很典型也是很多企业上云后的普遍焦虑——环境变了传统的安全边界模糊了原有的安全认知需要刷新。所以我花了大概两周时间设计并执行了一套专门针对华为云环境Web平台的渗透测试全流程计划。这不仅仅是跑几个扫描器那么简单它涉及到云环境特有的资产发现、权限配置核查、网络拓扑理解以及传统Web漏洞在云环境下的新变种。今天就把这套从零开始的完整计划拆开揉碎了分享给大家无论是安全工程师想系统化自己的云渗透方法还是运维、开发同学想了解自己的云上应用可能面临哪些风险都能从中找到可以直接落地的思路和实操步骤。简单来说这套计划的核心目标是模拟一个具备初步能力的攻击者从互联网视角出发逐步深入最终评估部署在华为云上的Web平台的整体安全水位。它区别于传统内网渗透更聚焦于云服务配置错误、不当的访问控制、脆弱的托管服务以及云原生组件漏洞这些新型风险点。整个流程遵循PTES渗透测试执行标准的基本阶段但所有工具、技巧和关注点都针对华为云生态进行了适配和优化。2. 前期准备与信息收集阶段渗透测试切忌一上来就狂轰滥炸。在云环境中周密的前期信息收集比以往任何时候都重要因为很多关键信息可能通过公开渠道或配置疏忽直接暴露。2.1 明确测试范围与授权这是铁律尤其在云环境下。你需要和客户明确书面授权范围至少包括目标域名/IP列表例如app.customer.com203.0.113.10。华为云账号信息用于授权测试的测试账号虽然我们模拟外部攻击但拥有一个只读权限的测试账号可以让我们在“蓝队”视角快速验证一些配置风险提高效率。注意此账号权限必须严格限制通常仅赋予“安全审计”或只读的“VPC Viewer”、“CES Viewer”等角色绝不可用于任何修改操作。测试时间窗口明确开始和结束时间避免影响业务高峰。禁止项明确拒绝DDoS、物理攻击、社会工程学除非专项测试、对云平台本身的攻击等。拿到授权后第一件事不是打开扫描器而是建立测试笔记。我用的是Obsidian建立一个以项目命名的仓库结构如下项目-客户名-华为云Web渗透/ ├── 1-授权与范围.md ├── 2-信息收集/ │ ├── 子域名枚举.md │ ├── 端口服务扫描.md │ ├── 云资产测绘.md │ └── 指纹识别.md ├── 3-漏洞扫描与验证/ ├── 4-手动渗透与利用/ └── 5-报告与修复建议/2.2 传统信息收集手段在云端的应用即使上云目标Web应用依然暴露在互联网传统手段依然有效但侧重点稍有不同。子域名枚举除了常用的subfinder,amass,assetfinder要特别关注可能与云服务相关的子域名模式。例如oss.obs.对象存储cdn.dcdn.内容分发api.,gw.API网关kibana.,jenkins.,grafana.可能暴露的运维后台 一个高效的命令组合subfinder -d target.com -silent | httpx -silent | tee alive_subs.txt。将存活子域名保存下来。端口与服务扫描使用nmap或更快的masscan进行全端口扫描然后针对开放端口用nmap -sV -sC -p ports -oA nmap_detail进行深度识别。在云环境下要特别留意22/SSH是否允许密码登录是否仅限特定IP443/HTTPS证书信息中是否包含其他域名或内部地址80/HTTP是否强制跳转HTTPS是否存在默认页泄露信息8080, 8443, 9000等常见于Web管理界面、Docker Registry、Jenkins等。6379/Redis, 27017/MongoDB, 9200/Elasticsearch这些数据库服务如果直接暴露在公网且无鉴权将是致命风险。Web应用指纹识别使用Wappalyzer浏览器插件或whatweb命令行工具快速识别CMS、框架、前端库、服务器软件。例如whatweb https://target.com -v。识别出Nginx 1.18,PHP 7.4,ThinkPHP 5.1等信息能为后续漏洞利用提供明确方向。2.3 云环境特有的信息收集关键这是云渗透的精华部分攻击者会利用公开信息拼凑出你的云架构图。1. 公开的云元数据与桶枚举对象存储服务 (OBS) 枚举华为云OBS的桶访问地址格式为bucket-name.obs.region.myhuaweicloud.com。可以使用工具如cloud_enum或自写脚本通过字典爆破可能存在的桶名。命令思路for bucket in $(cat wordlist.txt); do curl -s -o /dev/null -w %{http_code} http://$bucket.obs.cn-north-4.myhuaweicloud.com; done。返回200或403存在但拒绝访问都值得关注404表示不存在。特别注意如果桶策略配置为“公共读”则任何人均可访问其中文件可能导致源码、配置文件、敏感数据泄露。云服务器元数据如果通过某些SSRF漏洞能够访问到云服务器实例的元数据服务可能获取临时访问密钥、角色信息等。华为云元数据地址通常是http://169.254.169.254/。在测试中我们仅在已授权且确认存在相关漏洞的EC2实例上进行此项检查严禁对未授权目标尝试。2. 搜索引擎语法与公开情报收集使用Google,Shodan,Fofa,ZoomEye等网络空间测绘引擎。Fofa语法示例domaintarget.com找关联资产。appHuawei-Cloud-Console寻找可能暴露的管理后台。port9200 countryCN找暴露的Elasticsearch。body华为云 titleIndex of /找可能泄露的目录。GitHub/GitLab搜索搜索公司名、项目名、关键字查找可能泄露的AccessKey、SecretKey、配置文件如config.php,application.yml、数据库连接字符串。搜索语法如org:CompanyName password,target.com AND (AKIA|SECRET_KEY)。3. 证书透明度日志使用crt.sh网站输入域名可以查询到为该域名签发的所有SSL证书常能发现未在DNS记录中的内部或测试域名。4. 域名解析历史与CDN识别通过securitytrails,viewdns.info查看域名历史解析记录可能发现真实的源站服务器IP在切换到CDN前。使用工具如cdncheck或在线网站判断目标是否使用了CDN。如果未使用CDN那么扫描到的IP很可能就是真实服务器。实操心得信息收集阶段要“慢就是快”。花一两天时间细致地收集画出一个初步的资产地图和攻击面草图远比盲目扫描有效。所有发现都要记录包括看似无关的403页面、302跳转它们可能在后续的漏洞串联中起到关键作用。3. 漏洞扫描与自动化评估在完成手工信息收集后利用自动化工具进行第一轮广谱漏洞扫描旨在快速发现低垂果实。3.1 主动式Web漏洞扫描这里不推荐使用对业务有潜在影响的主动扫描器如OpenVAS的某些插件直接扫生产环境除非有明确授权且安排在业务低峰期。更推荐使用被动或半被动的扫描器。Nuclei这是当前社区最活跃的漏洞模板扫描器。它拥有海量的POC模板覆盖从CVE漏洞到配置错误的各种检查。使用方法# 更新模板 nuclei -update-templates # 对存活的目标进行扫描 cat alive_subs.txt | nuclei -t ~/nuclei-templates/ -severity medium,high,critical -o nuclei_results.txt重点关注与云服务相关的模板如exposed-panels/,misconfiguration/目录下的。Nuclei能高效地发现暴露的Jenkins、Kibana、默认凭据等问题。针对特定框架的扫描器如果信息收集阶段识别出特定框架如ThinkPHP、Spring Boot、Shiro等应使用专门的检测工具或Exp进行验证。例如针对ThinkPHP的历史RCE漏洞有现成的检测脚本。3.2 云安全配置检查CSPM这是云渗透测试独有的环节。我们可以利用华为云自身的服务或开源工具以只读权限检查账号内的安全配置。华为云安全中心旧版企业主机安全HSS如果测试账号有权限可以查看安全中心的基线检查报告快速了解ECS实例在身份鉴别、访问控制、安全审计等方面的配置风险。但注意这更多是防御视角。开源工具 - ScoutSuite这是一个多云安全配置审计工具。虽然对华为云的支持不如AWS、Azure原生但社区版已包含部分华为云资源的检查规则。它可以以只读权限遍历你的云账号检查OBS桶策略、安全组规则、IAM策略等是否存在配置错误。# 需要配置华为云AK/SK使用只读权限的测试账号 export HWCLOUD_ACCESS_KEY_IDyour_ak export HWCLOUD_SECRET_ACCESS_KEYyour_sk python scout.py --provider huawei --report-dir ./scout_report生成的HTML报告会清晰列出各类风险如“OBS桶允许公开访问”、“安全组对0.0.0.0/0开放高危端口”等。手动检查清单核心工具不能覆盖所有必须结合手动检查。以下是一份简化的华为云配置风险清单安全组防火墙检查入站规则是否有对0.0.0.0/0开放22、3389、3306、6379、27017等端口。理想情况是仅对必要的业务IP开放。弹性公网IP确认是否所有ECS都需要公网IP很多应用服务器只需放在私有子网通过ELB或NAT网关对外提供服务。OBS桶策略逐一检查每个桶的“桶策略”和“ACL”。确保没有“匿名用户”的“读取”或“写入”权限。检查“跨域资源共享(CORS)”配置是否过于宽松。云数据库 RDS检查“公网访问”是否开启。如果必须开启确认“安全组”是否限制了访问源IP。检查数据库账号是否使用了弱密码需结合其他漏洞获取或授权后测试。弹性负载均衡 ELB检查监听器配置是否使用了安全的TLS协议禁用SSLv3, TLS1.0/1.1证书是否有效。IAM 用户与权限检查测试账号外的其他IAM用户是否遵循最小权限原则是否存在用户附加了Administrator或Security Administrator等宽泛的策略注意事项自动化扫描会产生大量流量和日志务必在授权的时间窗口内进行。扫描结果会有大量误报特别是Nuclei需要人工逐一验证。切勿将扫描报告直接交给客户必须经过分析、验证和风险评级。4. 手动渗透测试与深度利用自动化工具发现的是“已知的”漏洞和配置错误。真正的攻防较量在于手动测试发现逻辑漏洞、业务缺陷和漏洞链。4.1 Web应用层手动测试这是渗透测试工程师的主战场。围绕OWASP Top 10展开注入漏洞SQLi Command InjectionSQL注入使用sqlmap进行自动化检测但更重要的是手工测试。寻找所有用户输入点GET/POST参数、Cookie、HTTP头。使用单引号‘、\、1 AND 11等payload测试。在云环境中要注意数据库可能是RDS其网络隔离可能使--os-shell等高级功能失效但数据泄露风险依旧。命令注入在功能点如“Ping检测”、“文件上传”文件名处理等处测试; whoami,| id,$(cat /etc/passwd)。身份认证与会话管理漏洞弱口令爆破对登录接口进行定向爆破。使用hydra或burp suite intruder。字典要精心准备包含公司名、产品名、常见弱口令。特别注意爆破前务必确认授权范围并控制频率避免触发账号锁定机制影响正常用户。会话固定/劫持检查登录前后Session ID是否变化Cookie的HttpOnly、Secure属性是否设置多阶段认证绕过如果存在短信/邮箱验证码测试是否可重放、可爆破0000-9999、或在第一步认证后直接跳转到登录成功页面。敏感数据泄露目录遍历测试../../etc/passwd,....//....//....//windows/win.ini。备份文件泄露扫描.bak,.swp,.old,.tar.gz,_backup等文件。源码泄露通过.git/目录泄露、.DS_Store文件、SVN/entries文件获取源码。配置信息泄露检查/actuator/health,/phpinfo.php,/console等路径。在云环境中配置文件里可能硬编码了OBS的AK/SK、RDS的连接串。跨站脚本XSS与跨站请求伪造CSRFXSS测试反射型、存储型DOM型。使用scriptalert(document.domain)/script等payload。在云管理控制台发现的XSS可能危害更大如果同域。CSRF检查关键操作修改密码、转账、添加管理员是否缺少CSRF Token。使用Burp生成CSRF PoC测试。4.2 云服务漏洞链利用这是最体现云渗透特色的部分。往往一个简单的Web漏洞在云环境下能串联成一次严重的入侵。场景一从Web漏洞到云服务器元数据发现一个SSRF漏洞可以请求内部地址。利用SSRF访问云服务器元数据接口http://169.254.169.254/latest/meta-data/。获取实例的临时安全凭证如果实例绑定了IAM角色。使用这些凭证通过AWS CLI或华为云CLI在本地配置从而获得该角色所拥有的云资源访问权限如读写OBS桶、操作ECS。场景二从OBS桶泄露到源码再到AK/SK泄露通过枚举发现一个配置为“公共读”的OBS桶backup.target.com。在桶内找到网站源码的压缩包website-20231001.tar.gz。解压源码在配置文件config/prod.php中发现硬编码的华为云AK/SK。使用该AK/SK通过华为云SDK或CLI直接操作该账号下的云资源可能包括创建有公网IP的高权限ECS实例从而建立持久化后门。场景三脆弱子域名接管信息收集发现子域名dev.target.com解析到一个已被删除的华为云OBS桶端点CNAME记录指向一个不存在的OBS桶。攻击者迅速在华为云上注册该桶名例如dev-target-com。此时所有访问dev.target.com的流量都会指向攻击者控制的OBS桶。攻击者可以在桶中放置恶意钓鱼页面或利用该子域名的信誉进行后续攻击。场景四不安全的服务器端请求伪造SSRF与云内网探测在云环境的VPC内网中存在大量未暴露公网的服务如数据库、缓存、内部API。如果存在SSRF漏洞可以将其作为代理扫描和攻击内网服务。验证SSRF漏洞存在。使用http://192.168.1.1:8080http://10.0.0.1:3306等地址探测VPC内网段常见如192.168.0.0/16,10.0.0.0/8,172.16.0.0/12。如果发现内网的Redis未设密码可通过SSRF构造Redis协议包写入Webshell或反弹Shell。实操心得手动测试时思维要跳出“一个漏洞一个洞”的局限时刻思考“这个点能让我接触到什么能拿到什么信息这个信息能否帮助我进入下一个环节” 养成画攻击链图的习惯。例如弱口令登录后台 - 后台文件上传GetShell - 服务器内信息收集 - 获取数据库密码 - 数据库提权或横向移动。5. 后渗透与权限维持在成功获取Web服务器如ECS的shell权限后工作并未结束。需要评估攻击者能在系统内部做什么以及如何隐蔽地维持访问。5.1 内网信息收集一旦进入一台云主机它就成为了进入整个VPC网络的跳板。网络信息ifconfig/ip addr查看IP判断是否在公有子网。netstat -antp查看网络连接发现内网其他服务。cat /etc/resolv.conf查看DNS可能指向内网的DNS服务器如10.0.0.2。进程与服务ps auxfsystemctl list-units 查看运行的服务可能发现数据库、消息队列等。配置文件查找Web应用配置、数据库连接配置文件、日志文件寻找其他系统的凭据。历史命令与用户信息historycat ~/.bash_historycat /etc/passwd。云元数据再次确认从内部访问元数据服务可能获得更丰富的角色信息。curl http://169.254.169.254/latest/meta-data/。5.2 权限提升与横向移动本地提权检查系统内核版本搜索公开Exp。检查是否有sudo权限sudo -l是否有SUID/GUID位设置错误的可执行文件find / -perm -us -type f 2/dev/null。横向移动利用在内网收集到的密码或密钥尝试SSH到其他主机。使用nmap或masscan从内部扫描整个VPC网段。如果获取到IAM角色的临时凭证可以尝试在容器或主机上安装华为云CLI进行云服务层面的横向移动如访问其他区域的资源。5.3 权限维持后门目的是模拟高级持续性威胁APT展示攻击者如何长期潜伏。Web后门在Web目录下放置隐蔽的Webshell如免杀的一句话木马或集成到正常PHP文件中。SSH后门添加SSH公钥到~/.ssh/authorized_keys或创建隐藏的SSH账户。计划任务通过crontab -e添加定时任务定期反弹Shell或下载执行恶意脚本。云服务后门这是云环境特有的。如果获得了足够高的IAM权限如ECS FullAccess攻击者可以修改现有ECS的安全组为后门端口放行。创建新的ECS实例并绑定一个弹性公网IP作为长期控制的跳板机。在OBS桶中存储恶意脚本并通过实例的“用户数据”功能在启动时自动下载执行。注意事项后渗透阶段的所有操作必须在授权范围内明确约定。通常为了证明危害性我们会选择一种非破坏性的方式展示可能性例如在/tmp目录下创建一个标记文件或截取一张拥有特定系统权限的截图然后立即清理痕迹并向客户展示攻击路径。绝对禁止在未经明确授权的情况下进行数据窃取、破坏或创建真实的持久化后门。6. 报告撰写与风险修复建议渗透测试的最终价值体现在报告上。一份好的报告能让技术人员看懂如何复现让管理者看清风险全貌和业务影响。6.1 报告结构我的报告通常分为以下几个部分概述测试目标、范围、时间、参与人员、方法论简述。执行摘要给管理层看用一页纸说明整体安全状况、发现的高危风险数量、最严重的1-2个漏洞及其可能造成的业务影响数据泄露、服务中断、资金损失等。详细发现给技术人员看按风险等级高危、中危、低危、信息分类。每个漏洞一个独立章节包含漏洞标题清晰描述如“OBS存储桶配置错误导致敏感源码泄露”。风险等级CVSS评分或自定义评级。受影响资产具体的URL、IP、云资源ID。漏洞描述详细说明这是什么问题。验证步骤一步一步的操作截图和说明让开发或运维能完全复现。漏洞原理简要分析其成因。潜在影响攻击者利用此漏洞能做什么结合业务场景。修复建议具体、可操作的修复步骤。例如修复建议立即登录华为云控制台进入OBS服务。找到名为backup-target的桶点击进入。选择“概览”页签在“基础配置”区域找到“桶策略”。检查现有策略删除任何包含“Principal”: {“AWS”: [“*”]}或“Effect”: “Allow”且“Action”: “s3:GetObject”的语句除非明确需要公开访问。点击“ACL”选项确认“匿名用户”的“读取”权限未被勾选。建议为桶配置生命周期规则自动归档或删除不必要的早期备份文件。参考链接OWASP、华为云安全白皮书等相关文档链接。附录测试使用的工具列表、漏洞扫描原始结果可选、网络拓扑图可选。6.2 修复建议的沟通将报告提交给客户后沟通至关重要。召开复盘会议与开发、运维、安全团队一起过一遍高危漏洞。解释漏洞的利用方式确保他们理解风险的严重性。提供优先级帮助客户制定修复计划。通常顺序是高危且易于利用的 - 高危但利用复杂的 - 中危 - 低危。配置错误类漏洞如OBS公开访问通常修复最快应优先处理。跟进与复测在客户修复漏洞后进行针对性的复测确认漏洞已真正修复且修复方案没有引入新的问题。7. 总结与个人体会做完这个华为云Web平台的渗透测试项目我最大的感触是云安全是“责任共担模型”的绝佳体现。云平台提供了坚固的“数据中心”安全但“云内”的安全尤其是应用配置和数据安全责任完全在使用者肩上。很多暴露出来的高危问题根源都不在深奥的0day漏洞而在于默认配置的不安全和安全意识的缺失。比如那个公开的OBS桶运维同学可能只是想临时分享个文件图方便设置了“公共读”事后就忘了。在传统机房一个文件放错文件夹可能只影响内网在云上这个动作就等于把文件放在了全球互联网的公共广场。再比如安全组对所有IP开放了Redis端口这在内网可能是常规操作但在给ECS绑定弹性公网IP时如果没有同步收紧安全组就等于把数据库裸奔在公网。对于企业和安全从业者我的建议是建立云资产清单你无法保护你不知道的东西。定期自动化盘点云上所有资源ECS、OBS、RDS、ELB等。贯彻最小权限原则无论是IAM用户、角色还是安全组、桶策略都从“默认拒绝”开始再按需添加允许规则。开启审计日志务必开启云审计服务CTS记录所有API调用。这是事后追溯攻击链、进行取证的唯一依据。将安全左移在应用设计、代码开发、镜像构建的阶段就融入安全考量而不是等到上线前再做渗透测试。可以考虑在CI/CD流水线中集成SAST/DAST工具。定期进行渗透测试与配置审计云环境是动态变化的新的服务、新的配置随时可能引入风险。将渗透测试和CSPM云安全态势管理扫描作为常规动作至少每季度一次。安全是一个持续的过程而非一劳永逸的状态。在云时代攻击面在扩大攻击手段在翻新唯有保持敬畏持续学习才能构建起真正有效的防御体系。