IIS禁止执行脚本的命令有哪些,怎么设置?

在IIS安全配置中,禁止执行脚本命令的核心是通过请求过滤、处理程序映射和URL授权规则,限制对cmd.exe、powershell.exe、wscript.exe、cscript.exe等危险命令文件的访问,从源头阻断攻击者利用Web漏洞执行系统命令的路径。

IIS禁止执行脚本命令的三种核心方法

配置IIS禁止执行脚本命令不是单一开关,而是通过多层机制协同工作,下面三种方法覆盖了绝大多数场景,根据你的网站类型和风险等级选择组合即可。

用IIS管理器配置web服务器
加载中
用IIS管理器配置web服务器

请求过滤禁止特定扩展名

请求过滤是IIS中最直接的拦截手段,它会在HTTP请求进入处理管道前检查文件扩展名,匹配到拒绝列表的请求直接返回404错误。

  • 操作步骤:打开IIS管理器,选择目标站点,双击中间区域的“请求过滤”图标,点击右侧“拒绝扩展名”添加需要禁止的扩展名。
  • 建议添加的扩展名:.exe、.com、.bat、.cmd、.ps1、.vbs、.js、.msi、.scr、.pif等。
  • 注意事项:请求过滤仅对URL中的扩展名生效,如果攻击者通过无扩展名的方式调用命令(如利用Windows短文件名或路径解析漏洞),则无法拦截,因此需要配合其他方法。

处理程序映射移除脚本执行入口

处理程序映射决定了IIS如何响应不同类型的请求,移除无关的脚本处理程序,可以防止攻击者通过上传脚本文件获取执行权限。

  • 操作步骤:在站点管理界面双击“处理程序映射”,找到并移除以下不用的处理程序:ASP、ASP.NET、PHP、CGI-exe、Server-side Includes等,如果站点不需要执行任何脚本,保留StaticFile即可。
  • 关键点:移除CGI-exe处理程序能直接阻止IIS调用任何.exe文件,但需确认站点是否依赖CGI功能,对于纯静态站点,这是最安全的做法。

通过web.config配置URL授权和文件拦截

对于无法通过界面修改的托管环境,或需要更精细化控制时,web.config文件是最佳选择,利用<system.webServer>下的<security>和<location>节点,可以禁止特定路径或文件名的访问。

  • 配置示例:在站点根目录web.config的<system.webServer>节点内添加:
<security>
  <requestFiltering>
    <denyUrlSequences>
      <add sequence="cmd.exe" />
      <add sequence="powershell.exe" />
      <add sequence="wscript.exe" />
    </denyUrlSequences>
    <fileExtensions>
      <add fileExtension=".exe" allowed="false" />
      <add fileExtension=".ps1" allowed="false" />
    </fileExtensions>
  </requestFiltering>
</security>

IIS禁止执行脚本的命令有哪些,怎么设置?

  • 优势:可以精确拦截URL中的特定字符串,即使命令文件没有扩展名也能阻止,同时支持对目录级别的权限控制,比如禁止访问/bin/或/uploads/下的可执行文件。

哪些命令禁止执行?常见危险命令列表

IIS禁止执行脚本命令的核心是识别出能直接调用系统操作的可执行文件。 根据攻击者常用的命令包,整理出以下清单,按风险等级划分,方便你按需配置。

高危命令:必须禁止执行

命令 说明 风险场景
cmd.exe Windows命令提示符,攻击者最常利用的入口 执行任意系统命令、下载恶意负载
powershell.exe 强大的脚本执行环境,支持直接内存调用 无文件攻击、执行恶意脚本、提权
wscript.exe / cscript.exe Windows脚本宿主,可执行.vbs、.js 运行恶意脚本、下载执行病毒
mshta.exe 运行HTA文件,常被用于绕过杀毒软件 执行恶意HTML应用、下载木马
regsvr32.exe 注册COM组件,攻击者利用它绕过白名单 通过SCT文件远程加载恶意代码
rundll32.exe 运行DLL文件,误报率低,常被滥用 执行DLL文件中的恶意函数

中危命令:建议根据场景禁止

命令 说明 风险场景
certutil.exe 证书工具,可下载文件,被用于下载恶意软件 绕过下载限制,获取远程payload
bitsadmin.exe 后台智能传输服务,可下载/上传文件 大文件下载,常被用作持久化通道
ftp.exe 文件传输协议客户端 泄露数据或下载恶意文件
net.exe / net1.exe 网络命令管理工具 创建用户、修改网络配置、侦察内网
taskkill.exe / tasklist.exe 进程管理 结束安全软件进程、列出进程信息

低危命令:视业务需求决定

IIS禁止执行脚本的命令有哪些,怎么设置?

命令 说明 风险场景
ping.exe 网络连通性测试 探测主机存活、作为ICMP隧道
tracert.exe 路由跟踪 信息收集,了解网络拓扑
nslookup.exe DNS查询 解析域名,辅助数据外传
whoami.exe 查看当前用户身份 确认权限,为后续提权做准备

