首页 > 其他分享 >tryhackme-Cyber Security 101-Cryptography-John the Ripper: The Basics(开膛手约翰:基础知识)

tryhackme-Cyber Security 101-Cryptography-John the Ripper: The Basics(开膛手约翰:基础知识)

时间:2025-01-03 19:29:38浏览次数:3  
标签:txt Cryptography john Cyber 哈希 使用 John 破解

了解如何使用 John the Ripper,这是一款功能强大且适应性强的哈希破解工具。

任务1:介绍

John the Ripper 是一个众所周知的、深受喜爱的、多功能的哈希破解工具。它结合了快速的破解速度和非凡的兼容哈希类型。

学习先决条件

为了获得最大的收益,我们建议您在前三个关于密码学的介绍性房间之后尝试这个房间。

除了基本的命令行功能外,没有其他学习先决条件。

学习目标

完成此房间后,您将了解如何使用 John 进行以下操作:

  • 破解 Windows 身份验证哈希
  • 破解哈希/etc/shadow
  • 破解受密码保护的 Zip 文件
  • 破解受密码保护的 RAR 文件
  • 破解 SSH 密钥

从任务 4 开始,您需要在连接的 VM、AttackBox 或您自己的系统上应用。为方便起见,您可以通过按下面的 Download Task Files(下载任务文件)按钮,从此任务中将所需的任务文件下载为单个 Zip 文件

任务2:基本术语

这个房间需要各种密码学术语的基本知识。为方便起见,在进入实际的哈希破解之前,我们会回顾最相关的术语和概念。

什么是哈希值?

哈希是一种获取任意长度的数据并以另一种固定长度的形式表示它的方法。此过程会屏蔽数据的原始值。哈希值是通过哈希算法运行原始数据来获得的。存在许多流行的哈希算法,例如 MD4、MD5、SHA1 和 NTLM。让我们尝试用一个例子来说明这一点:

如果我们采用 “polo”,一个包含四个字符的字符串,并通过 MD5 哈希算法运行它,我们最终会得到一个标准的 32 个字符的 MD5 哈希值。

b53759f3ce692de7aff1b5779d3964da

同样,如果我们采用 “polomints”,一个 9 个字符的字符串,并通过相同的 MD5 哈希算法运行它,我们最终会得到另一个标准的 32 个字符的 MD5 哈希值。

584b6e4f4586e136bc280f27f9c64f3b

是什么让哈希安全?

哈希函数设计为单向函数。换句话说,计算给定 input 的哈希值很容易;但是,在给定哈希值的情况下,找到原始输入是一个困难的问题。简单来说,在计算机科学中,一个难题很快就会变得在计算上不可行。这个计算问题的根源是数学 P 与 NP。

在计算机科学中,P 和 NP 是两类问题,可以帮助我们理解算法的效率:

  • P(多项式时间):P 类涵盖其解可以在多项式时间中找到的问题。考虑按升序对列表进行排序。列表越长,排序所需的时间就越长;但是,时间的增加不是指数级的。
  • NP (Non-deterministic Polynomial Time):类 NP 中的问题是可以快速检查给定解的问题,即使找到解本身可能很困难。事实上,我们不知道是否有一种快速的算法来首先找到解决方案。

虽然这是一个引人入胜的数学概念,被证明是计算和密码学的基础,但它完全超出了这个房间的范围。但抽象地说,对值进行哈希处理的算法将是 “P”,因此可以合理计算。然而,“un-hashing” 算法将是 “NP” 并且难以解决,这意味着它无法使用标准计算机在合理的时间内计算出来。

John 的用武之地

尽管该算法不可逆,但这并不意味着破解哈希值是不可能的。例如,如果您拥有密码的哈希版本,并且您知道哈希算法,则可以使用该哈希算法对大量单词(称为字典)进行哈希处理。然后,您可以将这些哈希值与您尝试破解的哈希值进行比较,以查看它们是否匹配。如果他们这样做了,您就知道哪个词对应于该哈希值 - 您已经破解了它!

