windows渗透测试
一台Windows机器摆在面前,渗试能不能拿到SYSTEM权限,透测往往取决于你愿不愿意花十分钟去看一眼补丁列表。渗试去年我给一家小公司做内网评估,透测域控是渗试Server 2019,打了2023年8月之前的透测补丁。用PetitPotam配合DFSCoerce,渗试两小时内拿到域管哈希。透测不是渗试工具多神,是透测管理员觉得"内网没必要更新"。 Windows渗透测试跟Linux是渗试两套逻辑。Linux你拿到shell基本就结束了,透测Windows拿到shell才刚开始——你要考虑令牌、渗试权限、透测域信任、渗试组策略。我见过太多人卡在普通用户权限上,然后开始瞎试各种提权脚本,结果触发EDR告警。其实`whoami /priv`和`systeminfo`两条命令就能筛掉80%的无用尝试。 很多人一上来就甩Nmap全端口扫描。没必要。Windows环境里,先看当前用户能访问什么共享、什么服务在监听本地端口、有没有保存的凭据。`net share`、`net user /domain`、`cmdkey /list`这三条命令比任何扫描器都直接。 有个细节:Windows Defender会记录你的命令历史。如果目标开了脚本块日志,你敲的每一条PowerShell都会被存进事件日志。所以能用cmd就别用PowerShell,能用原生命令就别下载工具。我习惯先`powershell -version 2`降级,很多AMSI绕过在v2下直接失效。 IIS、MSSQL、大部分服务账户都带SeImpersonatePrivilege。看到这个权限,PrintSpoofer或者GodPotato基本能直接到SYSTEM。但别高兴太早——Windows Server 2019之后的版本对命名管道做了限制,老版RottenPotato已经不好使了。 另一个高频路径是未引用的服务路径。`wmic service get name,displayname,pathname,startmode | findstr /i "auto" | findstr /i /v "c:\windows"`,这条命令能列出所有可能被劫持的服务。我遇到过一家企业,他们的备份服务路径带空格且没加引号,直接在`C:\Program Files\`下放个同名exe,重启服务就是SYSTEM。 PsExec动静太大,现在稍微有点安全意识的公司都监控了445端口的服务创建。WMI和WinRM更隐蔽。`Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList "cmd /c ..."`,这条命令不会在目标磁盘留下exe,日志里也只是一条进程创建记录。 WinRM更舒服,5985端口走HTTP,很多防火墙默认放行内网。`Enter-PSSession -ComputerName target`,如果当前用户有权限,直接就是交互式shell。我去年在一个金融客户那里,从DMZ的Web服务器一路WinRM到核心数据库,全程没触发任何告警——因为他们只监控了PsExec。 Kerberoasting能拿到服务账户哈希,但现代域环境里AES加密的哈希破解成本很高。RC4的才值得试。`GetUserSPNs.py -request -dc-ip`,如果返回的哈希是`$krb5tgs$23$`开头,说明是RC4,扔给hashcat用rockyou跑,成功率不低。 但别乱打。我见过有人对着域控狂发Kerberos请求,结果被蜜罐账户钓到,直接封IP。先看`net user /domain`里有没有明显的服务账户,比如`svc_sql`、`svc_backup`这种命名,针对性请求比全量扫描安全得多。 Windows日志分三块:安全、系统、应用。安全日志里记录登录、提权、进程创建。`wevtutil cl security`能清,但清日志本身会触发事件ID 1102。更隐蔽的做法是只删除特定事件,用`Get-WinEvent`筛选后逐条删除。不过说实话,真到清理痕迹这一步,说明你已经暴露了。最好的清理是不留痕迹——用内存加载、用合法工具、用域内已有账户。 渗透测试的终点不是拿到域管。是写报告的时候能说清楚:从哪个入口进来、经过哪几个节点、用了什么技术、触发了哪些告警、怎么修复。我见过太多人只截图一个`nt authority\system`就交差,结果客户问"怎么进来的"答不上来。那跟没做一样。信息收集:别急着上扫描器
提权:SeImpersonate是常客
横向:别忽略WMI和WinRM
域内:Kerberos是宝藏也是陷阱
痕迹清理:不是必须但得知道
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-