行业共识认为,禁止命令执行时优先从高危命令开始,再根据日志中出现的异常请求逐步扩展到中危命令,避免过度限制影响正常运维。

实战场景:IIS禁止执行脚本命令的配置示例

理论说再多,不如一个真实的配置过程,以下三个场景是站长最常见的安全需求,覆盖了从上传防护到权限控制的完整链路。

防止WebShell通过上传目录执行命令

很多攻击者通过文件上传漏洞将WebShell存到/uploads/目录,然后通过URL直接访问exe或ps1文件来执行命令,配置方法:

  • 在IIS管理器中,选择/uploads/目录,双击“请求过滤”,添加拒绝扩展名.exe、.ps1、.vbs、.bat。
  • 移除该目录的所有脚本处理程序映射,只保留StaticFile。
  • 在web.config中增加<location path="uploads">节点,禁止访问特定命令文件名:
<location path="uploads">
  <system.webServer>
    <security>
      <requestFiltering>
        <denyUrlSequences>
          <add sequence="cmd" />
          <add sequence="powershell" />
          <add sequence="wscript" />
        </denyUrlSequences>
      </requestFiltering>
    </security>
  </system.webServer>
</location>
  • 验证:尝试访问http://你的站点/uploads/shell.exe,应返回404.7状态码。

限制应用程序池的执行权限

即使IIS层面拦截了请求,如果攻击者通过其他漏洞(如本地文件包含)在服务器上直接运行命令,仍需系统级防护。

  • 将应用程序池标识设置为ApplicationPoolIdentity或自定义低权限账户(如IIS_IUSRS)。
  • 使用Windows文件系统权限,禁止该账户对高危命令的执行权限,在C:WindowsSystem32cmd.exe上右键 -> 安全 -> 添加拒绝“读取和执行”权限给应用程序池账户。
  • 注意:不要直接拒绝所有账户,否则操作系统自身可能异常,建议只拒绝IIS相关账户。
  • IIS禁止执行脚本的命令有哪些,怎么设置?

结合URL重写规则禁止命令执行参数

对于命令注入类型的攻击,攻击者常在URL参数中传递命令,如?cmd=whoami,此时请求过滤很难覆盖,而URL重写可以匹配参数内容。

  • 安装URL重写模块,添加入站规则,模式为(cmd.exe|powershell|wscript|regsvr32),条件检查{QUERY_STRING},匹配后返回403或重定向。
  • 规则示例:
<rewrite>
  <rules>
    <rule name="Block cmd execution" stopProcessing="true">
      <match url="." />
      <conditions>
        <add input="{QUERY_STRING}" pattern="(cmd.exe|powershell.exe|wscript.exe)" ignoreCase="true" />
      </conditions>
      <action type="CustomResponse" statusCode="403" statusReason="Forbidden" />
    </rule>
  </rules>
</rewrite>
  • 优点:能拦截隐藏得较深的注入攻击,但不影响正常URL访问。

IIS禁止执行脚本命令的常见问题解答

Q1:IIS禁止执行脚本命令后,会影响网站正常功能吗?

取决于配置范围,如果只禁止了危险命令的文件扩展名,对正常网站功能影响有限,但若直接移除了ASP或PHP脚本处理程序,相应动态页面会全部失效,建议分步操作:先启用请求过滤禁止扩展名,观察日志和功能测试,再逐步收紧,很多情况下,大部分网站根本不需要在高危命令上做额外妥协,因为正常用户不会请求cmd.exe或powershell.exe。

Q2:除了禁止命令,还有哪些辅助安全措施?

单独禁止命令执行无法覆盖所有攻击路径,行业共识认为,IIS安全应结合以下措施:启用请求过滤并限制HTTP动词(如只允许GET和POST)、自定义错误页面隐藏真实错误信息、开启详细日志记录并定期审计、为应用程序池使用独立标识并限制磁盘写入权限、部署WAF(Web应用防火墙)检查恶意请求负载,据微软官方文档,合理的分层防御能将攻击成功率降低相当一部分。

Q3:如何在IIS 10中配置禁止执行PowerShell命令?

IIS 10运行在Windows Server 2016或2019上,打开IIS管理器,分别在站点级别和受影响的子目录(如/uploads)中配置请求过滤,添加拒绝扩展名.ps1、.psm1、.psd1、.ps1xml,在处理程序映射中移除所有PowerShell相关条目(默认可能不存在,但需确认),更彻底的做法是使用Windows AppLocker或软件限制策略,在系统层面禁止PowerShell.exe对非管理员用户执行。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/577203.html

赞 (0)
app的云服务器一台多少钱,哪家最便宜?
上一篇 2026年8月17日 05:49
iOS地图定位怎么设置和使用才准确?,定位不准怎么办?
下一篇 2026年8月17日 05:50