这个过程称为字典攻击,John the Ripper 或通常简称为 John,是一种对各种哈希类型进行快速暴力攻击的工具。

了解更多

有关加密和解密的一些更深入的材料,我们推荐 Cryptography Basics 和 Public Key Cryptography Basics 房间;此外,对于哈希,我们推荐 Hashing Basics room。

这个房间将专注于最受欢迎的开膛手约翰的扩展版本,(Jumbo John)珍宝约翰

任务3:设置系统

我这里使用内置的实验机

在这个房间的整个任务中,我们将使用以下设备:

  • 开膛手约翰的“Jumbo John”版本
  • RockYou 密码列表

如果您使用附加的虚拟机或 AttackBox,则无需在系统上安装 John the Ripper。因此,请随意跳过安装部分。如果您更喜欢使用系统进行安装,请继续阅读以了解如何继续安装。我们应该注意,如果您使用的 John the Ripper 版本不是 Jumbo John,您可能没有一些必需的工具,例如 zip2johnrar2john

安装

John the Ripper 在许多操作系统上都受支持,而不仅仅是 Linux 发行版。在讨论之前,我们先了解了 John 的多个版本、标准的 “核心” 发行版和多个社区版本,它们扩展了原始 John 发行版的功能集。这些发行版中最受欢迎的是 “Jumbo John”,我们稍后会用到它的具体功能。

AttackBox 和 Kali

Jumbo John 已安装在连接的虚拟机和 AttackBox 上,因此如果您打算使用其中任何一个,则无需采取任何进一步措施。此外,像 Kali 这样的冒犯性 Linux 发行版附带了 Jumbo John。

您可以通过在终端中键入来仔细检查这一点。您应该会看到 John 的使用指南,第一行写着“John the Ripper 1.9.0-jumbo-1”或类似的东西,但版本号不同。john

其他 Linux 发行版

许多 Linux 发行版都提供了 John the Ripper,可从其官方存储库进行安装。例如,在 Fedora Linux 上,您可以使用 安装 John the Ripper,而在 Ubuntu 上,您可以使用 .不幸的是,在撰写本文时,这些版本提供了核心功能,并且错过了 Jumbo John 提供的一些工具。sudo dnf install johnsudo apt install john

因此,您需要考虑从源开始构建,以访问通过 Jumbo John 提供的所有工具。官方安装指南提供了详细的安装和构建配置说明。

在 Windows 上安装

要在 Windows 上安装 Jumbo John the Ripper,您需要在此处下载并安装 64 位系统的压缩二进制文件,或在此处下载并安装 32 位系统的压缩二进制文件。

词汇表

现在我们已经准备好了,我们必须考虑另一个不可或缺的组件:单词列表。john

正如我们之前提到的,要对哈希使用字典攻击,你需要一个要哈希和比较的单词列表;不出所料,这被称为 wordlist。有许多不同的单词表,可以在 SecLists 存储库中找到一个很好的集合。您可以在几个地方寻找用于攻击所选系统的单词列表;我们将快速浏览您可以找到它们的地方。

在 AttackBox 和 Kali Linux 发行版上,该目录包含一系列出色的单词列表。/usr/share/wordlists

RockYou

对于这个房间里的所有任务,我们将使用臭名昭著的 rockyou.txt wordlist,这是一个非常大的常用密码 wordlist,从 2009 年一个名为 rockyou.com 的网站的数据泄露中获得。如果您未使用上述任何发行版,则可以从子部分下/Passwords/Leaked-Databases.tar.gztar的 SecLists 存储库中获取rockyou.txt wordlist。您可能需要使用 xvzf从格式rockyou.txt.tar.gz中提取它。

现在我们已经设置好了哈希破解器和单词列表,让我们继续进行一些哈希破解!

首先,让我们通过按下面的 Start Machine 按钮来启动虚拟机

