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

相关推荐

  • 服务器怎么连接mysql数据库?连接数据库的详细步骤

    服务器连接MySQL数据库的核心在于配置网络权限、开放防火墙端口并验证连接字符串,通常通过SSH隧道或直连TCP端口3306实现,在2026年的云原生架构中,服务器与数据库的交互早已不是简单的物理连线,而是一场关于网络策略、身份认证与安全协议的精密握手,许多开发者在部署应用时,往往卡在“连接被拒绝”或“超时”的……

    2026年7月6日
    7600
  • 链代码结构中的invoke方法是什么,怎么用?

    在Hyperledger Fabric链代码中,Invoke方法负责处理账本状态更新逻辑,而清晰的结构设计是链代码可维护性和安全性的基础,当你开始编写链代码时,首先需要理解的就是Invoke方法的工作机制以及整个链代码的文件结构,很多开发者刚开始接触Fabric链代码时,容易混淆Init和Invoke的职责,或……

    2026年8月8日
    100
  • 大模型语音识别ASR准吗?大模型ASR识别准确率

    大模型驱动的语音识别技术已突破传统瓶颈,通过端到端架构实现高准确率、低延迟及多场景适配,是当前解决复杂语音交互的最佳方案,过去我们提到的ASR(自动语音识别),往往让人联想到那种“字正腔圆”但遇到方言或背景噪音就彻底“罢工”的老式系统,随着大语言模型(LLM)与语音技术的深度融合,这种刻板印象正在被彻底打破,现……

    2026年6月20日
    2200
  • IT行业发展趋势有哪些?,物联网高层班好就业吗?

    物联网高层班是IT行业管理者应对2026年趋势的核心跳板,它帮助中高层快速掌握物联网战略布局与落地方法,随着物联网从概念走向全行业渗透,IT行业的高层管理者面临技术决策与业务转型的双重压力,物联网高层班不是简单的技术培训,而是针对管理者的思维升级,它教你如何将物联网技术与商业模式结合,如何管理项目,如何洞察趋势……

    2026年8月20日
    400
  • 服务器下修改MAC地址的详细步骤是什么,怎么改?

    是的,服务器可以修改MAC地址,但需要根据操作系统和网络环境选择合适的方法,并且要谨慎操作以避免网络故障,服务器MAC地址怎么改?两种主流系统操作指南修改服务器MAC地址的需求,通常出现在网络环境迁移、硬件更换或IP冲突解决时,不同操作系统有各自的实现路径,下面分别介绍Linux和Windows Server的……

    2026年7月29日
    1300
  • 大模型的去噪自编码器DAE是什么?DAE模型原理及应用场景详解

    去噪自编码器(DAE)是一种通过向输入数据添加噪声并训练模型重建原始干净数据,从而学习数据深层特征表示的神经网络架构,其核心在于利用“噪声”作为正则化手段,防止模型死记硬背,提升泛化能力,在2026年的大模型语境下,DAE不再仅仅是图像处理的工具,而是理解语义、清洗数据甚至生成内容的底层逻辑之一,它像是一个在嘈……

    2026年6月21日
    1900
  • 大模型的涌现能力到底是什么?大模型涌现能力有哪些具体表现

    大模型的涌现能力是指当模型参数量、训练数据量和计算资源突破特定临界点后,模型突然展现出训练数据中未显式包含的复杂推理、逻辑规划及创造性解决问题等全新高阶能力,这是一种从量变到质变的非线性飞跃,很多人误以为大模型只是更聪明的搜索引擎,或者是一个读得更多、背得更牢的超级图书馆管理员,这种理解过于线性,涌现能力(Em……

    2026年6月22日
    3110
  • 火狐操作系统这款系统现在还有使用价值吗, 怎么样

    Firefox OS 是 Mozilla 用 Web 技术挑战移动操作系统垄断的一次大胆尝试,虽然已于 2016 年停止开发,但它的设计思路和失败教训至今仍在影响 Web 标准和轻量级系统的发展方向,Firefox OS 的核心定位与生命周期Firefox OS 主打“用 HTML5 开发一切”,试图让手机变得……

    2026年7月15日
    1100
  • 服务器传给客户端数据出错怎么办?后端接口返回数据格式错误

    服务器向客户端传输数据的核心机制依赖于HTTP/HTTPS协议,通过建立TCP连接、解析请求头、处理业务逻辑并返回结构化响应(如JSON或HTML)来实现,这一过程决定了Web应用的加载速度与用户体验,数据传输的基础握手与连接建立在浏览器地址栏输入网址并回车的那一瞬间,服务器与客户端之间并非直接开始“说话”,而……

    2026年7月4日
    7300
  • 服务器怎么修改和绑定MAC地址?,怎么设置?

    服务器修改和绑定MAC地址,是强化网络访问控制、防止IP冲突和ARP欺骗的核心手段,更是数据中心运维中被验证过无数次的成熟基本功,服务器MAC地址修改和绑定的核心场景:安全与管理应用场景一:内网IP管理冲突与绑定有什么用数据中心里,服务器 IP 配置错误导致的地址冲突是最常见的网络故障之一,机器数量一旦超过百台……

    AI资讯 2026年7月17日
    1100

发表回复

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