❿⁄₈ ⟦ OSCP ⬖ 研记 ⟧ 密码攻击 ➱ 破解SSH私钥的密码短语

郑重声明:本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。

🔋点赞| 能量注入 ❤️关注| 信号锁定 🔔收藏| 数据归档 ⭐️评论| 保持连接💬

🌌立即前往👉晖度丨安全视界🚀​​​

▶ 信息收集
▶ 漏洞检测
▶ 初始立足点 ➢ 密码攻击 ➢ 破解SSH私钥的密码短语 🔥🔥🔥
▶ 权限提升
▶ 横向移动
▶ 报告/分析
▶ 教训/修复

目录

1.密码破解实践

1.2 破解SSH私钥的密码短语

1.2.1 SSH密钥认证原理与密码短语的作用

1.2.1.1 基本认证流程

1.2.1.2 私钥泄露的风险

1.2.1.3 密码短语:私钥的最后防线

1.2.2 攻击场景还原

1.2.2.1 信息收集发现敏感文件

1.2.2.2 攻击流程梳理

1.2.3 使用SSH私钥文件登录尝试(失败)

1.2.3.1 修改id_rsa文件权限

1.2.3.2 SSH登录尝试(失败)

1.2.3.3 密码策略分析

1.2.4 使用Hashcat破解私钥文件id_rsa的密码短语(失败)

1.2.4.1 私钥文件id_rsa转换为.hash格式

1.2.4.2 Hashcat模式识别

1.2.4.3 创建密码规则

1.2.4.4 创建密码字典

1.2.4.5 使用Hashcat来执行破解(失败)

1.2.5 改用JtR破解私钥文件id_rsa的密码短语(成功)

1.2.5.1 规则集成至JtR的配置文件

1.2.5.2 执行密码破解

1.2.5.3 破解结果分析

1.2.5.4 破解成功的关键因素

1.2.5.5 核心安全启示

1.2.6 使用破解的私钥密码短语完成远程SSH登录

1.2.7 总结:完整的SSH密钥认证流程

欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论


1.密码破解实践

1.2 破解SSH私钥的密码短语

1.2.1SSH密钥认证原理与密码短语的作用

1.2.1.1 基本认证流程

SSH使用非对称加密进行身份验证,其核心流程基于“公钥锁,私钥开”的机制:

  1. 用户侧:生成一对密钥(id_rsa私钥 +id_rsa.pub公钥),私钥自己严格保管。

  2. 服务侧:将用户的公钥id_rsa.pub)放置于目标服务器的特定文件(如~/.ssh/authorized_keys)中。这相当于为你的账户装一把只让对应私钥打开的“数字锁”。

  3. 登录时:当你连接服务器,服务器会向你发出一个挑战。你用私钥进行签名响应。服务器用预留的公钥验证签名,匹配则允许登录。


1.2.1.2 私钥泄露的风险

