windows渗透

 人参与 | 时间:2026-10-17 07:08:03

MS17-010那个补丁,我见过至少三台服务器没打。其中一台是某公司的财务系统,Windows Server 2008 R2,开着445端口,密码还是admin123。用Metasploit的eternalblue模块,三分钟拿到system权限。这台机器在公网上躺了两年多,日志里全是各地的扫描记录,没人管。

Windows渗透这件事,入口往往比想象中简单。很多人以为需要什么高级漏洞,实际上弱口令、未打补丁的服务、配置错误的共享目录,这些才是常态。我在内网里最常干的事不是挖0day,而是翻IT管理员留下的各种“方便配置”——比如域管账号密码写在登录脚本里,比如某台测试机开了3389且不限制来源IP,比如用cpassword加密的组策略首选项文件。

信息收集决定效率

拿到一台Windows机器的shell之后,别急着提权。先看系统版本、补丁列表、安装的软件、运行的进程、网络连接。systeminfo和wmic qfe list能告诉你缺哪些补丁。tasklist /svc看服务对应的进程。netstat -ano看监听端口和已建立的连接。

有个细节很多人忽略:查一下当前用户有没有保存凭据。cmdkey /list,如果运气好,能看到域管理员在这台机器上登录过并勾选了“记住我的凭据”。直接用runas /savecred就能以那个身份执行命令。我靠这一招进过好几个域环境,比什么提权漏洞都快。

提权路径的选择

Windows提权无非几条路:内核漏洞、服务配置错误、计划任务、注册表权限、令牌窃取。内核漏洞像MS16-032、MS15-051这些,用现成的exp打就行,但要注意目标系统是否真的缺对应补丁,别瞎打把系统打蓝屏了。

服务配置错误更隐蔽。用accesschk检查服务的可执行文件路径权限,如果普通用户对服务二进制有写权限,替换掉再重启服务,直接就是system。还有unquoted service path,路径里有空格且没加引号,放个同名exe在中间目录就能劫持。

令牌窃取在Metasploit里就是incognito模块,列出令牌,模拟域管令牌,一步到位。前提是你已经拿到一个能调试其他进程的权限,通常需要本地管理员。

横向移动的日常

拿到一台机器不是终点。内网里真正的价值在域控。从一台普通成员服务器到域控,中间要过好几道坎。Pass-the-Hash、Pass-the-Ticket、Overpass-the-Hash,这些技术用mimikatz或者impacket套件都能实现。

PsExec和WMI是横向移动的老牌工具。psexec \\target -u domain\user -p password cmd,如果目标开了admin$共享且凭据有效,直接弹shell。WMI更隐蔽,wmic /node:target process call create,不落地文件,杀软有时候反应不过来。

但最舒服的还是找域管登录过的机器。域管登过哪台,哪台就有他的凭据缓存。用BloodHound跑一遍域内关系,找到最短路径,往往比盲扫快得多。

痕迹清理不是可选项

Windows日志默认记录很多东西。Security日志里4624是登录成功,4688是进程创建。如果你不想被IR团队追着跑,干完活记得清日志。wevtutil cl system,wevtutil cl security,简单粗暴。但清日志本身也会产生日志,1102事件。高级一点的做法是只删掉自己产生的记录,或者干脆通过远程注册表关闭审计。

文件时间戳也要处理。PowerShell的Get-ItemProperty和Set-ItemProperty能改CreationTime、LastWriteTime、LastAccessTime。别留下一个明显是凌晨三点创建的net.exe副本。

Windows渗透没有银弹。每个环境都不一样,补丁级别、杀软配置、网络隔离策略,这些变量决定了你用什么手法。多动手,少空想。一个没打补丁的445端口,比一百页渗透测试报告都有说服力。

顶: 92133踩: 91272