☰
利用Metasploit进行拒绝服务攻击
2026/10/22 19:58:07 网站建设 项目流程

【实验原理】

RDP协议是一个多通道的协议,让用户连上提供微软终端机服务的电脑。windows在处理某些对象时存在错误,可通过特制的RDP报文访问未初始化或已经删除的对象,导致任意代码执行,然后控制系统。攻击者向受影响的系统发送一系列特制RDP数据包,则这个漏洞可能造成拒绝服务攻击或允许远程执行代码。默认情况下,任何Windows操作系统都未启用远程桌面协议(RDP,默认端口3389)。没有启用RDP的系统不受威胁。此实验对目标系统造成了DOS攻击。

1. 基础概念

  • RDP(远程桌面协议):Windows 远程桌面服务,默认端口3389,用来远程连接、操控 Windows 主机。
  • MS12-020:微软 2012 年发布的高危 RDP 漏洞,存在于 Windows XP / Win7 / Server 2003/2008 等系统。 成因:系统解析特制 RDP 数据包时,内存对象处理逻辑缺陷,可触发两类攻击:
    1. DoS(拒绝服务攻击):目标主机蓝屏、卡死、远程桌面彻底瘫痪,无法正常使用;
    2. 远程代码执行(高危提权 / 远控):部分场景可直接拿下主机权限。
  • 重要前提:目标主机必须开启 3389 远程桌面服务,未开启 RDP 则该漏洞无法利用。

【软件工具】

操作系统:Kali2020、Windows7其他:metasploit 2、

前置配置(必须做,否则攻击失败)

  1. Win7 靶机开启远程桌面 右键「计算机」→ 属性 → 远程设置 → 勾选允许运行任意版本远程桌面的计算机连接。
  2. 关闭 Windows 防火墙,或放行 3389 端口。
  3. 记录靶机 IP 地址(记为靶机IP,后续全程使用)。
  4. 攻击机 Kali 与 Win7 处于同一网段,能互相 ping 通。

【实验拓扑】

【实验目标】

使用ms12-020攻击脚本攻击目标靶机。

【实验步骤】

进入kali操作系统,点击菜单栏中的终端图标打开终端。输入nmap-A192.168.1.4可以看到目标服务器上开启了3389服务。

1.nmap -A 192.168.1.4这一步

  • 目的:确认目标是否开启了 RDP(3389 端口)
  • 原理:Nmap 扫描目标端口,当看到3389/tcp open ms-wbt-server时,说明远程桌面服务是开启的,才有可能受 MS12-020 影响。
  • 意义:这是攻击的前提条件,没开 3389,漏洞根本触发不了。

输入msfconsole启动msf

输入search ms12-020查找该漏洞攻击脚本。

2.search ms12-020搜索脚本

  • 目的:在 Metasploit 的模块库中,找到和 MS12-020 漏洞相关的所有工具,包括检测和攻击模块。

一共搜索出两个关于ms12-020的脚本,一个是检测脚本,一个是利用脚本。使用ms12-020检测脚本,输入useauxiliary/scanner/rdp/ms12_020_check,输入showoptions查看设置。

你搜到的两个模块,分工完全不一样:

序号模块路径类型作用实验里什么时候用
0auxiliary/dos/windows/rdp/ms12_020_maxchannelids攻击模块(DoS 利用)发送特制数据包,直接让目标蓝屏 / 宕机(拒绝服务)验证漏洞是否能被利用、做 DoS 攻击时用
1auxiliary/scanner/rdp/ms12_020_check检测模块(漏洞扫描)探测目标主机是否存在 MS12-020 漏洞,不会对目标造成破坏攻击前,先确认目标是否 “可被攻击” 时用

手册里让你先使用的是检测脚本ms12_020_check,就是为了先确认目标是否有这个漏洞,再决定要不要用攻击模块,避免白忙活。

3.use auxiliary/scanner/rdp/ms12_020_check使用检测脚本

  • 目的:加载漏洞扫描模块,准备探测目标是否存在 MS12-020 漏洞。

4.show options查看设置

  • 目的:查看这个模块需要配置哪些参数,最核心的就是RHOSTS(目标 IP)。
  • 典型输出里,你会看到必填的RHOSTS选项,值为空,需要你手动设置。

已经成功加载了ms12_020_check漏洞检测模块,show options命令用来查看这个模块需要哪些配置

表格里的每一列是什么意思?
列名含义
Name参数的名字
Current Setting当前已经设置的值
Required是否必须配置(yes/no)
Description参数的作用说明

三个关键参数解读
①RHOSTS
  • Required: yes(必须配置)
  • 含义:目标主机的 IP 地址 / 网段,也就是你要检测哪台机器。
  • 当前状态:Current Setting是空的,说明还没设置目标,这是你接下来必须做的事。
②RPORT
  • Required: yes
  • 当前值:3389
  • 含义:目标主机的 RDP 服务端口,默认就是 3389,和你之前 Nmap 扫描的结果对应,一般不用改。
③THREADS
  • Required: yes
  • 当前值:1
  • 含义:扫描时的并发线程数,1 就足够,不用调整。

这张图表明了什么?
  • ✅模块加载成功:没有报错,说明 Metasploit 里的这个检测脚本是正常可用的;
  • ⚠️还没配置目标:RHOSTS是空的,现在直接run会报错;
  • ✅其他参数默认正确:RPORT和THREADS都已经是合理的默认值,不用修改。

5.输入setrhosts192.168.1.4设置目标,输入run运行,可以看到存在这个漏洞。

漏洞检测结果

这一行[+]绿色提示,是实验里最关键的确认信息:

  • 含义:目标主机192.168.1.4的 3389 端口(RDP 服务)确实存在 MS12-020 漏洞。
  • 说明:目标 Win7 没有打补丁,RDP 服务版本匹配,完全可以被后面的攻击脚本利用。

后面两行[*]只是执行状态:

  • Scanned 1 of 1 hosts:扫描完成,1 台主机检测完毕
  • Auxiliary module execution completed:检测脚本正常退出

6.输入use auxiliary/dos/windows/rdp/ms12_020_maxchannelids使用利用脚本,然后输入showoptions查看设置

切换到 DoS 攻击模块

这一步是切换到真正的攻击脚本:

  • 模块类型:dos/windows/rdp/ms12_020_maxchannelids,专门用来对 RDP 服务进行拒绝服务攻击;
  • show options结果里,只有两个必填参数:
    • RHOSTS:目标 IP(需要你手动设置成192.168.1.4)
    • RPORT:目标端口,默认 3389,不用改

输入setrhosts192.168.1.4设置目标,输入run运行,可以看到攻击成功

切换到另一台机器,可以看到目标机重启了,机器蓝屏会自动重启的,进入Windows错误恢复界面。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询