本机将在分屏视图中启动。如果 VM 不可见,请使用页面顶部的蓝色 Show Split View 按钮。

您还可以使用以下凭证通过 SSH 在 IP 地址访问虚拟机:10.10.246.66

  • 用户名:user
  • 密码:Tryhackme123!

任务4:破解基本哈希

有多种方法可以使用 John the Ripper 来破解简单的哈希。在继续我们自己破解一些之前,我们将先介绍一些。

John 基本语法

John the Ripper 命令的基本语法如下。我们将介绍使用时使用的特定选项和修饰符。

john [options] [file path]

  • john:调用 John the Ripper 程序
  • [options]:指定要使用的选项
  • [file path]:包含您尝试破解的哈希的文件;如果它位于同一目录中,则无需命名路径,只需命名文件即可。

自动破解

John 具有内置功能,可以检测给定的哈希类型,并选择合适的规则和格式来为您破解它;这并不总是最好的主意,因为它可能不可靠,但如果您无法确定您正在使用的哈希类型并想尝试破解它,这可能是一个不错的选择!为此,我们使用以下语法:

john --wordlist=[path to wordlist] [path to file]

  • --wordlist=:指定使用 wordlist 模式,从您在提供的路径中提供的文件中读取
  • [path to wordlist]:您正在使用的单词列表的路径,如上一个任务中所述

示例用法:

john --wordlist=/usr/share/wordlists/rockyou.txt hash_to_crack.txt

识别哈希

有时,John 不会很好地处理自动识别和加载哈希值,但这没关系!我们可以使用其他工具来识别哈希值,然后将 John 设置为特定格式。有多种方法可以做到这一点,例如使用像此站点这样的在线哈希标识符。我喜欢使用一个名为 hash-identifierhash-identifierhash-identifier 的工具,这是一个非常易于使用的 Python 工具,它会告诉你你输入的哈希类型可能是什么,如果第一个失败,它会给你更多选择。

要使用 hash-identifier,您可以使用 或从其 GitLab 页面下载 Python 文件。然后,启动它并输入您尝试识别的哈希值。它将为您提供最可能的格式列表。这两个步骤显示在下面的终端中。wgetcurlhash-id.pypython3 hash-id.py

user@TryHackMe$ wget https://gitlab.com/kalilinux/packages/hash-identifier/-/raw/kali/master/hash-id.py $ python3 hash-id.py

特定于格式的破解

确定要处理的哈希值后,您可以告诉 John 在使用以下语法破解提供的哈希值时使用它:

john --format=[format] --wordlist=[path to wordlist] [path to file]

  • --format=:这是告诉 John 您正在为其提供特定格式的哈希值并使用以下格式破解它的标志
  • [format]:哈希值的格式

示例用法:

john --format=raw-md5 --wordlist=/usr/share/wordlists/rockyou.txt hash_to_crack.txt

关于格式的说明:

当你告诉 John 使用格式时,如果你正在处理一个标准的哈希类型,例如上面例子中的 md5,你必须在它前面加上前缀,告诉 John 你只是在处理一个标准的哈希类型,尽管这并不总是适用的。要检查是否需要添加前缀,您可以使用 列出所有 John 的格式,然后使用类似 .raw-john --list=formatsjohn --list=formats | grep -iF "md5"

实际

现在您已经了解了破解基本哈希的语法、修饰符和方法,请亲自尝试一下!这些文件位于连接的虚拟机上。~/John-the-Ripper-The-Basics/Task04/

这里我用的hash-identifier工具

任务5:破解 Windows 身份验证哈希

现在我们已经了解了 John the Ripper 的基本语法和用法,让我们继续破解一些更复杂的东西,如果你正在进行实际的渗透测试或红队交战,你甚至可能想尝试一下。身份验证哈希是操作系统存储的密码的哈希版本;有时可以使用我们的蛮力方法破解它们。要获得这些哈希值,您通常必须已经是特权用户,因此我们将在尝试时解释我们计划破解的一些哈希值。

