实用工具集:115个2john转换器详解

实用工具集:115个2john转换器详解

本文全面介绍了John the Ripper jumbo版本中的各类2john转换器工具集,涵盖了常见文件格式(PDF、Office文档、压缩文件)、加密容器(BitLocker、DMG、VDI)、数据库哈希(Oracle、MySQL、PostgreSQL、MongoDB)的哈希提取方法,并提供了自定义格式开发的详细指南。这些工具能够从各种加密源中提取标准化哈希,为密码安全评估和数字取证提供强大支持。

常见文件格式转换器

John the Ripper jumbo版本提供了丰富的2john转换器工具集,专门用于从各种加密文件格式中提取哈希信息,以便进行密码分析。这些转换器是密码安全评估和数字取证工作中不可或缺的工具,能够处理日常工作中最常见的加密文件格式。

PDF文件转换器 (pdf2john)

PDF文档是企业环境中广泛使用的文件格式,pdf2john工具能够提取Adobe PDF文件的加密哈希信息。该工具支持多种PDF加密版本:

# pdf2john.py 核心代码结构示例
class PdfHashExtractor:
    def __init__(self, file_name: str, strict: bool = False):
        self.pdf = PdfFileReader(doc, strict=strict)
        self.encrypt_dict = self.pdf.encrypt_dict
        
    def parse(self) -> str:
        fields = [
            f"$pdf${self.algorithm}",
            self.revision,
            self.length,
            self.permissions,
            self.encrypt_metadata,
            len(self.document_id),
            self.document_id.hex(),
            passwords,
        ]
        return "*".join(map(str, fields))

支持的PDF加密算法包括:

  • RC4 (40位和128位)
  • AES (128位和256位)
  • 标准安全处理程序修订版2-6

Office文档转换器 (office2john)

Microsoft Office文档是企业环境中最常见的加密文件类型之一。office2john工具支持以下格式:

文件类型扩展名加密算法
Word文档.doc, .docxRC4, AES
Excel表格.xls, .xlsxRC4, AES
PowerPoint.ppt, .pptxRC4, AES
# office2john处理流程
def process_file(filename):
    ole = OleFileIO(filename)  # 解析OLE结构化存储
    workbookStream = ole.openstream(stream_name)  # 打开加密流
    passinfo = find_rc4_passinfo(filename, workbookStream)  # 提取密码信息
    return format_hash_output(passinfo)  # 格式化哈希输出

压缩文件转换器

7-Zip文件 (7z2john)

7z2john.pl是一个Perl脚本,专门处理7-Zip归档文件的加密信息:

# 7z哈希格式结构
my $hash_format = join('$', 
    '$7z', 
    $data_type_indicator,
    $cost_factor, 
    $salt_length,
    $salt_hex,
    $iv_length,
    $iv_hex,
    $crc32,
    $encrypted_data_length,
    $decrypted_data_length,
    $encrypted_data_hex
);

支持的7z加密特性:

  • AES-256加密算法
  • SHA-256密钥派生函数
  • 支持分卷压缩文件
  • 多种压缩算法组合
ZIP文件处理

虽然ZIP格式的转换器可能需要额外工具,但John支持标准的PKZIP和WinZip/AES加密:

mermaid

SSH密钥转换器 (ssh2john)

SSH密钥是系统管理员和开发人员常用的认证方式,ssh2john支持多种SSH私钥格式:

# SSH密钥类型检测
def get_all_tags_ktypes(lines):
    tags = []
    for line in lines:
        if "BEGIN RSA PRIVATE" in line: tags.append("RSA")
        elif "BEGIN DSA PRIVATE KEY" in line: tags.append("DSA")
        elif "BEGIN OPENSSH PRIVATE KEY" in line: tags.append("OPENSSH")
        elif "BEGIN EC PRIVATE KEY" in line: tags.append("EC")
    return tags

支持的SSH加密算法:

  • AES-128-CBC, AES-192-CBC, AES-256-CBC
  • AES-256-CTR (OpenSSH新格式)
  • 3DES-CBC
  • bcrypt PBKDF密钥派生

磁盘加密转换器 (truecrypt2john)

TrueCrypt/VeraCrypt是全磁盘加密解决方案,truecrypt2john支持:

def process_file(filename, keyfiles, options):
    header = f.read(512)  # 读取加密卷头
    for algorithm in ["RIPEMD-160", "SHA-512", "WHIRLPOOL"]:
        output_hash(header, algorithm, keyfiles)
    # 检查隐藏卷
    f.seek(65536)
    hidden_header = f.read(512)

