THM学习笔记——john

John the Ripper是目前最好的哈希破解工具之一。

John基本语法:

john [options] [path to file]

john:调用John the Ripper程序。

[path to file]:包含你要尝试破解的哈希的文件,如果它们在同一个目录中,你就不需要命名路径,只需要文件名。

自动破解

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

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

--wordlist=:指定使用字典模式,从你在以下路径中提供的文件中读取。

[path to wordlist]:你正在使用的字典文件的路径。

示例用法:

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

识别哈希

有时John无法自动识别和加载哈希,没关系!我们可以使用其他工具识别哈希,然后设置John使用特定格式。推荐一个叫做hash-identifier的工具。

要使用hash-identifier,你可以从gitlab获取python文件,如下所示:

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

例:

NTHash / NTLM

NThash是现代Windows操作系统机器将用户和服务密码存储在其中的哈希格式。它也通常被称为"NTLM",这指的是Windows哈希密码的以前版本"LM",因此是"NT/LM"。

例子:

从/etc/shadow破解哈希

/etc/shadow文件是Linux机器上存储密码哈希的文件。它还存储其他信息,例如上次密码更改的日期和密码到期信息。它为系统的每个用户或用户帐户提供每行一个条目。这个文件通常只能由root用户访问,所以为了获取哈希,你必须有足够的权限。

Unshadowing

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输出的文件。这里我们不需要指定模式,因为我们已经为John专门制作了输入,但在某些情况下,你需要指定格式,就像我们之前使用的一样:

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

例子:

Single Crack Mode

到目前为止,我们一直在使用John的字典模式来处理暴力破解哈希。但是John还有另一种模式,称为单一破解模式。在此模式中,John仅使用用户名提供的信息,通过在用户名中轻微更改包含的字母和数字,试图推断可能的密码。

单词变形

如果我们使用用户名:Markus

一些可能的密码可以是:

Markus1、Markus2、Markus3

MArkus、MARkus、MARKus

Markus!、Markus$、Markus*

这种技术称为单词变形。John正在根据它获得的信息构建自己的字典,并使用一组称为"变形规则"的规则来定义它如何对起始单词进行变异,以生成基于目标的相关因素的字典

Using Single Crack Mode

例如,如果我们想破解名为"Mike"的用户的密码,使用单一模式:

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

--single:此标志让john知道您你要使用单一哈希破解模式。

示例用法:

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

关于单一破解模式中的文件格式的说明:

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

从:1efee03cdcb96d90ad48ccc7b8666033

到:mike:1efee03cdcb96d90ad48ccc7b8666033

例子:

破解受密码保护的Zip文件

我们可以使用John来破解受密码保护的Zip文件的密码。我们将使用John套件的另一部分将zip文件转换为John可以理解的格式。

与我们先前使用的unshadow工具几乎相同,我们将使用zip2john工具将zip文件转换为John能够理解并且希望破解的哈希格式。基本用法如下:

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

[options ]:允许你向zip2john传递特定的校验和选项,这通常不是必需的

[zip文件]:你希望获取哈希的zip文件的路径

>:这是输出目录,我们将使用它来将此文件的输出发送

[output file]:这是将存储输出的文件

示例用法

zip2john zipfile.zip > zip_hash.txt

破解

然后,我们可以取出我们从zip2john输出的文件,并且像我们使用unshadow一样,直接将其馈送到John中,因为我们已经为其专门制作了输入。

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

例子:

破解受密码保护的RAR存档

我们可以使用与我们在上一个任务中使用的类似的过程来获取rar档案的密码。

Rar2John与我们刚刚使用的zip2john工具几乎完全相同,基本语法如下:

rar2john [rar file] > [output file]

rar2john:调用rar2john工具

[rar file ] - 你希望获取哈希的rar文件的路径

>:这是输出目录,我们将使用它来将此文件的输出发送

[output file ]:这是将存储输出的文件

示例用法

rar2john rarfile.rar > rar_hash.txt

破解

再次,我们能够取出我们从rar2john输出的文件,并且像我们使用zip2john一样,直接将其馈送到John中。

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

例子:

破解SSH密钥密码

让我们探索John的另一个用途,它在CTF挑战中经常出现。使用John来破解id_rsa文件的SSH私钥密码。除非另有配置,否则,你使用密码对SSH登录进行身份验证。但是,你可以配置基于密钥的身份验证,这样你就可以使用你的私钥,id_rsa,作为身份验证密钥登录到SSH上的远程机器。但是,这样做通常需要密码,在这里,我们将使用John来破解此密码,以允许使用密钥通过SSH进行身份验证。

SSH2John

基本语法如下:

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

ssh2john:调用ssh2john工具

[id_rsa private key file ]:你希望获取哈希的id_rsa文件的路径

>:这是输出指示器,我们使用它将文件的输出发送

[output file]:这是将存储输出的文件

示例用法:

ssh2john id_rsa > id_rsa_hash.txt

破解

最后一次,我们将从ssh2john输出的文件,传送到John,就像我们之前使用rar2john一样,可以无缝地与John配合使用:

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

相关推荐
MC何失眠5 分钟前
vulnhub靶场之【digitalworld.local系列】的snakeoil靶机
网络·学习·安全·web安全·网络安全
搬码红绿灯32 分钟前
计算机网络——交换机实验(模拟)
网络·计算机网络
AnalogElectronic41 分钟前
整理一下arcGis desktop版本软件, 从入门到精通需要学习的知识点
学习·arcgis
柒十三.1 小时前
江科大51单片机笔记【12】DS18B20温度传感器(上)
笔记·嵌入式硬件·51单片机
不知真不只1 小时前
网络编程之应用层协议(http)
服务器·网络·http
微臣愚钝1 小时前
【01】HTTP基本原理
网络·网络协议·http
困觉少年1 小时前
宝塔的ssl文件验证域名后,会在域名解析列表中留下记录吗?
网络
IvanWKQ1 小时前
本地服务重启-端口占用-显示和美国ip有个连接?存在恶意程序或是间谍程序?
linux·服务器·网络
听风吹等浪起1 小时前
计算机网络基础:VLAN(虚拟局域网)
网络·计算机网络
派阿喵搞电子2 小时前
轻量级 Transformer 架构&多模态预训练框架
学习