【THM】开膛手约翰

发布时间 2023-12-06 12:10:06作者: trymonoly

约翰是谁?

开膛手约翰是目前最知名、最受欢迎和最通用的哈希破解工具之一。它结合了快速的破解速度和一系列非凡的兼容哈希类型。这个房间将假设没有以前的知识,因此在进入实际的哈希破解之前,我们必须首先介绍一些基本术语和概念。

单词列表

单词列表

正如我们在第一个任务中解释的那样,为了对攻击哈希进行字典攻击,您需要一个可以进行哈希和比较的单词列表,不出所料,这被称为单词列表。那里有许多不同的单词列表,可以在 SecLists 存储库中找到一个很好的集合。您可以在您选择的攻击系统上查找几个单词列表,我们将快速浏览您可以找到它们的地方。

 

鹦鹉、Kali 和 AttackBox

在 Parrot、Kali 和 TryHackMe 的 AttackBox 上,您可以在目录中找到一系列令人惊叹的单词列表。/usr/share/wordlists

 

摇滚优

对于这个房间的所有任务,我们将使用臭名昭著的 rockyou.txt 单词列表——这是一个非常大的通用密码单词列表,从 2009 年一个名为 rockyou.com 的网站的数据泄露中获得。如果您没有使用上述任何发行版,则可以从该小节下的 SecLists 存储库中获取 rockyou.txt 单词列表。您可能需要使用 从 .tar.gz 格式中提取它。

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

破解基本哈希

有多种方法可以使用开膛手约翰来破解简单的哈希值,我们将介绍一些方法,然后继续自己破解一些哈希值。

可以加我发邮箱我获取练习a2791906083@163.com

John 基本语法

开膛手约翰命令的基本语法如下。我们将介绍使用它们时使用的特定选项和修饰符。

john [options] [path to file]

john- 调用开膛手约翰程序

[path to file]- 包含您正在尝试的哈希值的文件 要破解,如果它在同一个目录中,则无需命名路径, 只是文件。

自动破解

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

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

--wordlist=- 指定使用 wordlist 模式,从您在以下路径中提供的文件中读取...

[path to wordlist]- 您正在使用的单词列表的路径,如上一个任务中所述。

用法示例:

约翰 --wordlist=/usr/share/wordlists/rockyou.txt hash_to_crack.txt

识别哈希值

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

要使用 hash-identifier,您只需使用 gitlab 拉取 python 文件:。

wget https://gitlab.com/kalilinux/packages/hash-identifier/-/raw/kali/master/hash-id.py

然后只需启动它,然后输入您尝试识别的哈希值 - 它会为您提供可能的格式!

python3 hash-id.py

特定格式破解

一旦你确定了你正在处理的哈希,你可以告诉约翰在使用以下语法破解提供的哈希时使用它:

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 的所有格式,然后手动检查,或者使用 grep 来查找您的哈希类型。

john --list=formats | grep -iF "md5"

实际

现在您知道了破解基本哈希的语法、修饰符和方法,请自己尝试一下!下载附加的 .txt 文件

破解 Windows 身份验证哈希

破解 Windows 哈希

现在我们了解了开膛手约翰的基本语法和用法,让我们继续破解一些更困难的东西,如果你在进行真正的渗透测试或红队参与,你甚至可能想尝试一下。身份验证哈希是操作系统存储的密码的哈希版本,有时可以使用我们正在使用的暴力破解方法破解它们。要获得这些哈希值,您通常必须已经是特权用户 - 因此,我们将在尝试时解释我们计划破解的一些哈希值。

NTHash / NTLM

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

稍加回顾一下历史,Windows 产品的 NT 名称最初意味着“新技术”,并且从 Windows NT 开始用于表示不是从 MS-DOS 操作系统构建的产品。最终,“NT”系列成为Microsoft发布的标准操作系统类型,并且该名称被删除,但它仍然存在于一些Microsoft技术的名称中。

可以通过将 SAM 数据库转储到 Windows 计算机上、使用 Mimikatz 等工具或从 Active Directory 数据库 NTDS.dit 获取 NTHash/NTLM 哈希。您可能不必破解哈希值即可继续权限提升 - 因为您通常可以进行“传递哈希值”攻击,但有时如果密码策略较弱,哈希破解是一个可行的选择。

实际

现在您已经了解了它背后的理论,看看您是否可以使用我们在上一个任务中练习的技术,以及了解这是什么类型的哈希来破解 ntlm.txt 文件!

破解ntlm需要将john的format设置为nt模式。

 破解 /etc/shadow 哈希

从 /etc/shadow 破解哈希值

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

 

Unshadowing(去除shadow)

出于这个原因,John 可以非常讲究它需要数据的格式才能使用它 - 为了破解 /etc/shadow 密码,您必须将其与 /etc/passwd 文件相结合,以便 John 理解它所提供的数据。为此,我们使用了 John 工具套件中内置的一个工具,称为 unshadow。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 和/etc/shadow 文件——如果它们可用的话,也可以使用每个文件中的相关行,例如:

FILE 1 - local_passwd
包含 root 用户的/etc/passwd 行:
root:x:0:0::/root:/bin/bash

FILE 2 - local_shadow
包含 root 用户的/etc/shadow 行:
root:$6$2nwjN454g.dv4HN/$m9Z/r2xVfweYVkrr.v5Ft8Ws3/YYksfNwq96UL1FX0OJjY1L6l.DS3KEVsZ9rOVLB/ldTeEL/OIhJZ4GMFMGA0:18576::::::

在完成unshadow处理之后,我们将 unshadow 的输出直接提供给 John,在我们的示例中 这个输出结果被称为“ unshadowed. txt”。

我们不需要在这里指定哈希格式,因为我们已经专门为 John 做了输入处理(使用unshadow处理),但是在某些情况下,你仍然需要指定哈希格式:

--format=sha512crypt

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

 

 

 

single破解模式

理论

single模式简介

john还有另一种模式,叫做single破解模式。在这种模式下,john 只使用用户名中提供的信息,通过稍微更改用户名中包含的字母和数字(字词混淆),试探性地计算出可能的密码值。

字词混淆

要展示什么是single破解模式,什么是字词混淆,最好的方法是通过一个实际的例子:

如果用户名是 Markus
那么一些可能的密码可以是:
Markus1, Markus2, Markus3
MArkus, MARkus, MARKus 
Markus!, Markus$, Markus*
......