特性包括:

  • 支持多种哈希算法
  • 处理密钥文件
  • 检测隐藏加密卷
  • 支持启动模式加密

使用示例表格

下表总结了常见文件格式转换器的基本用法:

工具名称支持格式输出格式示例典型用法
pdf2johnPDF文档$pdf$4*4*128*...pdf2john.py document.pdf > hash.txt
office2johnOffice文档$oldoffice$1*...office2john.py document.docx > hash.txt
7z2john7-Zip归档$7z$0$19$...7z2john.pl archive.7z > hash.txt
ssh2johnSSH密钥$sshng$1$16$...ssh2john.py id_rsa > hash.txt
truecrypt2john加密卷truecrypt_SHA_512$...truecrypt2john.py volume.tc > hash.txt

技术实现要点

这些2john转换器的共同技术特点:

  1. 文件格式解析:每种转换器都深入理解特定文件格式的二进制结构
  2. 加密参数提取:准确提取盐值、初始化向量、迭代次数等关键参数
  3. 哈希标准化:将提取的信息转换为John the Ripper标准哈希格式
  4. 错误处理:健壮的错误检测和处理机制,确保处理各种边缘情况

mermaid

这些常见文件格式转换器构成了John the Ripper生态系统的重要组成部分,使安全专业人员能够有效地评估各种加密文件的安全性。每个工具都经过精心设计,以确保准确提取分析所需的加密参数,同时保持与John the Ripper核心功能的完美集成。

加密容器提取工具

在John the Ripper jumbo版本中,加密容器提取工具是一组专门用于从各种加密存储容器中提取哈希值的实用程序。这些工具能够处理包括BitLocker加密磁盘、Apple DMG镜像、VDI虚拟磁盘等多种加密容器格式,为密码分析提供标准化的哈希输入。

核心提取工具概览

John the Ripper jumbo版本提供了多个专门的2john工具来处理不同类型的加密容器:

工具名称支持格式主要功能输出格式
bitlocker2johnWindows BitLocker提取BitLocker加密磁盘的哈希$bitlocker$
dmg2johnApple Disk Image提取DMG加密镜像的哈希$dmg$
vdi2johnVirtualBox VDI提取VDI虚拟磁盘的哈希$vdi$
luks2johnLinux LUKS提取LUKS加密卷的哈希$luks$

BitLocker加密磁盘提取

bitlocker2john工具专门用于处理Windows BitLocker加密的磁盘镜像。该工具能够识别BitLocker的加密结构,提取用于密码验证的加密材料。

工作流程:

mermaid

技术细节:

  • 支持BitLocker版本1(Windows Vista)和版本2(Windows 7及以后)
  • 能够处理用户密码和恢复密码两种保护方式
  • 提取AES-CCM加密参数,包括16字节Salt、12字节Nonce和16字节MAC

示例输出格式:

$bitlocker$0$16$[salt]$100000$12$[nonce]$60$[mac][vmk]

Apple DMG镜像提取

dmg2john工具专门处理Apple的加密磁盘镜像文件(DMG),支持多种加密算法和版本。

支持的DMG加密类型:

版本加密算法Salt长度迭代次数
v1AES-CBC20字节可变
v2AES-XTS20字节100,000

提取过程代码示例:

// DMG文件头解析
struct dmg_header {
    uint32_t signature;
    uint32_t version;
    uint32_t enc_iv_size;
    uint32_t unk1;
    uint32_t kdf_algorithm;
    uint32_t kdf_iterations;
    uint32_t kdf_salt_len;
    unsigned char kdf_salt[32];
    // ... 其他字段
};

// 哈希生成流程
void generate_dmg_hash(struct dmg_header *header, const char *filename) {
    printf("%s:$dmg$%d*%d*", filename, header->version, header->kdf_salt_len);
    print_hex(header->kdf_salt, header->kdf_salt_len);
    printf("*%d*", header->kdf_iterations);
    // ... 输出加密的blob数据
}

虚拟磁盘格式支持

除了物理磁盘加密格式,John the Ripper还支持多种虚拟磁盘格式:

VirtualBox VDI提取:

  • 支持VDI版本1.1加密格式
  • 提取AES-CBC加密参数
  • 处理256位加密密钥

Linux LUKS卷提取:

  • 支持LUKS1和LUKS2格式
  • 提取AF拆分和加密头信息
  • 支持多种哈希算法(SHA1, SHA256, SHA512)

使用示例和最佳实践

基本使用流程:

# 提取BitLocker加密磁盘哈希
./bitlocker2john encrypted_disk.img > bitlocker_hashes.txt

# 提取DMG镜像哈希
./dmg2john encrypted.dmg > dmg_hashes.txt