相关推荐

  • 大模型为何需要特殊token?大模型特殊token有哪些作用

    大模型需要特殊Token,是因为它们充当了人类语言与机器逻辑之间的“语法标点”和“系统指令”,用于明确指令边界、控制输出格式、处理未登录词以及维持上下文连贯性,从而确保模型能精准理解意图并生成符合预期的结果,在自然语言中,我们习惯用空格、标点或语气来区分语义,但在大模型的底层视角里,文字只是一串连续的字符序列……

    2026年6月21日
    1700
  • Python SDK is_file_分段上传简介是什么?, 分段上传失败怎么办?

    在Python SDK分段上传中,is_file()应该在上传动作之前调用,它的任务是确认本地文件路径真实指向一个文件,而不是目录或失效链接,从而避免后续分片上传过程中出现无谓的异常退出,is_file()是Python内置的路径判断方法,本身和对象存储没有直接关系,但放到分段上传这个场景里,它就成了一个非常关……

    2026年8月6日
    200
  • 服务器如何获取客户端端口?后端获取客户端IP和端口的方法

    服务器通过监听特定的IP地址和端口组合,在TCP三次握手建立连接时,从网络数据包的头部信息中直接提取客户端的源端口号,这是网络通信的基础机制,在理解这一过程之前,我们需要先厘清一个常见的认知误区:很多人认为服务器是“主动”去获取客户端端口的,这是一种被动的接收行为,当你在浏览器输入网址并按下回车的那一刻,你的电……

    2026年7月8日
    17900
  • 服务器GPRS通信不稳定怎么办?服务器GPRS通信模块配置教程

    服务器通过GPRS通信实现远程数据传输的核心在于利用运营商蜂窝网络建立低功耗、广覆盖的无线连接,其优势在于无需布线即可在移动或偏远场景下完成数据回传,但需接受带宽有限和延迟较高的技术限制,在物联网(IoT)和远程监控领域,如何让服务器与分散各地的终端设备保持“在线”状态,是一个既基础又关键的问题,GPRS(通用……

    2026年7月9日
    5000
  • ib口连接检测有哪些方法,座席超时原因是什么

    IB口连接检测和座席连接超时检测的核心思路是:先用工具确认物理链路和协议状态,再结合日志与抓包定位超时环节,最后按“网卡-交换机-驱动-应用”的顺序逐层排查,这套方法既适用于IB网络管理员,也适用于呼叫中心里被座席掉线问题折磨的运维人员,ib口怎么检测连接:从链路层到协议层逐一确认IB口(InfiniBand端……

    2026年8月11日
    600
  • 服务器和两个客户端怎么连接?多客户端并发连接配置

    服务器与两个客户端建立连接的核心在于通过TCP三次握手确立稳定通道,并利用非阻塞I/O或异步事件循环机制,确保单线程能高效并发处理多路请求,而非依赖创建多个独立进程,在现代分布式架构中,网络通信是系统的神经中枢,想象一下,服务器就像是一个繁忙的呼叫中心接线员,而两个客户端则是同时打进来的用户,如果接线员每次接电……

    2026年7月3日
    1210
  • 服务器能主动向客户端发送请求吗,Websocket实现原理是什么?

    服务器向客户端请求的本质是利用长连接技术打破传统的“请求-响应”单向模式,通过建立持久化的通信通道,实现服务端能够主动向客户端下发指令、实时数据或状态更新,服务器如何主动向客户端推送数据的工作原理在传统的互联网通信模型中,客户端是通信的发起者,服务器仅在接收到请求后进行响应,这种模式在处理实时性要求极高的业务……

    2026年7月12日
    18000
  • ic规格书网站怎么接入,有哪些好用的网站推荐

    接入ic规格书网站,通常直接访问官网或通过API接口即可,但不同平台在接入方式、数据覆盖和成本上差异明显,需要根据你的具体需求选择, 本文从实际操作出发,梳理免费浏览、批量下载和API集成三种主流接入方案,帮助你快速找到适合自己的路径,ic规格书网站接入方式对比:免费与付费方案免费接入:直接访问与下载限制大多数……

    2026年8月21日
    300
  • ICP备案网站信息填写有哪些要求?,如何填写

    填写ICP备案网站信息时,核心是确保网站名称、域名、服务内容真实准确,且与主体信息完全一致,否则将被退回重新修改,网站名称填写:避开这些常见坑网站名称是备案审核中最容易出问题的环节,业内专家指出,超过80%的退回原因集中在名称不规范,比如使用“中国”“全国”等词汇,或直接写成域名,我的建议是:名称要体现网站实际……

    2026年7月31日
    1100
  • 服务器修改mac地址怎么操作,注意事项有哪些?

    服务器修改MAC地址需根据操作系统选择对应命令或配置界面,临时修改可用ip/ifconfig或设备管理器,重启后失效;永久修改需编辑网卡配置文件或注册表,重启后仍生效,操作前必须确认网络环境允许修改,并记录原始地址以防故障回退,服务器修改mac地址的三种业务场景与行业共识从运维实践来看,修改服务器MAC地址并非……

    2026年7月16日
    1300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注