将powershell以web服务暴露出来,另外一种形式的webshell?
字数 3047
更新时间 2026-02-27 12:25:36
PowerShell Web Access (PSWA) 滥用分析与检测指南
摘要
本文档基于先知社区提供的文章,系统阐述了PowerShell Web Access (PSWA)的核心概念、其从合法管理工具被滥用为隐蔽控制通道的攻击手法、部署配置方法以及对应的检测防御策略。PSWA是Windows Server的一项功能,旨在提供基于Web的PowerShell远程管理界面。在高级持续性威胁(APT)攻击中,该功能常被攻击者滥用以建立持久、隐蔽的命令与控制通道。
1. PowerShell Web Access (PSWA) 概述
1.1 定义与功能
PowerShell Web Access (PSWA) 是在 Windows Server 2012 中引入的一项服务器功能。它作为一个网关,提供基于网页的 PowerShell 控制台,其功能与本地 PowerShell 控制台相似。该功能允许管理员从任何操作系统(如Windows、macOS、Linux、iPad、手机)的浏览器,通过HTTPS协议远程管理启用了PowerShell Remoting的Windows服务器或客户端。
1.2 核心价值与特点
- 跨平台远程管理:无需在管理设备上安装PowerShell或特定客户端工具,仅需浏览器即可执行管理任务。
- 完整功能支持:可执行完整的PowerShell命令,包括管理活动目录(AD)、Exchange、Hyper-V,查看日志,重启服务,部署脚本等。
- 协议标准化:使用标准HTTPS通信,流量易于与正常Web流量混合。
2. 滥用场景:从管理工具到攻击载体
根据美国网络安全和基础设施安全局(CISA)发布的联合通告AA24-241A,攻击者在入侵后的活动阶段频繁滥用PSWA作为远程控制与横向移动的关键组件。
2.1 典型的攻击链
- 初始访问:攻击者通常利用暴露的远程访问设备漏洞(如VPN、应用交付控制器)获取初始立足点。
- 权限提升:在目标系统内获取有效凭据或提升至管理员权限。
- 建立持久化:在受害主机上启用并配置PSWA功能,将其转变为隐蔽的命令与控制通道、横向移动跳板或持久的远程管理后门。
2.2 攻击者选择PSWA的优势
- 高隐蔽性:PSWA是系统内置的合法功能,其启用和运行本身不涉及漏洞利用或恶意软件植入,难以被传统安全软件直接判定为恶意行为。
- 通信隐蔽:基于HTTPS的通信易于融入企业正常的Web管理流量中,规避基于端口的简单检测。
- 功能强大:提供完整的、交互式的PowerShell执行环境,攻击者可以像管理员一样执行任意系统命令和脚本。
- 访问便捷:攻击者仅需通过浏览器即可从任何地方接入,降低了攻击复杂度。
3. 启用与配置PowerShell Web Access
攻击者或管理员可以通过多种方式在Windows Server上启用PSWA。
3.1 启用方法
- 使用DISM命令行工具:
dism /online /enable-feature /featurename:WindowsPowerShellWebAccess - 使用图形化界面:通过“服务器管理器” -> “添加角色和功能”向导,选择“PowerShell Web Access”功能进行安装。
- 通过脚本一键启用:文章引用了一个GitHub Gist脚本,该脚本(包含PowerShell和批处理版本)可自动化完成PSWA的启用和基本配置。
- 脚本地址:
https://gist.github.com/MHaggis/7e67b659af9148fa593cf2402edebb41
- 脚本地址:
3.2 连接与使用
- 访问地址:安装完成后,PSWA默认的Web访问路径通常为
/pswa(例如:https://<服务器IP或域名>/pswa)。 - 身份验证:通过浏览器访问该地址后,会呈现一个登录界面,需要提供有效的Windows用户名、密码以及要连接的目标主机名(可以是本地或网络中的其他主机)。
- 操作界面:成功登录后,浏览器中会显示一个与本地PowerShell控制台高度相似的交互式网页界面,用户可以在此执行任意PowerShell命令。
4. 检测与防御建议
由于PSWA是合法功能,检测重点应放在异常的使用模式和行为上。
4.1 基于主机的检测
- 检查IIS配置:
- 异常站点:检查Internet Information Services (IIS) 管理器,查找是否存在非授权或异常的Web站点,特别是那些承载
/pswa路径的站点。 - 应用池:留意名为
pswa_pool的IIS应用程序池,其异常启动或存在可作为识别线索。
- 异常站点:检查Internet Information Services (IIS) 管理器,查找是否存在非授权或异常的Web站点,特别是那些承载
- 分析IIS日志:
- 监控IIS访问日志(默认位于
%SystemDrive%\inetpub\logs\LogFiles),筛选对/pswa路径的访问记录,特别关注非管理时间段、非常用IP地址的访问。
- 监控IIS访问日志(默认位于
- 分析Windows事件日志:
- 登录事件:重点关注事件ID 4624(登录成功)、4625(登录失败),尤其是通过PSWA网关进行的网络登录(登录类型可能为3)。
- 特殊权限登录事件:监控事件ID 4648(使用显式凭据登录),攻击者在进行横向移动时可能触发此类事件。
- 监控进程行为:
- 关注由
wsmprovhost.exe(Windows远程管理服务主机进程)派生出的PowerShell (powershell.exe) 或命令提示符 (cmd.exe) 进程。这通常是远程PowerShell命令执行(包括通过PSWA)的典型行为模式,可用于识别横向移动。
- 关注由
4.2 基于网络的检测
- HTTPS流量分析:虽然内容加密,但可监测到与服务器特定IP/端口建立的、长时间存在的HTTPS会话,并结合JA3/JA3S指纹或其他行为特征进行分析。
- SIEM/SOC规则:在安全信息与事件管理系统中创建关联规则,例如将非管理员的成功登录事件与紧随其后的
wsmprovhost进程创建事件进行关联告警。
4.3 防御与缓解措施
- 最小权限原则:严格限制拥有本地或域管理员权限的账户数量,并确保PSWA仅允许必要的管理账户访问。
- 网络分段与访问控制:将管理网络与业务网络隔离,限制对PSWA服务端(默认端口443/TCP)的访问来源IP,仅允许来自受信管理主机的连接。
- 定期审计与监控:将上述检测点纳入日常安全审计和持续监控范围。
- 禁用不必要的功能:对于无需通过Web进行PowerShell管理的服务器,应考虑通过组策略或手动方式禁用“PowerShell Web Access”功能。
- 加强认证:为PSWA启用多因素认证,增加攻击者利用盗取凭据直接访问的难度。
5. 参考文献
- Splunk. “PowerShell Web Access: Your Network’s Backdoor in Plain Sight.”
- Cybersecurity and Infrastructure Security Agency (CISA). “Joint Cybersecurity Advisory AA24-241A.” Available at:
https://www.cisa.gov/news-events/cybersecurity-advisories/aa24-241a - Microsoft. “Install and Use Windows PowerShell Web Access.” (官方文档)