# 使用John进行分析
./john --format=bitlocker bitlocker_hashes.txt
./john --format=dmg dmg_hashes.txt

高级选项:

  • 使用--show参数查看已分析的密码
  • 结合单词列表和规则进行高效分析
  • 利用GPU加速(OpenCL)提升分析速度

技术实现深度解析

加密容器提取工具的核心在于准确解析各种加密格式的文件结构:

文件结构识别: mermaid

错误处理机制:

  • 签名验证失败时的优雅降级
  • 版本不兼容的明确错误提示
  • 损坏文件的恢复尝试

性能优化策略

为了高效处理大型加密容器,这些工具实现了多种优化:

  1. 内存映射技术:使用内存映射文件避免完整文件加载
  2. 增量解析:只读取必要的文件部分而非整个容器
  3. 并行处理:支持多文件同时提取
  4. 缓存机制:对常见加密模式进行缓存优化

安全考虑和限制

在使用加密容器提取工具时,需要注意以下安全考量:

  • 工具需要读取权限访问加密容器文件
  • 提取的哈希值应妥善保管,避免泄露
  • 某些加密格式可能存在特定的硬件要求
  • 工具不支持所有加密变体,需要验证兼容性

这些加密容器提取工具为安全研究人员和系统管理员提供了强大的密码恢复能力,特别是在数据恢复和取证分析场景中发挥着重要作用。通过标准化的哈希输出格式,它们与John the Ripper核心分析引擎无缝集成,形成了完整的密码分析解决方案。

数据库哈希提取方法

John the Ripper jumbo版本提供了强大的数据库哈希提取能力,支持多种主流数据库系统的密码哈希提取和分析。数据库系统作为企业核心应用的重要组成部分,其密码安全直接关系到整个系统的安全性。本文将详细介绍John the Ripper中针对Oracle、MySQL、PostgreSQL、MongoDB等数据库的哈希提取方法和工具使用。

Oracle数据库哈希提取

Oracle数据库使用多种认证机制,John the Ripper提供了专门的工具来提取和分析这些哈希。

oracle2john.py工具

oracle2john.py是一个Python脚本,用于从网络抓包文件中提取Oracle认证哈希。该工具主要针对Oracle的o5logon认证协议,支持两种哈希格式:

# 完整认证哈希格式
$o5logon$server_auth_sesskey*auth_vfr_data*auth_password*client_auth_sesskey

# 简化哈希格式(受CVE-2012-3137影响)
$o5logon$server_auth_sesskey*auth_vfr_data

使用方法:

python3 oracle2john.py <pcap文件>

示例输出:

$o5logon$A1B2C3D4E5F6*1234567890ABCDEF*FEDCBA0987654321*1122334455667788
Oracle哈希格式支持

John the Ripper支持多种Oracle哈希格式:

格式类型标识符描述
Oracle 10O$传统DES-based哈希
Oracle 11g$o5logon$挑战响应认证
Oracle 12c$oracle12c$PBKDF2-based哈希

Oracle 10哈希示例:

O$SYSTEM#9EEDFA0AD26C6D52

Oracle 12c哈希示例:

$oracle12c$e3243b98974159cc24fd2c9a8b30ba62e0e83b6ca2fc7c55177c3a7f82602e3bdd17ceb9b9091cf9dad672b8be961a9eac4d344bdba878edc5dcb5899f689ebd8dd1be3f67bff9813a464382381ab36b

MySQL数据库哈希提取

MySQL使用多种密码哈希算法,John the Ripper提供了全面的支持。

MySQL哈希类型

mermaid

MySQL pre-4.1哈希示例:

445ff82636a7ba59

MySQL SHA1哈希示例:

*6C8989366EAF75BB670AD8EA7A7FD1174A8A09D0
提取方法

对于MySQL数据库,哈希通常直接从数据库系统表中提取:

-- 提取MySQL用户哈希
SELECT user, authentication_string FROM mysql.user;

PostgreSQL数据库哈希提取

PostgreSQL使用MD5挑战响应机制,哈希格式为:

$postgres$user*salt*hash

示例哈希:

$postgres$postgres*f063f05d*1d586cc8d137e5f1733f234d224393e8
哈希结构解析

mermaid

MongoDB数据库哈希提取

MongoDB使用SCRAM认证机制,mongodb2john.js工具用于提取哈希。

使用方法
mongosh admin mongodb2john.js

支持的哈希格式:

认证机制格式标识符示例
MONGODB-CR$mongodb$0$$mongodb$0$admin$hash
SCRAM-SHA-1$scram$$scram$admin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值