前言
在工作上遇到一个客户的前供应商导出的文件是加密的,然后需要对其进行解密.我当时就懵逼了…
用notepad++打开看到是7z格式的加密文件,我感觉就可能破解不出来了,7zip使用的是AES256加密算法(Advanced Encryption Standard)高级加密标准,截至2006年,针对AES唯一的成功攻击是旁道攻击或社会工程学攻击.两者都是非暴力破解方式,难度系数较高,简而言之,前者就是绕开密码攻击密码系统或者其他漏洞,而后者就是分析人类习惯,从人的社会习惯等除法寻求密码.
虽然遇到这么一个坑事,但还是尽力去做的,就当时提升自己吧!所以就有了这一篇博文,mark一下我在解决(程序还在跑)的过程.
准备破解
解决这样的问题,对于我来说目前只能通过暴力的方式破解,社会工程学破解就是使用人类常用密码进行字典枚举,第二个方式就是限定字符的排列组合进行穷举(不推荐,效率低,浪费电)
我在破解过程中收集了几款软件,这里分别记录下相关的用法和分析下优缺点.
- RARcrack
- 7zcracker
- Hashcat
- 自己写脚本
- ARCHPR
使用方法
RARcrack
RARCrack是简单穷举方式暴力破解的,可以编写xml文件使得破解范围变小,可以限定使用的字符以及密码长度,它是linux环境的下软件所以需要在linux环境下运行,刚好我手头有一台服务器就用来跑这个了,超过6位数的密码,在没限定条件下几乎无法破解.(26+26+10)的六次方有56,800,235,584排列组合, 所以在不推荐用于没有任何密码提示的情况下使用,如字符长度和字符限制以及字符占位等等.
简单说下如何安装使用吧!
安装环境:
Software requirements:
> glibc 2.4
any POSIX compatible operating system [sorry Window$ isn't]
pthreads
libxml2
and finally: 7zip, unrar, unzip
安装步骤:
$ tar -xjf rarcrack-VERSION.tar.bz2
$ cd rarcrack-VERSION
// you need gcc or any C compiler (edit Makefile CC=YOUR_C_COMPILER)
$ make
// you must be root in next step:
$ make install
使用命令
rarcrack your_encrypted_archive.ext [--threads thread_num] [--type rar|zip|7z]
如: rarcrack pojie.7z --threads 10 --type 7z
RARcrack进阶
<?xml version="1.0" encoding="UTF-8"?>
<rarcrack>
<abc>0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</abc>
<current>uU</current>
<good_password></good_password>
</rarcrack>
编写自定义的xml文件可以缩减密码范围,加快破解速度,标签abc是指定破解密码的字符范围,current标签是指当前密码前缀或者使用0进行占位表示密码由多少位数开始.此外xml文件名相同放在破解目录下,如破解的是test.7z那么xml文件名就是test.7z.xml
优点: 就是简单,易上手,支持多线程,当你记得部分密码或者记得密码长度时是一个不错的工具.
缺点: 也是很明显,就是比较笨,不支持配置字典进行破解,在没有任何配置情况下就是蛮力破解,浪费电呀!
推荐指数: ☆☆☆
7zcracker
7zcracker是内置了简单的字典进行破解的,当超出字典就会采用蛮力破解,它是windows下的软件,使用cmd命令行启动.
从网上下载7zcracker,进行解压,进入目录运行7zcracker.exe 输入需要破解的文件路径.等待即可 .
优点: 非常简单,不需要任何知识即可上手,可破解比较简单的密码.
缺点: 不支持多线程,不支持字典配置,不支持密码配置,是简单带来的坏处.
推荐指数: ☆☆☆
Hashcat
hashcat号称世界上最快的密码破解,世界上第一个和唯一的基于GPGPU规则引擎,免费多GPU(高达128个GPU),多哈希,多操作系统(Linux和Windows本地二进制文件),多平台(OpenCL和CUDA支持),多算法,资源利用率低,基于字典攻击,支持分布式破解等等,目前最新版本为4.01,下载地址,hashcat目前支持各类公开算法高达247类,市面上面公开的密码加密算法基本都支持!hashcat系列软件在硬件上支持使用CPU、NVIDIA GPU、ATI GPU来进行密码破解。在操作系统上支持Windows、Linux平台,并且需要安装官方指定版本的显卡驱动程序,如果驱动程序版本不对,可能导致程序无法运行。NVIDIA users GPU破解驱动需要ForceWare 331.67以及更高版本,AMD 用户则需要Catalyst 14.9以及更高版本,可以通过Catalyst 自动侦测和下载检测工具来检测系统应该下载那个版本,下载地址,选择合适的版本安装即可。其官方github 网站地址
因为我是破解7z需要下载7zhash生成工具philsmd/7z2hashcat
Sample:
$ 7z2hashcat64-1.2.exe "file.7z" > hash.txt
$ hashcat64 -h
$ hashcat64 -m 11600 -a 0 hash.txt wordlist.txt -r rules/best64.rule
首先生成7z文件hash,然后执行破解程序,wordlist.txt为字典,使用hashcat需要注意系统温度,避免高温烧坏电脑.
优点: 支持复杂的密码破解,支持gpu加速,破解效率高
缺点: 工具使用复杂,需要较强的专业知识,是专业的hacker工具
更多请参考:hashcat wiki
推荐指数: ☆☆☆☆
自己编写脚本
这个灵活性比较高,看个人code的能力,一般也是利用相关字典进行简单的破解,主要定制化程度高.
这里我贴一段Python的代码:
#!/usr/bin/env python2
import os,sys
f = open(sys.argv[1],'r')
lines = f.read().splitlines()
for line in lines:
x = os.system('7z e {0} -p{1}'.format(sys.argv[2],line))
if x == 0:
print ('[~] Password is : {0}\n\n'.format(line))
exit(1)
print ('[!] Password not found in the provided list!\n\n')
$easy.py <passwords-file> <7z-file-to-bruteforce>
文件使用绝对路径,使用7z命令,需要先将7z加入到path路径下.
优点: 定制化程度高,灵活性程度高,效率与个人code能力成正比,可随意配置字典以及修改代码
缺点: 单线程,效率较低
笔者重新写了一个版本,一般破解会有多个字典,直接使用字典所在文件夹作为参数,递归自动遍历所有字典.
#!/usr/bin/env python2
import os
import sys
def traversingFolder(path, crack_file):
files = os.listdir(path)
for file in files:
file = os.path.join(path, file)
if os.path.isdir(file):
if not os.listdir(file):
continue
else:
traversingFolder(file, crack_file)
else:
doCheck(file, crack_file)
def doCheck(filepath, crack_file):
lines = open(filepath, 'r').read().splitlines()
for line in lines:
x = os.system('7z e {0} -p{1}'.format(crack_file, line))
if x == 0:
print('[~] Password is : {0}\n\n'.format(line))
exit(1)
traversingFolder(sys.argv[1], sys.argv[2])
print('[!] Password not found in the provided list!\n\n')
运行命令:
$easy.py <passwords-dir> <7z-file-to-bruteforce>
这里附一个爆破密码地址:Blasting_dictionary
ARCHPR
这里额外说一下这款破解工具,本来是不需要的,因为不支持7z,但是由于其功能强大与方便,所以在这里mark一下.
ARCHPR 全程advanced rar password recovery,支持RAR和ZiP格式压缩的文件
优点: 支持字典破解,支持字符长度范围调,支持明文破解
缺点: 不支持7z
本博客所有文章除特别声明外,均采用: 署名-非商业性使用-禁止演绎 4.0 国际协议,转载请保留原文链接及作者。