NTHash / NTLM

NThash 是现代 Windows 操作系统计算机用于存储用户和服务密码的哈希格式。它通常也称为 NTLM,它引用了以前版本的 Windows 格式,用于对密码进行哈希处理,称为 LM,因此称为 NT/LM。

一点历史:Windows 产品的 NT 名称最初是指 New Technology。从 Windows NT 开始,它用于表示不是从 MS-DOS 操作系统构建的产品。最终,“NT” 行成为 Microsoft 发布的标准操作系统类型,该名称被删除,但它仍然存在于某些 Microsoft 技术的名称中。

在 Windows 中,SAM (Security Account Manager) 用于存储用户帐户信息,包括用户名和哈希密码。您可以通过在 Windows 计算机上转储 SAM 数据库、使用 Mimikatz(猕猴桃) 等工具或使用 Active Directory 数据库来获取 NTHash/NTLM 哈希:NTDS.dit您可能不必破解哈希来继续权限提升,因为您通常可以进行“传递哈希”攻击,但有时,如果存在弱密码策略,哈希破解是一个可行的选择。

实际

现在你已经知道了它背后的理论,看看你是否可以使用我们在上一个任务中练习的技术以及这是什么类型的哈希来破解文件!该文件位于~/John-the-Ripper-The-Basics/Task05/ntlm.txt 中。

任务6:破解 /etc/shadow 哈希

从 /etc/shadow 破解哈希

该文件是 Linux 计算机上存储密码哈希的文件。它还存储其他信息,例如上次密码更改日期和密码过期信息。它包含系统的每个用户或用户帐户的每行一个条目。此文件通常只能由 root 用户访问,因此您必须具有足够的权限才能访问哈希值。但是,如果您这样做,您将有机会破解一些哈希值。/etc/shadow

取消遮影

John 可以非常挑剔地处理它需要 data 格式才能使用它;因此,要破解密码,您必须将其与文件相结合,以便 John 理解它所提供的数据。为此,我们使用 John 工具套件中内置的名为 unshadow的基本语法如下:

unshadow [path to passwd] [path to shadow]

  • unshadow:调用 unshadow 工具
  • [path to passwd]:包含您从目标计算机获取的文件副本的文件/etc/passwd
  • [path to shadow]:包含您从目标计算机获取的文件副本的文件/etc/shadow

示例用法:

unshadow local_passwd local_shadow > unshadowed.txt

文件说明

使用unshadow 时,您可以使用整个/etc/passwd and /etc/shadow文件(假设您有它们可用),也可以使用每个文件中的相关行,例如:

文件 1 - local_passwd

包含 root 用户的行:/etc/passwd

root:x:0:0::/root:/bin/bash

文件 2 - local_shadow

包含 root 用户的行:/etc/shadow

root:$6$2nwjN454g.dv4HN/$m9Z/r2xVfweYVkrr.v5Ft8Ws3/YYksfNwq96UL1FX0OJjY1L6l.DS3KEVsZ9rOVLB/ldTeEL/OIhJZ4GMFMGA0:18576::::::

裂化

然后,我们可以将 unshadow的输出(在我们的示例用例中称为 )直接馈送到 John。我们不需要在这里指定模式,因为我们已经专门为 John 进行了输入;但是,在某些情况下,您需要指定格式,就像我们之前使用的那样:--format=sha512crypt

john --wordlist=/usr/share/wordlists/rockyou.txt --format=sha512crypt unshadowed.txt

实际

现在,看看您是否可以按照该过程破解文件中提供的 root 用户的密码哈希etchashes.txt。祝你好运!这些文件位于~/John-the-Ripper-The-Basics/Task06/ 中。

任务7:Single Crack 模式

