1. 确保“debug”已关闭 | 服务配置

加固建议

要使用UI进行此更改,请执行以下操作: 1.打开IIS管理器并浏览所需的服务器,站点或应用程序 2.在“功能视图”中,双击“ .NET编译” 3.在“ .NET编译”页上的“行为”部分,确保“调试”字段设置为False。 4.完成后,在“操作”窗格中单击“应用”。

2. 确保不允许使用未列出的文件扩展名 | 服务配置

可以使用IIS管理器GUI,在命令行窗口中使用AppCmd.exe命令和/或直接编辑配置文件来为服务器,网站或应用程序设置allowUnlisted请求筛选器。 要使用IIS管理器GUI在服务器级别进行配置: 1.打开Internet信息服务(IIS)管理器 2.在“连接”窗格中,选择服务器 3.在“主页”窗格中,双击“请求过滤” 4.单击“操作”窗格中的“编辑功能设置...”。 5.在常规部分下,取消选中允许未列出的文件扩展名 若要使用AppCmd.exe命令设置此请求筛选器,请在提升的命令提示符处运行以下命令:

%systemroot%\system32\inetsrv\appcmd set config /section:requestfiltering /fileExtensions.allowunlisted:false

3.  确保为会话状态配置了“ httpcookie”模式 | 服务配置

通过使用IIS管理器GUI,在命令行窗口中使用AppCmd.exe命令,直接编辑配置文件或编写WMI脚本,可以将SessionState设置为UseCookies。 执行以下操作,以在IIS管理器GUI中将sessionState节点的cookieless属性设置为UseCookies:

1.打开IIS管理器GUI并浏览所需的服务器,站点或应用程序
2.在“功能视图”中,找到并双击“会话状态”图标
3.在Cookie设置部分中,从模式下拉菜单中选择使用Cookie
4.在“动作”窗格中,单击“应用”

若要使用AppCmd.exe在服务器级别配置sessionState,该命令应如下所示:

%systemroot%\system32\inetsrv\appcmd set config /commit:WEBROOT /section:sessionState /cookieless:UseCookies /cookieName:ASP.NET_SessionID /timeout:20

4. 确保将“目录浏览”设置为禁用 | 服务配置

可以使用UI,运行appcmd.exe命令,直接编辑配置文件或编写WMI脚本来设置目录浏览。 要使用appcmd.exe命令在服务器级别禁用目录浏览:

%systemroot%\system32\inetsrv\appcmd set config /section:directoryBrowse /enabled:false

4. 确保将'notListedIsapisAllowed'设置为false | 服务配置

若要使用IIS管理器将notListedIsapisAllowed属性设置为false: 1.以管理员身份打开IIS管理器 2.在左侧的“连接”窗格中,选择要配置的服务器 3.在“功能视图”中,选择“ ISAPI和CGI限制”; 在“操作”窗格中,选择“打开功能” 4.在“操作”窗格中,选择“编辑功能设置” 5.在“编辑ISAPI和CGI限制设置”对话框中,清除“允许未指定的ISAPI模块”复选框(如果已选中) 6.点击确定 若要使用AppCmd.exe命令设置此请求筛选器,请在提升的命令提示符处运行以下命令:

%systemroot%\system32\inetsrv\appcmd.exe set config -section:system.webServer/security/isapiCgiRestriction /notListedIsapisAllowed:false

5. 确保未授予处理程序写入和脚本/执行权限 | 服务配置

加固建议

存在脚本或执行时,ApplicationHost.config(服务器范围)或web.config(站点或应用程序)的<handlers>部分中的accessPolicy属性一定不能具有Write。 要解决Web服务器的此问题,必须手动编辑服务器的ApplicationHost.config文件的<handlers>部分中的属性。 要使用记事本编辑ApplicationHost.config文件,请执行以下步骤: 1.以管理员身份打开记事本 2.在%systemroot%\system32\inetsrv\config中打开ApplicationHost.config文件。 3.编辑<handlers>部分的accessPolicy属性,确认在存在Script或Execute时不存在Write。 若要使用AppCmd.exe命令设置此请求筛选器,请在提升的命令提示符处运行以下命令:

%systemroot%\system32\inetsrv\appcmd set config /section:handlers /accessPolicy:Read,Script

6. 确保启用日志ETW功能 | 服务配置

点击开始->管理工具->Internet Information Services (IIS)管理器在iis设置模块点击日志,在右侧点击开启

7. 确保不使用默认的IIS Web日志位置 | 服务配置

点击开始->管理工具->Internet Information Services (IIS)管理器在iis设置模块点击日志,在目录选项点击浏览选择新的日志目录,点击右侧应用。或者使用Appcmd管理工具进行操作

%systemroot%\system32\inetsrv\appcmd set config -section:sites -siteDefaults.logfile.directory:"<log_path>"