手把手教你破解WPS 、Microsoft Office文档密码【吾爱作者:a57595135a】
前言笔者就以WPS Excel为例,演示下破解过程,操作系统使用的是Ubuntu 22.04桌面版。
准备工作
1、一个带密码的excel文档
2、如果你的机器没有独显,则安装OpenCL驱动
sudo apt update
sudo apt install intel-opencl-icd3、如果是NVIDIA独显
(1)安装显卡驱动
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt search nvidia-driver
sudo apt install nvidia-driver-525 #选择一个合适的版本我这里选的是525
sudo reboot安装好显卡驱动后命令行输入:
nvidia-smi如果能正常输出类似下面的版本信息,则驱动安正确
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.125.06 Driver Version: 525.125.06 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+```(2)安装CUDA Toolkit
根据上面显卡驱动输出的 CUDA Version 下载对应的CUDA Toolkit,如果版本不对则有可能不能正常运行,我这里就下载CUDA Toolkit 12.0版本,下载地址:
CUDA Toolkit
https://developer.nvidia.com/cuda-toolkit
CUDA Toolkit Download
https://developer.nvidia.com/cuda-downloads
CUDA Toolkit Archive
https://developer.nvidia.com/cuda-toolkit-archive
一步一步的选择你的CUDA版本以及系统版本后会显示安装命令,以下是ubuntu 22.04下cuda 12.0版本的安装命令:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda-repo-ubuntu2204-12-0-local_12.0.0-525.60.13-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-0-local_12.0.0-525.60.13-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda设置环境变量:
vim ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=${CUDA_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:$LD_LIBRARY_PATH使其生效:
source ~/.bashrc安装破解工具HASHCAT
官网地址:https://hashcat.net/hashcat/
下载地址:https://hashcat.net/files/hashcat-6.2.6.7z
下载编译hash提取工具
下载地址:https://github.com/openwall/john
编译安装
cd src
./configure && make -s clean && make -sj4编译完成后将会在run目录生成可执行文件。
提取office密码hash
进入john的run目录执行:
cd ../run
./office2john.py '/home/ubuntu/Desktop/test.xlsx' > ~/Desktop/hash.txt内容如下:
cat ~/Desktop/hash.txt
test.xlsx:$office$*2007*20*128*16*8eb5dfb7076b984f872835699267d09d*a3f37477a61095f9d1823e4b798b4b3a*2d3a5d0c4b58ee023575a429433679cc8ecc2cae通过hash头$office$*2007*可以观察出WPS采用的是MS2007版本的加密算法。
而office对应的hash_type有以下几种:
9700 | MS Office <= 2003 $0/$1, MD5 + RC4 | Documents
9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1| Documents
9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2| Documents
9800 | MS Office <= 2003 $3/$4, SHA1 + RC4 | Documents
9810 | MS Office <= 2003 $3, SHA1 + RC4, collider #1 | Documents
9820 | MS Office <= 2003 $3, SHA1 + RC4, collider #2 | Documents
9400 | MS Office 2007 | Documents
9500 | MS Office 2010 | Documents
9600 | MS Office 2013 | Documents
2007版本对应的hash_type id是9400
执行破解
进入hashcat目录执行
./hashcat.bin -a 3 -m 9400 '$office$*2007*20*128*16*8eb5dfb7076b984f872835699267d09d*a3f37477a61095f9d1823e4b798b4b3a*2d3a5d0c4b58ee023575a429433679cc8ecc2cae' --force ?l?l?l?a?a?a几分钟后密码就破解成功了。我这里使用的是暴力破解的方式,hashcat也可以加载密码字典文件,具体的大家可以自行搜索学习下。
性能测试
输入下面的命令测试机器性能
./hashcat.bin -b -m 9400建议大家使用带显卡的机器进行破解,经测试集显和独显差距很大,我的集显电脑破解速度为5000+每秒,而独显电脑则可以达到15万+每秒。
内置掩码规则
- [ Built-in Charsets ] -
? | Charset
===+=========
l | abcdefghijklmnopqrstuvwxyz 纯小写字母
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ 纯大写字母
d | 0123456789 纯数字
h | 0123456789abcdef 常见小写子目录和数字
H | 0123456789ABCDEF 常见大写字母和数字
s |!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 特殊字符
a | ?l?u?d?s 键盘上所有可见的字符
b | 0x00 - 0xff 可能是用来匹配像空格这种密码的下面举几个简单的例子来了解一下掩码的设置
八位数字密码:?d?d?d?d?d?d?d?d
八位未知密码:?a?a?a?a?a?a?a?a
前四位为大写字母,后面四位为数字:?u?u?u?u?d?d?d?d
前四位为数字或者是小写字母,后四位为大写字母或者数字:?h?h?h?h?H?H?H?H
前三个字符未知,中间为admin,后三位未知:?a?a?aadmin?a?a?a
6-8位数字密码:--increment --increment-min 6 --increment-max 8 ?l?l?l?l?l?l?l?l
6-8位数字+小写字母密码:--increment --increment-min 6 --increment-max 8 ?h?h?h?h?h?h?h?h
如果我们想设置字符集为:abcd123456!@-+,那该怎么做呢。这就需要用到自定义字符集这个参数了,hashcat支持用户最多定义4组字符集
--custom-charset1 等价于 -1
--custom-charset2 等价于 -2
--custom-charset3 等价于 -3
--custom-charset4 等价于 -4在掩码中用?1、?2、?3、?4来表示。
再来举几个例子:
--custom-charset1 abcd123456!@-+。然后我们就可以用"?1"去表示这个字符集了
--custom-charset2 ?l?d,这里和?2就等价于?h
-1 ?d?l?u,?1就表示数字+小写字母+大写字母
-3 abcdef -4 123456 那么?3?3?3?3?4?4?4?4就表示为前四位可能是“abcdef”,后四位可能是“123456”
页:
[1]