到目前为止,我们一直在使用 John 的 wordlist 模式来暴力破解简单和不那么简单的哈希。但 John 还有另一种模式,称为 Single Crack 模式。在此模式下,John 仅使用用户名中提供的信息,通过稍微更改用户名中包含的字母和数字来尝试启发式地计算出可能的密码。

单词修饰

解释 Single Crack 模式和单词修饰的最好方法是通过一个例子:

考虑用户名 “Markus”。

一些可能的密码可能是:

  • Markus1、Markus2、Markus3 (等)
  • MArkus、MARkus、MARKus (等)
  • Markus!, Markus$, Markus* (等)

这种技术称为单词修饰。John 正在根据它收到的信息构建它的字典,并使用一组称为 “mangling rules” 的规则,这些规则定义了它如何改变它开始的单词,以根据你试图破解的目标的相关因素生成一个单词列表。这利用了基于用户名或他们正在登录的服务的信息的密码质量有多差。

GECOS 公司

John 的单词修饰实现还与 UNIX 操作系统的 GECOS 字段以及其他类似 UNIX 的操作系统(如 Linux)兼容。GECOS 代表通用电气综合操作系统。在上一个任务中,我们查看了/etc/shadow/etc/passwd 的条目。仔细观察,您会注意到字段之间用冒号分隔。用户帐户记录中的第五个字段是 GECOS 字段。它存储有关用户的一般信息,例如用户的全名、办公室号码和电话号码等。John 可以获取存储在这些记录中的信息,例如全名和主目录名称,以添加到使用单破解模式破解哈希时生成/etc/shadow的单词列表中。:

使用 Single Crack Mode

要使用 single crack 模式,我们使用与目前使用的语法大致相同的语法;例如,如果我们想破解名为 “Mike” 的用户的密码,使用单一模式,我们将使用:

john --single --format=[format] [path to file]

  • --single:此标志让 John 知道您要使用单一哈希破解模式
  • --format=[format]:与往常一样,确定正确的格式至关重要。

示例用法:

john --single --format=raw-sha256 hashes.txt

关于 Single Crack 模式下的文件格式的说明:

如果你在单破解模式下破解哈希,你需要更改你提供给 John 的文件格式,以了解从哪些数据创建单词列表。您可以通过在哈希前面加上哈希所属的用户名来执行此操作,因此根据上面的示例,我们将更改文件hashes.txt

 1efee03cdcb96d90ad48ccc7b8666033

 mike:1efee03cdcb96d90ad48ccc7b8666033

实际

现在您已经熟悉了 John 的单破解模式的语法,访问哈希并破解它,假设它所属的用户称为 “Joker”。该文件位于 中。~/John-the-Ripper-The-Basics/Task07/

首先就是判断是什么类型的hash,显然是MD5(32位)

接着编译为joker:hashs

然后john --single --format=raw-MD5 hash07.txt

任务8:自定义规则

什么是自定义规则?

当我们探索 John 在 Single Crack Mode 中可以做什么时,您可能对一些好的修饰模式或您的密码经常使用哪些模式可以使用特定的修饰模式进行复制有一些想法。好消息是,您可以定义规则,John 将使用这些规则动态创建密码。当您了解有关任何目标的密码结构的更多信息时,定义此类规则的能力非常有用。

常见自定义规则

许多组织需要一定程度的密码复杂性来尝试对抗字典攻击。换句话说,在创建新帐户或更改密码时,如果您尝试使用类似 的密码,它很可能不起作用。原因是强制密码的复杂性。因此,您可能会收到一条提示,告诉您密码必须包含以下各项中的至少一个字符:polopassword

  • 小写字母
  • 大写字母
  • 象征

密码复杂性很好!但是,我们可以利用大多数用户在这些交易品种的位置是可预测的这一事实。对于上述标准,许多用户将使用如下内容:

Polopassword1!

考虑先用大写字母和数字,最后加上符号的密码。这种熟悉的密码模式,附加和预置了修饰符(如大写字母或符号),是人们在创建密码时使用和重复使用的一种令人难忘的模式。这种模式可以让我们利用密码复杂性的可预测性。

