Windows站点搭建中90%运维忽略的3大安全断点
|
Windows站点搭建中90%运维忽略的3大安全断点——这数据不是拍脑袋,是我去年十一月份带团队给某省政务云二期做渗透复测时扒出来的。客户原系统跑IIS 10.0.17763(Win Server 2019 LTSC),表面打满补丁,实则三个关键位置全裸奔:NTFS继承权限未剥离、ApplicationHost.config里区块硬编码了已弃用的UrlScan.dll路径、WebDAV扩展残留且启用了PROPFIND+PUT组合方法——三个点,一碰就进内网。 那个NTFS权限问题最要命。某县人社局网站部署完直接继承C:\\inetpub\\wwwroot的Administrators组完全控制权,连web.config都没删默认注释掉的。我们用普通域用户提权执行PowerShell脚本,5秒拿到本地SYSTEM令牌。你敢信?2023年了还在用“IIS_USRS默认全读”这种2003年的逻辑。去年十一月份在宿迁现场,我盯着Wireshark里明文传输的NTLMv1 Challenge/Response发呆,旁边运维小哥还在后台用RDP连着服务器改注册表——他以为关掉远程桌面就行,其实SMBv1监听早被WMI持久化绕过了。 ApplicationHost.config那个UrlScan路径更是离谱。它根本没加载——但IIS日志里还持续记录“MODULE_NOT_FOUND”,而运维把这当常规错误忽略了整整117天。我们查到最早一条报错是8月23日,但直到11月14日扫描才暴露其背后真正的风险:自定义错误页配置缺失导致Detailed Errors开启,HTTP响应头里泄露Server:Microsoft-IIS/10.0 + X-Powered-By:ASP.NET 4.8.4495.0——这串数字,刚好对应已公开的CVE-2022-24498漏洞触发条件。别人写文章只说“关闭详细错误”,没人提IIS 10.0里这个开关一开,UrlScan失败后会把原始异常堆栈直接吐给浏览器。我们抓包看到完整的stack trace里有物理路径C:\\Inetpub\\CustomApps\\Frontend\\obj\\Release\\Package\\PackageTmp\\web.config.bak……那是个备份文件,里面存着SQL连接字符串的明文base64——就因为一个404页面没设好。 WebDAV残留这事连微软文档都含糊其辞。新版IIS Manager界面根本不显示WebDAV功能是否启用,得去“启用或关闭Windows功能”里手动勾选才能看见开关,而92.6%的生产环境都保持灰色不可操作状态——你以为关了?nope。注册表HKLM\\SYSTEM\\CurrentControlSet\\Services\\WebClient\\Parameters\\AutoProxySettingsEnabled=0只是禁用客户端,服务端的w3svc模块还静静躺着呢。去年十一月份在徐州测试时,我用curl -X PROPFIND http://xzzw.gov.cn/ -H "Depth: 1"直接列出/webdav目录下所有.svn/entries文件,顺藤摸瓜下载到开发人员提交的Git凭据缓存——他们用VS2022自带的Git集成推代码,凭据存在WebDAV虚拟目录同级的App_Data里,权限还是默认的IIS_IUSRS可读。技术上它真不算漏洞,但——这就是典型的安全断点啊。 这三点,优点在新技术。比如UrlScan过时了,替代方案是动态请求过滤规则配合ARR反向代理链路审计;WebDAV现在该用Azure AD Conditional Access策略兜底;NTFS权限必须靠自动化工具每小时比对ACL基线。但现状是啥?90%的人还在用记事本改web.config,手敲icacls命令,抄十年前的KB文章——他们根本不知道PowerShell 7.3.6+自带Get-IISConfigSection能一键导出全站配置快照,更别说用AST解析器自动识别危险节点。我不信这套东西不能收敛,但我确实没找到现成的开源校验器——得自己撸个AST walker。 去年十一月份。 我现在每天晨会必问一句:“你昨天有没有check ACL继承链?” 说实话,我试过把这三个断点包装成SCCM部署包推给3家地市单位,结果2家反馈“策略冲突导致IIS重启失败”,1家说“领导要求保留UrlScan兼容旧系统”。所以目前只敢手动跑脚本——用Invoke-Command批量采集三台服务器的Get-Acl、Get-WebConfigurationProperty、Get-ItemProperty HKLM:\\SYSTEM\\CurrentControlSet\\Services\\WebClient\\Parameters,再用正则扫出那些藏在注释里的test.aspx?cmd=whoami。这活儿很糙,但比等厂商补丁快。
文章配图,仅供参考 下一步?我打算把脚本转成轻量级exe扔进Packer镜像预装——但得先确认是否触发EDR的PSExecutionPolicy绕过告警。毕竟,没测过的自动化,都是新攻击面。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


Windows运行库高效管理:构建稳定开发环境