windows操作系统渗透测试

拿到一台Windows机器,作系第一件事不是统渗透测急着翻文件,而是作系搞清楚这台机器在整个网络里处于什么位置。域环境还是统渗透测工作组?有没有EDR?补丁打到什么程度?这些决定了后面能走多快、会不会踩雷。作系我见过太多人一上来就掏mimikatz,统渗透测结果被Defender按在地上摩擦,作系连个像样的统渗透测日志都没留下。

信息收集这块,作系systeminfo和whoami /all是统渗透测基本操作,但真正好用的作系往往是那些不起眼的命令。net user /domain能看到域里所有账号,统渗透测net group "Domain Admins" /domain直接告诉你谁是作系高价值目标。还有nltest /dclist:,统渗透测一条命令就能定位域控。作系这些命令不需要管理员权限,普通用户就能跑,隐蔽性也好——系统日志里它们看起来就像日常运维操作。

权限提升是绕不过去的坎。Windows的提权面比Linux宽得多,从令牌模拟到服务配置错误,从UAC绕过到内核漏洞,路子多但也更容易触发告警。我个人的偏好是先看whoami /priv,如果当前用户有SeImpersonatePrivilege,那基本等于半只脚已经踏进SYSTEM了。Potato系列工具(RottenPotato、JuicyPotato、PrintSpoofer)就是吃这碗饭的,原理不复杂——利用Windows的令牌机制让高权限进程替你干活。不过Windows Server 2019之后这些工具的成功率明显下降,微软在令牌处理上加了限制。

说到横向移动,Pass-the-Hash和Pass-the-Ticket是最经典的手法。拿到NTLM hash之后,crackmapexec一条命令就能批量测试哪些机器能用同一组凭据登录。但这里有个坑:Windows Defender Credential Guard一旦启用,LSASS里的明文密码和hash就取不出来了。我遇到过几次这种情况,最后只能转向Kerberoasting——申请服务票据,离线爆破服务账号的密码。这种方法不需要管理员权限,只要有一个普通域用户就能发起,而且流量看起来完全正常。

持久化方面,注册表Run键和计划任务是最老套但也最稳的方式。不过现在EDR对这两个位置的监控很严,稍微好一点的做法是WMI事件订阅或者COM劫持。WMI订阅的好处是它活在系统管理空间里,普通用户看不到,杀软也懒得管。但缺点是配置麻烦,而且如果目标机器重启后WMI服务出问题,整个持久化就断了。

最后说一个容易被忽略的点:Windows的日志。Security日志里的4624(登录成功)、4625(登录失败)、4688(进程创建)是蓝队最常看的。渗透测试时如果不想留下太多痕迹,wevtutil cl Security可以清日志,但这本身就是个高危操作,EDR一定会告警。更聪明的做法是控制操作频率,把敏感动作混在正常流量里。比如用schtasks创建计划任务时,名字起得像系统更新任务,路径放在C:\Windows\Temp下面而不是用户目录。

整个流程走下来,Windows渗透测试的核心其实不是工具用得多花哨,而是对系统机制的理解够不够深。知道令牌怎么流转、Kerberos怎么认证、WMI怎么工作,比背一百个工具的参数有用得多。工具会过期,漏洞会修补,但底层逻辑不会轻易变。