现在,这确实满足了密码复杂性要求;但是,作为攻击者,我们可以利用我们知道这些添加元素的可能位置这一事实,从我们的单词列表中创建动态密码。

如何创建自定义规则

自定义规则在john.conf文件中定义。此文件可以在/opt/john/john.conf TryHackMe Attackbox 中找到。如果您使用包管理器安装了 John,或者使用/etc/john/john.confmake .

让我们回顾一下这些自定义规则的语法,使用上面的示例作为我们的目标模式。请注意,您可以在这些规则中定义大量精细控制。我建议查看此处的 wiki,以全面了解您可以使用的修饰符和规则实现的更多示例。

第一行:

[List.Rules:THMRules]用于定义规则的名称;这是您将用于将自定义规则称为 John 参数的内容。

然后,我们使用正则表达式样式模式匹配来定义单词的修改位置;同样,我们在这里只介绍主要和最常见的修饰符:

  • Az:获取单词并附加您定义的字符
  • A0:获取单词并在其前面加上您定义的字符
  • c:按位置将字符大写

这些可以组合使用来定义要修改的单词中的位置和内容。

最后,我们必须定义应该附加、前置或以其他方式包含哪些字符。我们通过在应该使用它们的方括号中添加字符集来实现这一点。这些遵循 double quotes 内的修饰符模式。以下是一些常见示例:[ ]" "

  • [0-9]:将包含数字 0-9
  • [0]:将仅包含数字 0
  • [A-z]:将同时包括大写和小写
  • [A-Z]:将仅包含大写字母
  • [a-z]:将仅包含小写字母

请注意:

  • [a]:将仅包含a
  • [!£$%@]:将包含符号 、 和!£$%@

综上所述,要从与示例密码匹配的规则中生成一个单词列表(假设该单词在我们的单词列表中),我们将创建一个如下所示的规则条目:Polopassword1!polopassword

[List.Rules:PoloPassword]

cAz"[0-9] [!£$%@]"

利用以下内容:

  • c:将首字母大写
  • Az:附加到单词的末尾
  • [0-9]:0-9 范围内的数字
  • [!£$%@]:密码后跟以下符号之一

使用自定义规则

然后,我们可以使用该标志将此自定义规则称为 John 参数。--rule=PoloPassword

作为完整命令:john --wordlist=[path to wordlist] --rule=PoloPassword [path to file]

请注意,如果您正在编写规则,我发现讨论这些模式会很有帮助;如上所示,这同样适用于编写 RegEx 模式。

Jumbo John 已经有一个广泛的自定义规则列表,其中包含几乎适用于所有情况的修饰符。如果你遇到困难,如果你的语法不能正常工作,试着查看那些规则 [在第 678 行附近]。

现在,是时候试一试了!

任务9:破解受密码保护的 zip 文件

是的!你没看错。我们可以使用 John 破解受密码保护的 Zip 文件的密码。同样,我们将使用 John 工具套件的单独部分将 Zip 文件转换为 John 可以理解的格式,但我们将使用您已经熟悉的语法来实现所有意图和目的。

Zip2John

与我们之前使用的unshadow工具类似,我们将使用该工具zip2john将 Zip 文件转换为 John 可以理解并希望破解的哈希格式。主要用法是这样的:

zip2john [options] [zip file] > [output file]

  • [options]:允许您将特定的校验和选项传递给 ;这通常不是必需的zip2john
  • [zip file]:要获取其哈希值的 Zip 文件的路径
  • >:这会将此命令的输出重定向到另一个文件
  • [output file]:这是将存储输出的文件

示例用法

zip2john zipfile.zip > zip_hash.txt

裂化

然后,我们可以获取示例用例中输出的文件zip2johnzip_hash.txt并像我们对unshadow 一样,将其直接馈送到 John 中,因为我们专门为它进行了输入。

