当前位置:首页 > 焦点

windows10 pro10586渗透复现

Windows 10 Pro 10586,渗透也就是复现Threshold 2更新后的版本,大概在2015年底推送。渗透这版本有个挺有意思的复现地方:微软在那会儿还没把SMBv1彻底关掉,而且补丁管理策略比后来宽松得多。渗透我在一台闲置的复现旧笔记本上拿它做了次渗透测试复现,过程不算复杂,渗透但有几个点值得记下来。复现

先交代环境。渗透靶机装的复现是原版10586,没打后续累积更新,渗透防火墙开着,复现但网络发现和文件共享是渗透默认启用的。攻击机用Kali,复现同一局域网段。渗透我拿到的是一个普通用户权限的shell,通过钓鱼邮件里的宏——这招在10586上依然好使,因为Office宏默认还是允许运行的,只要用户点了启用内容。

提权部分我选了MS16-032,也就是那个著名的Secondary Logon Handle漏洞。10586没集成这个补丁,所以直接能用。编译好的exe传上去,执行后弹回一个system权限的cmd。这里有个细节:10586的UAC虽然默认开启,但Secondary Logon服务是自动启动的,而且对命名管道句柄的检查存在缺陷。我试了两次,第一次因为杀软实时防护拦截了payload,关掉Defender的实时监控就过了。说实话,那个年代的Defender对这类本地提权利用几乎没反应。

拿到system之后,我翻了下注册表里的LSA Secrets。10586的凭据保护机制比Win7强,但没启用Credential Guard——那功能要TPM 2.0和UEFI,旧机器上跑不起来。用mimikatz抓lsass内存,直接读出了明文密码。有意思的是,域缓存凭据也在里面,因为这台机器之前加过域。微软在10586上默认还是把WDigest认证开着,这就让明文密码一直留在内存里。后来版本才默认关掉。

横向移动我试了两种方式。一是PsExec,用抓到的域管凭据连内网另一台文件服务器,成功。二是WMI,但10586的WMI防火墙规则默认只允许本地子网,跨网段就被挡了。这里能看出微软在10586上已经开始收紧网络层面的暴露面,只是执行得不够彻底。

持久化我选了注册表Run键加计划任务。10586的计划任务有个坑:如果你用schtasks创建的任务指向一个不存在的路径,它不会报错,直接静默失败。我调试了半小时才发现是路径里多了个空格。另外,这版本对启动文件夹的监控很弱,扔个lnk进去就能开机自启,杀软也不管。

清理阶段我删了事件日志,但10586的日志服务有个bug——用wevtutil cl清系统日志时,如果同时有别的进程在写日志,清空操作会卡住。我重启了两次才搞定。最后留了个后门账户,把它的RID改成500,伪装成管理员,然后禁用了原管理员。这招在10586上能用,因为SAM数据库的完整性校验没那么严。

整个复现下来,10586的安全短板集中在补丁滞后和默认配置上。微软后来在1607版本加了Credential Guard强制启用选项,也默认关了SMBv1。但10586作为过渡版本,很多企业当时还在用,因为兼容性好。我个人的判断是:如果现在还有机器跑这个版本,别指望防火墙和Defender能挡什么,赶紧升或者隔离。渗透成本太低了,一个宏加一个公开exp就能拿域管。

分享到: