返回列表 发布新帖

[其他] 手把手教你破解WPS 、Microsoft Office文档密码【吾爱作者:a57595135a】

IP属地:四川省
543 0
发表于 2024-3-24 16:12:54 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
前言
笔者就以WPS Excel为例,演示下破解过程,操作系统使用的是Ubuntu 22.04桌面版。

准备工作
1、一个带密码的excel文档
2、如果你的机器没有独显,则安装OpenCL驱动
  1. sudo apt update
  2. sudo apt install intel-opencl-icd
复制代码
3、如果是NVIDIA独显
(1)安装显卡驱动

  1. sudo add-apt-repository ppa:graphics-drivers/ppa
  2. sudo apt update
  3. sudo apt search nvidia-driver
  4. sudo apt install nvidia-driver-525 #选择一个合适的版本我这里选的是525
  5. sudo reboot
复制代码
安装好显卡驱动后命令行输入:

  1. nvidia-smi
复制代码
如果能正常输出类似下面的版本信息,则驱动安正确


  1. +-----------------------------------------------------------------------------+
  2. | NVIDIA-SMI 525.125.06   Driver Version: 525.125.06   CUDA Version: 12.0     |
  3. |-------------------------------+----------------------+----------------------+```
复制代码
(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版本的安装命令:

  1. wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
  2. sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
  3. 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
  4. sudo dpkg -i cuda-repo-ubuntu2204-12-0-local_12.0.0-525.60.13-1_amd64.deb
  5. sudo cp /var/cuda-repo-ubuntu2204-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
  6. sudo apt-get update
  7. sudo apt-get -y install cuda
复制代码
设置环境变量:

  1. vim ~/.bashrc
  2. export CUDA_HOME=/usr/local/cuda
  3. export PATH=${CUDA_HOME}/bin:${PATH}
  4. export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:$LD_LIBRARY_PATH
复制代码
使其生效:

  1. source ~/.bashrc
复制代码
安装破解工具HASHCAT
官网地址:https://hashcat.net/hashcat/
下载地址:https://hashcat.net/files/hashcat-6.2.6.7z

下载编译hash提取工具
下载地址:https://github.com/openwall/john

编译安装

  1. cd src
  2. ./configure && make -s clean && make -sj4
复制代码
编译完成后将会在run目录生成可执行文件。

提取office密码hash
进入john的run目录执行:

  1. cd ../run
  2. ./office2john.py '/home/ubuntu/Desktop/test.xlsx' > ~/Desktop/hash.txt
复制代码
内容如下:

  1. cat ~/Desktop/hash.txt
  2. test.xlsx:$office$*2007*20*128*16*8eb5dfb7076b984f872835699267d09d*a3f37477a61095f9d1823e4b798b4b3a*2d3a5d0c4b58ee023575a429433679cc8ecc2cae
复制代码
通过hash头$office$*2007*可以观察出WPS采用的是MS2007版本的加密算法。

而office对应的hash_type有以下几种:

  1. 9700 | MS Office <= 2003 $0/$1, MD5 + RC4               | Documents
  2. 9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1  | Documents
  3. 9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2  | Documents
  4. 9800 | MS Office <= 2003 $3/$4, SHA1 + RC4              | Documents
  5. 9810 | MS Office <= 2003 $3, SHA1 + RC4, collider #1    | Documents
  6. 9820 | MS Office <= 2003 $3, SHA1 + RC4, collider #2    | Documents
  7. 9400 | MS Office 2007                                   | Documents
  8. 9500 | MS Office 2010                                   | Documents
  9. 9600 | MS Office 2013                                   | Documents
复制代码

2007版本对应的hash_type id是9400

执行破解
进入hashcat目录执行

  1. ./hashcat.bin -a 3 -m 9400 '$office$*2007*20*128*16*8eb5dfb7076b984f872835699267d09d*a3f37477a61095f9d1823e4b798b4b3a*2d3a5d0c4b58ee023575a429433679cc8ecc2cae' --force ?l?l?l?a?a?a
复制代码
几分钟后密码就破解成功了。我这里使用的是暴力破解的方式,hashcat也可以加载密码字典文件,具体的大家可以自行搜索学习下。

性能测试
输入下面的命令测试机器性能

  1. ./hashcat.bin -b -m 9400
复制代码
建议大家使用带显卡的机器进行破解,经测试集显和独显差距很大,我的集显电脑破解速度为5000+每秒,而独显电脑则可以达到15万+每秒。

内置掩码规则

  1. - [ Built-in Charsets ] -

  2.   ? | Charset
  3. ===+=========
  4.   l | abcdefghijklmnopqrstuvwxyz [a-z] 纯小写字母
  5.   u | ABCDEFGHIJKLMNOPQRSTUVWXYZ [A-Z] 纯大写字母
  6.   d | 0123456789                 [0-9] 纯数字
  7.   h | 0123456789abcdef           [0-9a-f] 常见小写子目录和数字
  8.   H | 0123456789ABCDEF           [0-9A-F] 常见大写字母和数字
  9.   s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 特殊字符
  10.   a | ?l?u?d?s 键盘上所有可见的字符
  11.   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组字符集

  1. --custom-charset1 [chars]等价于 -1
  2. --custom-charset2 [chars]等价于 -2
  3. --custom-charset3 [chars]等价于 -3
  4. --custom-charset4 [chars]等价于 -4
复制代码
在掩码中用?1、?2、?3、?4来表示。
再来举几个例子:

  1. --custom-charset1 abcd123456!@-+。然后我们就可以用"?1"去表示这个字符集了
  2. --custom-charset2 ?l?d,这里和?2就等价于?h
  3. -1 ?d?l?u,?1就表示数字+小写字母+大写字母
  4. -3 abcdef -4 123456 那么?3?3?3?3?4?4?4?4就表示为前四位可能是“abcdef”,后四位可能是“123456”
复制代码


风起于青萍之末,浪成于微澜之间。跌谷底也要开花。沉海底也要望月。与其抱怨于黑暗。不如提灯向前行。

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

908164873@Qq.com

让我们一起寻找开源的乐趣
加入QQ群把ヽ( ̄ω ̄( ̄ω ̄〃)ゝ
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2024 ROOT开源 版权所有 All Rights Reserved. 网站地图|仅供演示|仅供演示
关灯 在本版发帖 官方QQ群 QQ客服返回顶部
快速回复 返回顶部 返回列表