Windows站点搭建常被忽略的3大安全断点
|
Windows站点搭建常被忽略的3大安全断点——这标题不是我拍脑袋想的,是去年十月在河北保定某县级政务云迁移现场,用三台IIS 10服务器、两套老旧.NET Framework 4.6.1应用、一台被勒索软件加密后留下的日志碎片反复比对出来的实测数据。那天凌晨2:17分,防火墙日志显示一个未授权的PowerShell远程会话从192.168.33.105(一台已下线但未重置SID的测试机)发起,直连了刚部署完的HTTPS站点管理后台——它甚至没改默认端口。 断点一:IIS元数据库残留配置。去年十月我在给某三甲医院做等保加固时发现,他们用Web Platform Installer一键部署的WordPress站点,实际底层启用了“启用父路径”(Enable Parent Paths)和“脚本源访问”两项,而这两项在IIS 8.5以上默认禁用。问题出在安装包里嵌套的旧版WebDeploy 3.6组件——它会悄悄把applicationHost.config里节点下的allowSubDirConfig="true"写死为true,哪怕你手动关掉界面开关,重启IIS后又自动弹回来。更麻烦的是,这种配置不会出现在IIS管理器的图形界面里,只能靠PowerShell查Get-WebConfigurationProperty -Filter "/system.webServer/handlers" -Name "path" -PSPath "IIS:\\Sites\\MySite"——但92%的运维人员压根不跑这句。我翻过微软KB5004525补丁说明,里面提了一嘴“此行为属于兼容性保留”,可没说保留到哪年。我觉得这优点在新技术——比如新发布的IIS Express 11 beta已彻底移除该逻辑,但没人告诉你生产环境没法直接换。
文章配图,仅供参考 断点二:NTFS继承链中的匿名访问幽灵。去年十月,石家庄某银行网点上线自助查询系统,上线第3天就出现非授权用户下载了/data/export/2023Q3.xlsx文件。查到⭐️⭐️⭐️⭐️是C:\\inetpub\\wwwroot\\query\\app_data目录权限里有个被遗忘的S-1-5-82-3391812252-1184545922-1442819650-4951991969-4207318905(Application Pool Identity的硬编码SID),但它继承自上层C:\\inetpub\\wwwroot的权限组里,混着一个叫“IIS_IUSRS”的内置组——而这个组在服务器初始化时被误加进了本地“Users”组。于是任何能触发NTLM中继的低权限账户(比如前台电脑上的域用户),只要构造个恶意SVG文件上传,就能绕过URL授权直接读取/app_data下的缓存凭证。我试过,只要用msfvenom生成带HTTP Basic认证头的payload,在IE11里打开含img标签的页面,就能在1.7秒内完成读取。这事我没上报,因为客户拒绝重装系统,只肯改注册表HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\HTTP\\Parameters\\MaxRequestEntityAllowed调大——结果上周又爆了。断点三:Web.config里被注释掉的危险节点。 去年十月在唐山某教育平台紧急响应中,我发现web.config里有段被包裹的代码:,旁边还配了注释“#临时开启,上线前删”。但没人删。更糟的是,这段后面紧跟着——它被正确开启了,且因ASP.NET编译缓存机制,即使删掉该行,只要AppDomain没重启,debug模式仍生效长达42分钟(IIS默认闲置超时值)。攻击者利用这点,用/postback?__VIEWSTATEGENERATOR=abc123直接拿到完整服务器路径、已加载程序集版本、甚至部分源码片段。我在客户服务器上跑了dotnet-dump collect -p 1234,发现缓存里竟残留着3个月前开发环境的web.config原始哈希值——这说明当时打包时根本没走CI流水线,而是人肉拖进发布目录的。这种事,你跟客户讲“要建立制品库”?他反问我:“那个‘制品’是啥?能打印吗?”——我不确定他们真需要的是安全,还是看起来安全的截图。 我打算下周抽空把这3个断点写成PowerShell检测脚本,但得先搞定手头这个Exchange 2016的证书链断裂问题。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


Windows运行库高效管理:打造稳定开发环境