一旦攻击者获取了你的私钥文件(id_rsa,他便拥有了你这把“钥匙”,可以尝试冒充你的身份去开启服务器上的那把“锁”。如果没有额外保护,他就能直接登录。为了防止这个情况发生,这个时候就出现了“密码短语”


1.2.1.3 密码短语:私钥的最后防线

密码短语:是在创建密钥对时,为用户私钥额外添加的一层对称加密保护

  • 作用机制:私钥文件本身被一个由密码短语派生出的密钥加密存储。每次使用私钥前,必须先输入正确的密码短语来解密它

  • 安全价值:即使私钥文件不慎泄露,攻击者得到的也只是一个被加密的乱码文件,无法直接使用。密码短语从而成为保护身份的最后一道屏障

  • 攻击门槛:攻击者必须通过暴力破解或字典攻击等方式猜出密码短语,才能解密并最终使用私钥。这极大地增加了攻击难度和成本。

💎 核心总结
SSH密钥认证的安全模型建立在“公钥在服务端,私钥在客户端”的基础上。密码短语并非用于远程服务器验证,而是用于本地加密保护私钥文件本身。它是防止私钥泄露后导致即时权限沦陷的关键安全措施

💡类比理解:这就像你捡到了一把保险柜的钥匙(私钥),但钥匙上还挂着一个密码锁(密码短语),不知道密码仍然打不开柜子。


1.2.2 攻击场景还原

在本文的示例中,攻击者已通过字典攻击破解了目标Web登录表单(用户名:user,密码:121212),从而获得了基于Web的文件管理器访问权限(地址:http://192.168.50.201:8080)。以上过程参考:前述文章“HTTP POST登录表单”的内容。

1.2.2.1 信息收集发现敏感文件

在登录文件管理器后,攻击者在服务主目录中发现了两个重要文件,将这两个文件下载至本地Kali机器的passwordattacks目录中。

  • id_rsaSSH私钥文件

  • note.txt说明文档

查看note.txt文件,内容令人惊喜:

该文件竟以明文形式记录了用户“Dave”的潜在密码列表!这为后续破解SSH私钥的密码短语提供了宝贵的字典来源。同时,还说了:

  • “新的密码政策何时启用:2022年1月”
  • 具体密码政策“需包含:3个数字、一个大写字母、一个特殊字符

1.2.2.2 攻击流程梳理

下图概括了从初始渗透到最终破解SSH私钥密码短语的完整过程:


1.2.3 使用SSH私钥文件登录尝试(失败)

在拿到SSH私钥文件后,尝试使用用户dave的私钥id_rsa文件进行SSH连接。

1.2.3.1 修改id_rsa文件权限

在使用SSH私钥前,必须修改id_rsa的私钥文件的权限:

chmod600 id_rsa# 设置仅所有者可读写

🔐注意:权限过宽的私钥文件会被SSH客户端拒绝使用,这是重要的安全限制


1.2.3.2 SSH登录尝试(失败)

执行命令尝试连接目标服务器(端口:2222):

ssh -i id_rsa -p 2222 dave@192.168.50.201

系统提示输入私钥的密码短语。我们依次尝试了note.txt中记载的所有密码,但全部失败


1.2.3.3 密码策略分析

再次回顾刚刚note.txt中的内容,

文件明确提示:

"新密码策略于2022年1月启用"。

这表明:

  • 文件中列出的密码均为历史旧密码

  • 现在,Dave已采用符合新策略的新密码

🔢 新密码(密码短语)策略:

策略要求:3个数字 + 1个字母 + 1个特殊符号

例如:

  • ❌ 旧密码:password123(不符合策略)

  • ✅ 可能的新密码:123a!456b@(符合策略)


1.2.4使用Hashcat破解私钥文件id_rsa的密码短语(失败)

1.2.4.1 私钥文件id_rsa转换为.hash格式

接下来,按照破解方法论,下一步将私钥转换为哈希格式,以供破解工具使用。

使用JtR套件中的ssh2john转换脚本将私钥文件转换为可破解的哈希格式:

ssh2john id_rsa > ssh.hash

SSH私钥哈希文件 (ssh.hash) 结构解析:

字段/组成部分说明安全意义与影响
id_rsa:源私钥文件名标识。由转换工具自动添加的冗余信息,在正式破解前必须删除,否则可能导致破解工具无法正确识别哈希格式。
$sshng$格式标识符。表示此为SSH-NG (New Generation)格式,是现代OpenSSH使用的私钥加密格式,采用了更新的加密标准(如AES-256-CTR)。
6哈希算法标识。数字6代表使用了SHA-512算法来派生加密密钥。这是一种强哈希算法,相比MD5或SHA-1能显著增加暴力破解的计算复杂度。
16加密轮数。表示在密钥派生过程中进行了16轮迭代哈希计算。轮数越多,从密码短语生成密钥的速度越慢,从而极大地增加了暴力破解所需的时间成本
7059e78a8d3764ea1e883fcdf592feb7盐值。这是一个16字节的随机盐值。其核心作用是确保相同密码短语会生成完全不同的哈希输出,使得预先计算好的“彩虹表”攻击完全失效,攻击者必须为每个目标单独进行破解尝试。
1894长度标记/其他参数。通常指示后续加密数据部分的长度或关联的加密参数,对于理解加密结构是必要的,但不直接影响密码破解的难度
后续长字符串加密的私钥数据主体。

这是使用密码短语派生出的密钥(经过上述盐值、轮数、算法处理)进行AES-256-CTR加密后的实际私钥内容。

破解的最终目标:就是找到能正确解密这段数据的密码短语

关键发现:生成的哈希以$6$开头,表示使用SHA-512算法加密。但需要删除开头的id_rsa:文件名标识,使哈希格式标准化。


1.2.4.2 Hashcat模式识别

通过分析哈希前缀$6$,确定对应的Hashcat模式为22921。这是标准的SSH私钥哈希格式识别步骤。


1.2.4.3 创建密码规则

基于note.txt中的密码线索,创建了针对性破解规则(ssh.rule):

推测依据规则逻辑示例转换
数字模式rickc137中的137在密码结尾添加三位数字137passwordpassword137
大写规则Window首字母大写使用c规则将首字母大写passwordPassword
特殊字符:常见符号!@#,符合人们的习惯。在结尾分别添加这三个符号password137password137!

规则文件创建:我们将创建密码规则。命名密码规则文件ssh.rule,如下:


1.2.4.4 创建密码字典

note.txt提取历史密码,创建基础字典ssh.passwords


1.2.4.5 使用Hashcat来执行破解(失败)

尝试破解命令:

hashcat -m 22921 ssh.hash ssh.passwords -r ssh.rule --force

上图所示,出现错误提示:Token长度异常(Token length exception)!!!

🧐 根本原因分析:

去网络上查下这个错误,发现:

  • 现代SSH私钥通常使用AES-256-CTR加密算法保护密码短语

  • Hashcat模式22921仅支持传统加密方式(如SHA系列)

  • AES-256-CTR算法在Hashcat中缺乏支持,导致无法处理此类哈希

  • 因此,需要换个密码破解工具:John the Ripper (JtR)。我们将使用John the Ripper,利用已创建的规则和字典,继续破解这个AES-256-CTR加密的SSH私钥密码短语。

⚠️技术障碍:加密算法的演进超出了Hashcat某些模式的支持范围,这是密码破解中常见的技术挑战。

为何选择JtR?

  • 算法支持全面:John the Ripper内置对AES-256-CTR算法的支持

  • SSH专用模块:包含专门处理SSH私钥的转换和破解模块

  • 规则兼容:JtR的规则语法与Hashcat类似,已创建的规则可轻松适配


1.2.5改用JtR破解私钥文件id_rsa的密码短语(成功)

1.2.5.1 规则集成至JtR的配置文件

①规则增加配置:将ssh.rule规则内容命名为sshRules

规则文件配置效果:

[List.Rules:sshRules]# 新增此行c$137$! c$137$@c$137$#

关键步骤:JtR要求规则必须在其配置文件中以特定格式([List.Rules:规则名])定义,这与Hashcat直接使用规则文件不同。

②把规则内容追加到配置文件john.conf

为确保John the Ripper使用自定义规则,需要将规则文件添加到其JTR的配置文件中,如下:


1.2.5.2 执行密码破解

使用JtR进行针对性字典的密码破解:

john --wordlist=ssh.passwords --rules=sshRules ssh.hash
参数说明作用
--wordlist=ssh.passwords指定基础密码字典基于note.txt中的历史密码
--rules=sshRules启用自定义规则应用"数字137+首字母大写+特殊字符"规则
ssh.hash目标哈希文件已转换的SSH私钥哈希

1.2.5.3 破解结果分析

成功破解的密码:

破解成功!密码短语:Umbrella137!

密码合规性验证:

要求密码元素验证结果
3个数字137✅ 符合
1个字母U(大写首字母)✅ 符合
1个特殊字符!✅ 符合
总长度12个字符✅ 足够安全

用户行为模式吻合度:

用户历史特征新密码体现说明
偏爱特定数字保留137组合rickc137中的数字模式一致
首字母大写习惯Umbrella首字母大写延续Window的格式习惯
简单特殊字符使用!符号符合键盘最左侧特殊字符的使用习惯
单词+数字结构Umbrella+137+!保持熟悉的密码结构模式

1.2.5.4 破解成功的关键因素

🔍 信息收集的精准性

🛠️ 工具选择的正确性

工具处理能力结果
Hashcat不支持AES-256-CTR加密算法❌ 失败
John the Ripper完整支持现代SSH-NG格式✅ 成功

🎯 规则设计的有效性

  • 数字规则:准确预测用户对137的偏好

  • 大写规则:符合用户历史习惯

  • 特殊字符:选择了最高概率的选项


1.2.5.5 核心安全启示

用户密码行为的可预测性

"用户很少改变他们的密码模式"!

这一事实揭示了最大的安全漏洞往往来自用户自身的行为习惯。即使强制执行复杂的密码策略,用户仍会沿着可预测的路径创建新密码。

密码策略的双重影响

  • 积极面:强制使用更复杂的密码结构

  • 消极面:用户采用可预测的模式化调整来满足要求,反而降低了随机性

最终成果:获得Umbrella137!密码短语后,攻击者现在可以使用该私钥无阻碍地SSH登录到目标系统,实现完整的权限获取。这再次证明了密码安全不仅是技术问题,更是人的行为习惯问题


1.2.6 使用破解的私钥密码短语完成远程SSH登录

现在,让我们使用破解的私钥密码短语,成功通过SSH连接到目标系统。登录为 dave 用户,并能够在远程主机上执行命令。


1.2.7 总结:完整的SSH密钥认证流程


欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论

每一份支持,都是我持续输出的光。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1148839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跟我学C++中级篇—C++17中的元编程逻辑操作

一、逻辑操作 在C中,逻辑运算符算是最常见的一种运算符,如&&,||以及!。这三种逻辑运算符对于处理条件判断和循环控制等有着重要的作用。说的更简单一些,就是处理程序的分支路径。这也符合现实世界中的工作处理…

Rembg图像分割实战:发丝级边缘处理教程

Rembg图像分割实战:发丝级边缘处理教程 1. 引言:智能万能抠图 - Rembg 在图像处理领域,精准去背景一直是设计师、电商运营和AI开发者的核心需求。传统手动抠图耗时耗力,而普通自动分割工具往往在复杂边缘(如发丝、毛…

Gitee:本土化技术生态如何重塑中国开发者的创新范式?

Gitee:本土化技术生态如何重塑中国开发者的创新范式? 当全球科技产业面临供应链重构与数字化转型的双重考验时,中国开发者社区正在孕育着令人瞩目的技术变革。作为这场变革的重要推手,Gitee平台已经悄然成长为连接1300万开发者的技…

基于Qwen2.5-7B实现离线推理与工具调用实战

基于Qwen2.5-7B实现离线推理与工具调用实战 一、引言:为何需要本地化大模型 工具协同? 在当前大语言模型(LLM)广泛应用的背景下,将高性能模型部署到本地环境进行离线推理已成为企业级应用的重要需求。一方面&#x…

ResNet18模型可解释性:低成本GPU可视化方案

ResNet18模型可解释性:低成本GPU可视化方案 引言 在医疗AI领域,向医生解释AI模型的决策过程至关重要。ResNet18作为经典的卷积神经网络,虽然结构相对简单,但其内部工作机制对非技术人员来说仍然是个"黑箱"。想象一下&…

WebUI集成+热力图可视化|轻松实现单目深度感知

WebUI集成热力图可视化|轻松实现单目深度感知 🌐 技术背景:从2D图像到3D空间理解的跨越 在计算机视觉领域,单目深度估计(Monocular Depth Estimation)是一项极具挑战性的任务——仅凭一张普通RGB图像&…

电商图片自动化:Rembg结合Python批量处理

电商图片自动化:Rembg结合Python批量处理 1. 引言:电商视觉升级的自动化需求 在电商平台日益激烈的竞争环境下,商品图的质量直接影响转化率。传统的人工抠图耗时耗力,尤其面对海量SKU时效率低下。而AI驱动的图像去背景技术正成为…

提升AI对话质量:Qwen2.5-7B在真实场景中的应用

提升AI对话质量:Qwen2.5-7B在真实场景中的应用 一、引言:为何选择Qwen2.5-7B提升对话体验? 随着大语言模型(LLM)在客服、教育、内容创作等领域的广泛应用,高质量的对话生成能力已成为衡量模型实用性的核心指…

国内企业数字化转型加速,Gitee CI/CD解决方案成合规高效首选

国内企业数字化转型加速,Gitee CI/CD解决方案成合规高效首选 在数字化转型浪潮席卷各行各业的当下,持续集成与持续交付(CI/CD)工具正成为企业提升开发效率的关键引擎。随着《网络安全法》和《数据安全法》的深入实施,数据合规与本…

ResNet18安全测试:隔离环境放心跑,不影响主机

ResNet18安全测试:隔离环境放心跑,不影响主机 1. 为什么需要隔离测试环境? 作为安全研究员,当你测试ResNet18模型的对抗样本时,可能会遇到这些问题: 担心测试代码影响本地开发环境害怕实验过程中误删重要…

ResNet18+Flask构建Web应用:云端GPU加速开发

ResNet18Flask构建Web应用:云端GPU加速开发 引言 作为一名计算机专业的学生,毕业设计总是让人既期待又头疼。我选择了开发一个智能相册网站作为毕业设计项目,核心功能是通过AI自动识别照片中的物体和场景。最初我在本地电脑上训练ResNet18模…

Rembg API调用教程:Python集成步骤详解

Rembg API调用教程:Python集成步骤详解 1. 智能万能抠图 - Rembg 在图像处理领域,自动去背景是一项高频且关键的需求。无论是电商商品图精修、社交媒体内容创作,还是AI生成图像的后处理,都需要一种高精度、自动化、无需人工标注…

Rembg抠图技术详解:Alpha通道生成的科学原理

Rembg抠图技术详解:Alpha通道生成的科学原理 1. 智能万能抠图 - Rembg 在图像处理与视觉内容创作中,精准抠图是实现高质量合成、电商展示、海报设计等任务的关键前提。传统手动抠图耗时费力,而基于深度学习的自动去背景技术正逐步成为主流。…

Ollama + Qwen2.5-7B:开启你的本地大语言模型之旅

Ollama Qwen2.5-7B:开启你的本地大语言模型之旅 在生成式AI迅猛发展的今天,越来越多的开发者和研究者希望能够在本地环境中运行强大的大语言模型(LLM),以实现更安全、可控且低延迟的应用体验。然而,传统部…

Rembg模型评估:用户满意度调研报告

Rembg模型评估:用户满意度调研报告 1. 智能万能抠图 - Rembg 在图像处理与内容创作日益普及的今天,自动去背景技术已成为设计师、电商运营、短视频创作者等群体的核心需求之一。传统手动抠图耗时耗力,而基于深度学习的智能抠图工具则提供了…

导师推荐10个AI论文软件,专科生毕业论文写作必备!

导师推荐10个AI论文软件,专科生毕业论文写作必备! AI工具助力论文写作,专科生也能轻松应对 在当前的学术环境中,越来越多的专科生开始借助AI工具来辅助毕业论文的撰写。这些工具不仅能够帮助学生高效完成初稿、修改和降重等任务&a…

Rembg模型部署:脱离ModelSecope的稳定方案

Rembg模型部署:脱离ModelSecope的稳定方案 1. 智能万能抠图 - Rembg 在图像处理与内容创作领域,自动去背景是一项高频且关键的需求。无论是电商商品图精修、社交媒体素材制作,还是AI艺术创作中的元素提取,传统手动抠图效率低下&…

Qwen2.5-7B实战:基于LoRA的高效微调与推理优化

Qwen2.5-7B实战:基于LoRA的高效微调与推理优化 引言:为何选择Qwen2.5-7B进行LoRA微调? 随着大语言模型(LLM)在自然语言理解、代码生成和多语言支持等任务中的广泛应用,如何在有限算力条件下实现高效定制化…

Rembg抠图GPU加速:CUDA配置指南

Rembg抠图GPU加速:CUDA配置指南 1. 引言:智能万能抠图 - Rembg 在图像处理与内容创作领域,自动去背景是一项高频且关键的需求。无论是电商商品图精修、社交媒体素材制作,还是AI生成内容(AIGC)的预处理环节…

农作物病虫害目标检测数据集(百度网盘地址)

各位CVer同仁,大家好!我是CV探长。本期为大家带来的数据集是 《农作物病虫害目标检测数据集》。在信息爆炸的数字化时代,数据早已突破资源属性的边界,跃升为驱动农业智能检测领域创新发展的核心引擎。而对于计算机视觉领域而言&am…