IIS
Categories:
4 分钟阅读
适用范围:Windows IIS 7.5/8/8.5/10,含站点、应用程序池、反向代理和 WebDAV 场景。
不适用标识说明:
- 使用
【不适用】明确标记现场可判定为不适用的控制点。 - 判定依据采用 GB/T 28448-2019 的对象边界原则;IIS 常作为站点容器或代理网关,涉及业务型控制点时应结合站点和上层应用判定。
基础信息
核查命令:
Get-WindowsFeature Web-ServerGet-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\InetStp'Get-WebsiteGet-WebAppPoolState -Name *- 备注:确认 IIS 版本、站点、应用程序池、绑定、物理路径、证书、日志路径和扩展模块。
- 预期证据:版本截图、站点列表截图、应用池截图、绑定截图。
示例输出(节选)
Get-Website(节选)
Name State PhysicalPath Bindings
DemoSite Started C:\inetpub\wwwroot http *:80:, https *:443:
appcmd list sites
SITE "DemoSite" (id:1,bindings:http/*:80:,https/*:443:,state:Started)
Get-WindowsFeature Web-Server:InstallState=Installed
版本:IIS 10.0(HKLM:\SOFTWARE\Microsoft\InetStp VersionString=10.0.20348)
身份鉴别
A. 管理入口识别
核查命令:
Get-WindowsFeature | Where-Object {$_.Name -like 'Web-*' -and $_.InstallState -eq 'Installed'}
- 备注:管理主要依赖 IIS 管理器、远程管理服务、Web Deploy、站点内认证配置。
- 预期证据:功能列表截图、远程管理配置截图。
示例输出(节选)
Name Display Name Install State
---- ------------- -------------
Web-WebServer Installed
Web-Asp-Net45 Installed
Web-Mgmt-Console Installed
(管理控制台仅本机/堡垒机使用,远程管理服务未安装)
B. 认证机制
核查命令:
Get-WebConfigurationProperty -Filter /system.webServer/security/authentication/* -Name enabled -PSPath 'IIS:\\'
- 备注:核查匿名、基本、Windows、摘要、客户端证书等认证方式。
- 预期证据:认证配置截图、平台材料、访谈记录。
示例输出(节选)
Path enabled
---- -------
anonymousAuthentication False
basicAuthentication False
windowsAuthentication False
clientCertificateMappingAuthentication True
(匿名认证关闭,采用客户端证书映射认证)
C. 登录失败与会话控制
核查命令:
Get-WebConfigurationProperty -Filter /system.webServer/security/authentication/anonymousAuthentication -Name enabled -PSPath 'IIS:\\'
- 备注:IIS 自身不提供完整账户锁定机制,通常依赖 AD、域策略、站点应用或统一认证平台。
- 【不适用】若站点仅开放匿名访问或仅作反向代理,不存在 IIS 本地人工登录过程,则登录失败锁定和会话超时对 IIS 本体不适用。
- 预期证据:认证方式截图、域策略或平台材料。
示例输出(节选)
enabled : False
(匿名身份验证已在站点级显式关闭,访问须凭据)
D. 运维鉴别链路
核查命令:
Get-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\WebManagement\\Server'
- 备注:远程运维应结合堡垒机、RDP 安全、域账号、VPN、HTTPS 管理链路综合判断。
- 预期证据:远程管理截图、堡垒机和制度材料。
示例输出(节选)
AllowRemoteManagement : False
WindowsCredentialsOnly : True
RequireWindowsAuthentication : True
(IIS 远程管理服务未启用,管理经 RDP 堡垒机完成)
访问控制
A. 站点与目录权限
核查命令:
icacls <站点物理路径>
Get-WebConfiguration -Filter /system.webServer/security/authorization -PSPath 'IIS:\\'
- 备注:重点核查站点目录 NTFS 权限、授权规则和匿名访问范围。
- 预期证据:目录权限截图、授权配置截图。
示例输出(节选)
icacls C:\inetpub\wwwroot
NT AUTHORITY\SYSTEM:(OI)(CI)F
IIS_IUSRS:(OI)(CI)RX
(站点目录对应用池标识只读+执行,无写权限)
authorization 规则:allow users="*" roles="AppUsers" 仅限授权路径
B. 管理接口与来源限制
核查命令:
Get-WebConfigurationProperty -Filter /system.webServer/security/ipSecurity -Name * -PSPath 'IIS:\\'
- 备注:管理服务、管理页面和敏感站点应限制来源地址。
- 预期证据:IP 限制截图、网络 ACL 材料。
示例输出(节选)
collection : {@{ipAddress=192.168.10.0; subnetMask=255.255.255.0; allowed=True},
@{ipAddress=0.0.0.0; subnetMask=0.0.0.0; allowed=False}}
(默认拒绝全部来源,仅放行运维网段)
C. 默认站点与默认页面
核查命令:
Get-Website
Get-WebConfigurationProperty -Filter /system.webServer/defaultDocument/files -Name value -PSPath 'IIS:\\'
- 备注:默认站点、示例页面、未使用站点应清理或停用。
- 预期证据:站点列表截图、处置说明。
示例输出(节选)
Name ID State Bindings
DemoSite 1 Started http *:80:, https *:443:
defaultDocument files:Default.htm, index.aspx
(默认文档清单收敛,无示例页残留)
D. 应用程序池与运行权限
核查命令:
Get-ChildItem IIS:\\AppPools | Select-Object Name, state, processModel
- 备注:应用程序池身份、权限分离和最小权限是重点。
- 预期证据:应用池身份截图、权限说明。
示例输出(节选)
Name State processModel.userName
DemoPool Started IdentityType=ApplicationPoolIdentity
(应用池独立标识运行,非高权限账户)
安全审计
A. IIS 日志配置
核查命令:
Get-WebConfigurationProperty -Filter /system.applicationHost/sites/siteDefaults/logFile -Name * -PSPath 'IIS:\\'
- 备注:重点看 W3C 日志、日志字段、日志路径和轮转。
- 预期证据:日志配置截图、日志目录截图。
示例输出(节选)
directory : C:\inetpub\logs\LogFiles
period : Daily
logFormat : W3C
localTimeRollover : False
enabled : True
(W3C 扩展格式按日滚动)
B. Windows 日志与管理审计
核查命令:
Get-WinEvent -LogName System -MaxEvents 20
Get-WinEvent -LogName Security -MaxEvents 20
- 备注:IIS 审计应结合 Windows 安全日志、远程管理日志和站点日志综合判断。
- 预期证据:事件日志截图、IIS 日志样例。
示例输出(节选)
TimeCreated Id LevelDisplayName Message
8/24/2026 10:12:44 AM 4625 Warning An account failed to log on.(来源 192.168.8.66)
8/24/2026 10:13:02 AM 4634 Information An account was logged off.
(登录失败事件完整,联动 SIEM 告警)
C. 留存与轮转
核查命令:
Get-WebConfigurationProperty -Filter /system.applicationHost/sites/siteDefaults/logFile -Name period -PSPath 'IIS:\\'
- 备注:需核实保留周期、归档、备份和责任人。
- 预期证据:配置截图、制度、访谈记录。
示例输出(节选)
period : Daily
(日志按日滚动,配合脚本归档保留 90 天)
D. 集中审计
核查命令:
wevtutil gl Security
- 备注:如日志进入 SIEM、日志平台,应按平台证据确认留存和告警。
- 预期证据:平台截图、告警截图。
示例输出(节选)
eventname: Security
retentionDays: 90
maxSize: 1073741824
logMode: AutoBackup
(安全日志保留 90 天、自动滚动并转发 SIEM)
数据完整性
A. 配置完整性
核查命令:
Get-Content $env:windir\\System32\\inetsrv\\config\\applicationHost.config -TotalCount 80
- 备注:配置变更应可追溯,站点和应用池变更应有审批或运维记录。
- 预期证据:配置截图、变更工单、发布记录。
示例输出(节选)
<configuration>
<system.webServer>
<security><authentication><windowsAuthentication enabled="true"/></authentication></security>
</system.webServer>
</configuration>
(applicationHost.config 节选,站点级认证集中管理)
B. 传输完整性
核查命令:
Get-WebBinding
netsh http show sslcert
- 备注:重点看 HTTPS、代理转发和上游完整性设置。
- 预期证据:绑定截图、证书截图。
示例输出(节选)
protocol bindingInformation host sslFlags
https *:443:demo.local demo.local SNI+中央证书库
netsh http show sslcert(节选)
IP:port 0.0.0.0:443 Certificate Hash: a1b2... Store Name: MY
数据保密性
A. HTTPS 与证书
核查命令:
Get-WebBinding | Where-Object {$_.protocol -eq 'https'}
certutil -store MY
- 备注:管理面和敏感站点应优先启用 HTTPS。
- 预期证据:HTTPS 绑定截图、证书截图。
示例输出(节选)
protocol bindingInformation sslFlags
https *:443:demo.local Sni
certutil -store MY(节选)
================ Certificate 0 ================
Serial Number: 1f2e...
Subject: CN=demo.local, OU=IT, O=demo-org
Issuer: CN=demo-ca
NotAfter: 2027-05-20
B. 敏感配置保护
核查命令:
Select-String -Path $env:windir\\System32\\inetsrv\\config\\applicationHost.config -Pattern 'password|secret|userName'
- 备注:应用池账号、连接串和敏感配置保护应重点核查。
- 预期证据:脱敏截图、密钥管理说明。
示例输出(节选)
Select-String applicationHost.config(节选)
<application path="/api" applicationPool="DemoPool">
userName="DEMO\svc-app" password="[enc:AesProvider:***]"
(凭据加密存储于配置节,未见明文)
备份恢复
A. 配置备份
核查命令:
Get-ChildItem $env:windir\\System32\\inetsrv\\backup
- 备注:IIS 提供配置备份目录,可结合系统备份、站点文件备份一起核查。
- 预期证据:备份目录截图、策略说明。
示例输出(节选)
Mode LastWriteTime Length Name
d---- 8/1/2026 2:00 AM backup-20260801
(存在 appcmd 生成的自动备份与手工备份目录)
B. 日志与站点文件备份
核查命令:
Get-ChildItem 'C:\\inetpub\\logs\\LogFiles'
- 备注:站点内容、日志和证书备份应有明确口径。
- 预期证据:归档截图、访谈记录。
示例输出(节选)
Directory: C:\inetpub\logs\LogFiles
W3SVC1 W3SVC2
(每站点一目录,按日滚动归档至备份服务器)
C. 恢复能力
核查命令:
appcmd list backup
- 备注:可通过配置恢复、站点恢复和系统快照说明恢复能力。
- 预期证据:恢复手册、演练记录、工单。
示例输出(节选)
BACKUP "backup-20260801" 8/1/2026 2:00 AM
BACKUP "backup-20260725" 7/25/2026 2:00 AM
(appcmd add backup 定期执行,可一键 restore)
剩余信息保护
A. 历史站点与备份残留
核查命令:
Get-Website
Get-ChildItem 'C:\\inetpub' -Recurse -ErrorAction SilentlyContinue | Where-Object {$_.Name -match 'bak|old|backup|test'}
- 备注:测试站点、历史备份目录、旧页面和停用应用应清理。
- 预期证据:目录截图、清理说明。
示例输出(节选)
Name ID State
DemoSite 1 Started
(inetpub 下无 bak/old/test 命名残留文件)
B. 凭据残留
核查命令:
Select-String -Path $env:windir\\System32\\inetsrv\\config\\*.config -Pattern 'password|secret|token'
- 备注:配置和脚本中残留敏感信息应重点核查。
- 预期证据:脱敏截图、整改说明。
示例输出(节选)
Select-String *.config(节选)
machine.config: (无命中)
web.config: <connectionStrings> 加密为 RSA Protected Configuration Provider
(口令经 aspnet_regiis -pe 加密,无明文 token)
个人信息保护
A. 日志与站点中的个人信息
核查命令:
Get-WebConfigurationProperty -Filter /system.applicationHost/sites/siteDefaults/logFile/customFields -Name * -PSPath 'IIS:\\'
- 备注:应结合站点功能判断是否记录个人信息。
- 【不适用】若 IIS 仅作反向代理或静态站点,不直接处理个人信息,则该点可判定不适用。
- 预期证据:日志字段截图、站点说明。
示例输出(节选)
customFields collection:
@{fieldName=X-Real-IP; sourceName=X-Real-IP; sourceType=RequestHeader}
(自定义字段仅记录真实源 IP,不含 Cookie/身份证等字段)
B. 导出与共享控制
核查命令:
Get-WebConfigurationProperty -Filter /system.webServer/webdav/authoring -Name enabled -PSPath 'IIS:\\'
- 备注:WebDAV、文件下载、目录浏览等能力需关注个人信息共享风险。
- 【不适用】若未启用 WebDAV、目录浏览或文件共享能力,且站点不直接承载个人信息,则该点不适用。
- 预期证据:功能配置截图、权限说明。
示例输出(节选)
enabled : False
(WebDAV 发布功能整体关闭,无 PUT/DELETE 写入面)
入侵防范
A. 默认站点与敏感功能暴露
核查命令:
Get-Website
Get-WebConfigurationProperty -Filter /system.webServer/directoryBrowse -Name enabled -PSPath 'IIS:\\'
- 备注:重点核查默认站点、目录浏览、WebDAV、测试站点和管理服务暴露情况。
- 预期证据:站点截图、功能截图、处置说明。
示例输出(节选)
Name State
DemoSite Started
enabled : False
(目录浏览关闭,禁止列目录)
B. 危险扩展与执行面
核查命令:
Get-WebConfigurationProperty -Filter /system.webServer/handlers/add -Name path -PSPath 'IIS:\\'
- 备注:关注脚本执行映射、可执行上传目录、危险处理程序和未使用扩展。
- 预期证据:处理程序截图、目录权限截图、访谈记录。
示例输出(节选)
path
*.aspx *.ashx WebDAV(已移除)
(处理器映射收敛,已删除多余调试处理程序)
C. 版本与漏洞风险
核查命令:
Get-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\InetStp'
- 备注:需确认 IIS 版本、Windows 补丁和历史漏洞整改情况。
- 预期证据:版本截图、补丁记录、整改说明。
示例输出(节选)
VersionString : 10.0.20348
SetupMajorVersion : 10
(IIS 10.0,随系统补丁统一更新)
D. 安全防护联动
核查命令:
Get-WinEvent -LogName Security -MaxEvents 20
- 备注:IIS 入侵防范通常依赖主机防护、WAF、Windows 安全审计和日志平台联动。
- 预期证据:主机防护截图、WAF/日志平台告警、事件日志截图。
示例输出(节选)
TimeCreated Id LevelDisplayName Message
8/24/2026 10:12:44 AM 4625 Warning An account failed to log on.
8/24/2026 03:11:02 AM 4688 Information Scanner blocked by WAF provider
(失败登录与扫描拦截事件上送安全平台联动封禁)