john --wordlist=/usr/share/wordlists/rockyou.txt zip_hash.txt

实际

现在,尝试破解一个“安全”的 Zip 文件吧!该文件位于 中。~/John-the-Ripper-The-Basics/Task09/

zip2john secure.zip > secure.txt

john --wordlist=/usr/share/wordlists/rockyou.txt secure.txt

unzip secure.zip

任务10:破解受密码保护的 RAR 档案

破解受密码保护的 RAR 档案

我们可以使用与上一个任务中使用的类似的过程来获取 RAR 档案的密码。如果您不熟悉,RAR 存档是由 WinRAR 存档管理器创建的压缩文件。与 Zip 文件一样,它们会压缩文件夹和文件。

稀有2约翰

与该工具几乎相同,我们将使用该工具将 RAR 文件转换为 John 可以理解的哈希格式。基本语法如下:zip2johnrar2john

rar2john [rar file] > [output file]

  • rar2john:调用工具rar2john
  • [rar file]:要获取其哈希值的 RAR 文件的路径
  • >:这会将此命令的输出重定向到另一个文件
  • [output file]:这是将存储命令输出的文件

示例用法

/opt/john/rar2john rarfile.rar > rar_hash.txt

裂化

同样,我们可以获取示例用例中输出的文件,并将其直接馈送到 John 中,就像我们对 .rar2johnrar_hash.txtzip2john

john --wordlist=/usr/share/wordlists/rockyou.txt rar_hash.txt

实际

现在,尝试破解一个“安全”的 RAR 文件吧!该文件位于 中。~/John-the-Ripper-The-Basics/Task10/

任务11:与 John 一起破解 SSH 密钥

破解 SSH 密钥密码

好的,好的,我听到了。没有更多的文件存档了!好!让我们探索一下 CTF 质询中半频繁出现的 John 的另一种用法 — 使用 John 破解文件id_rsa的 SSH 私钥密码。除非另有配置,否则请使用密码验证 SSH 登录。但是,您可以配置基于密钥的身份验证,这允许您使用私钥id_rsa作为身份验证密钥,通过 SSH 登录到远程计算机。但是,这样做通常需要密码才能访问私钥;在这里,我们将使用 John 来破解此密码,以允许使用该密钥通过 SSH 进行身份验证。

SSH2john

谁能猜到,另一个转换工具?嗯,ssh2john这就是与 John 合作的全部意义所在id_rsa。顾名思义,将用于登录 SSH 会话的私有密钥转换为 John 可以使用的哈希格式。撇开玩笑不谈,这是约翰多才多艺的另一个美丽例子。语法是关于你所期望的。请注意,如果您尚未安装ssh2john,可以使用ssh2john.py位于/opt/john/ssh2john.py .如果您在 AttackBox 上执行此操作,请将命令替换为 ssh2johnpython3 /opt/john/ssh2john.py Kali、python /usr/share/john/ssh2john.py。

ssh2john [id_rsa private key file] > [output file]

  • ssh2john:调用工具ssh2john
  • [id_rsa private key file]:要获取其哈希值的 id_rsa 文件的路径
  • >:这是输出控制器。我们使用它来将此命令的输出重定向到另一个文件。
  • [output file]:这是将存储

示例用法

/opt/john/ssh2john.py id_rsa > id_rsa_hash.txt

裂化

最后一次,我们将从 ssh2john 输出的文件提供,在我们的示例用例中,该文件称为 ,正如我们对 所做的那样,我们可以将其与 John 无缝地使用:id_rsa_hash.txtrar2john

john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa_hash.txt

实际

现在,我希望您破解与此任务相关的文件的哈希值!该文件位于 中。id_rsa~/John-the-Ripper-The-Basics/Task11/

/opt/john/ssh2john.py id_rsa > id_rsa_hash.txt

john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa_hash.txt

标签:txt,Cryptography,john,Cyber,哈希,使用,John,破解
From: https://blog.csdn.net/2301_79096184/article/details/144789656

相关文章

  • pyca/cryptography库的学习(5)——python
    非对称加密算法非对称密码学是密码学的一个分支,其中一个密钥可以分为两个部分:公钥和私钥。公钥可以给任何人,无论是否可信,而私钥必须保密(就像对称加密中的密钥一样)。非对称加密有两个主要用途:认证和保密性。使用非对称加密,可以用私钥对消息进行签名,然后任何拥有公钥的人都......
  • 信息安全软件解决方案 — INTEWORK-EAS-CyberSecurity
    概述    近年来,由于汽车电子化和信息化的快速发展,其面临的网络安全攻击的手段和风险在不断增加。为有效防御网络入侵和非法数据篡改,保障用户人身和数据隐私安全,汽车信息安全领域的防御技术和相关标准化组织与法律法规也在同步加强。    经纬恒润提供的信息安全软......
  • tryhackme-Cyber Security 101-Search Skills(搜索技能)
    由于之前的的preSecurity学习,所以直接开始第一个搜索学习。任务1:Introduction(介绍)在Google上快速搜索“learncybersecurity”返回了大约6亿次点击,而搜索“learnhacking”返回了这个数字的两倍多!当你穿过这个房间时,这个数字可能会进一步增加。我们被信息所包围。面......
  • 题解:P11319 [NOISG2020 Qualification] Cryptography
    康托展开模版给大家一个式子,这个式子就是康托展开的模版。\(rank=1+\sum_{i=1}^{n}a_n\times(n-i)!\)然后我们对这个排列\(P\)进行离散化,最后直接来个康托展开的模版就行了。代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usi......
  • COM6016 Cyber Threat Hunting
    COM6016:CyberThreat Huntingand Digital ForensicsForensicsCaseStudyAssessment,October 2024Submission Deadline: 15:00on Monday, 16th December2024Thisassignment isworth60%ofthe module mark.Thisassignment is madeup of  fourd......
  • Cipher001__斯坦福密码学__What Is Cryptography
    1、Cryptographycore密码学核心Secretkeyestablishment建立密钥Securecommunication安全通信Providebothconfidentialityandintegrity提供保密性、完整性保密性:窃听者无法得到明文完整性:窃听者无法更改消息2、More更多Digitalsignatures数字签名An......
  • V1 Cyberpunk Edgerunners
    \(“Whether\I've\let\you\down...my\love...”\)这是一个全新的时代,却也是一个悲剧的时代。It'sanewera,butatragicera.赛博朋克,1983年,一个名叫威廉吉布森的少年,在打字机前敲出霓虹灯与混沌的新世界。Cyberpunk,anewculturearisenfromayoungmannamed......
  • CryptographyDeprecationWarning: Python 2 is no longer supported by the Python co
    警告CryptographyDeprecationWarning:Python2isnolongersupportedbythePythoncoreteam.Supportforitisnowdeprecatedincryptography,andwillberemovedinthenextrelease.低版本pipinstallcryptography==2.6可能不适......
  • 【Unity 手枪模型和材质插件】Cyberpunk Handguns (Cyber, Guns) 高质量手枪模型及其
    CyberpunkHandguns(Cyber,Guns)是一款专为Unity开发的插件,提供一系列具有未来科技感的手枪模型和材质,适用于赛博朋克风格的游戏或场景。这个插件为开发者提供了高质量、细节丰富的武器资源,能够帮助游戏快速构建充满未来感的枪械系统。主要特点:高质量的赛博朋克风格手......
  • C++编程:通过简单实现理解CyberRT的DataVisitor和DataDispatcher
    文章目录0.引言1.定义DataVisitor接口2.实现DataDispatcher3.创建具体的DataVisitor4.类关系图5.测试示例6.编译和运行0.引言本文简单实现类似CyberRT的DataVisitor和DataDispatcher,使得数据能够被分发给多个订阅者(访客)。1.定义DataVisitor接......