G4MEOVER18/hashpwn
GitHub: G4MEOVER18/hashpwn
一款纯 Python 编写的哈希识别与破解工具,支持 35+ 种哈希类型和多种攻击模式,灵感来源于 hashcat 和 hashID。
Stars: 0 | Forks: 0
# hashpwn
**面向安全研究人员的哈希识别与破解工具**
纯 Python 标准库工具,灵感来源于:
- **[hashcat](https://github.com/hashcat/hashcat)** — 行业标准的哈希破解引擎(感谢 atom 和团队)
- **[hashID](https://github.com/psypanda/hashID)** — 自动哈希识别工具(感谢 psypanda)
## 功能特性
- 自动哈希识别(通过正则表达式支持 35+ 种类型)
- 字典攻击(MD5、SHA1、SHA256、SHA512、NTLM、LM、BLAKE2 等)
- 基于规则的变形(Leet 语、年份追加、后缀、大小写变换)
- 掩码攻击(`?l ?u ?d ?s ?a`)
- 哈希列表模式(同时破解多个哈希)
- Potfile 兼容输出(`hash:plain`)
- JSON 导出(`--output`)
- 实时进度条,包含 ETA 和 H/s
- 基准测试模式
## 支持的哈希类型(识别)
| # | 名称 | 长度 / 前缀 |
|---|------|----------------|
| 1 | MD5 | 32 位十六进制 |
| 2 | SHA-1 | 40 位十六进制 |
| 3 | SHA-224 | 56 位十六进制 |
| 4 | SHA-256 | 64 位十六进制 |
| 5 | SHA-384 | 96 位十六进制 |
| 6 | SHA-512 | 128 位十六进制 |
| 7 | SHA3-224 | 56 位十六进制 |
| 8 | SHA3-256 | 64 位十六进制 |
| 9 | SHA3-384 | 96 位十六进制 |
| 10 | SHA3-512 | 128 位十六进制 |
| 11 | RIPEMD-160 | 40 位十六进制 |
| 12 | BLAKE2b-512 | 128 位十六进制 |
| 13 | BLAKE2s-256 | 64 位十六进制 |
| 14 | NTLM | 32 位十六进制 |
| 15 | LM | 32 位十六进制 |
| 16 | bcrypt 2a | `$2a$` |
| 17 | bcrypt 2b | `$2b$` |
| 18 | bcrypt 2y | `$2y$` |
| 19 | argon2id | `$argon2id$` |
| 20 | argon2i | `$argon2i$` |
| 21 | argon2d | `$argon2d$` |
| 22 | scrypt | `$scrypt$` |
| 23 | md5crypt | `$1$` |
| 24 | sha512crypt | `$6$` |
| 25 | sha256crypt | `$5$` |
| 26 | apr1 (Apache MD5) | `$apr1$` |
| 27 | PBKDF2-SHA256 (Django) | `pbkdf2_sha256$` |
| 28 | PBKDF2-SHA1 (Django) | `pbkdf2_sha1$` |
| 29 | PHPass (WordPress) | `$P$` |
| 30 | PHPass (phpBB3) | `$H$` |
| 31 | Drupal7 | `$S$` |
| 32 | MySQL 3.23 | 16 位十六进制 |
| 33 | MySQL 4.1+ | `*` + 40 位十六进制 |
| 34 | PostgreSQL MD5 | `md5` + 32 位十六进制 |
| 35 | Oracle 11g SHA1 | `S:` + 60 位十六进制 |
| 36 | MSSQL 2000/2005 | `0x0100` + 88 位十六进制 |
| 37 | MSSQL 2012/2014 | `0x0200` + 136 位十六进制 |
| 38 | Cisco Type 7 | `07` + 十六进制 |
| 39 | Kerberos 5 TGT | `$krb5tgs$` |
| 40 | Kerberos 5 AS-REP | `$krb5asrep$` |
| 41 | SAP CODVN G | `{x-issha,` |
| 42 | WPA-PSK | 64 位十六进制 |
| 43 | CRC32 | 8 位十六进制 |
## 安装
只需 Python 3.7+,**无需外部依赖**。
```
git clone https://github.com/G4MEOVER18/hashpwn
cd hashpwn
python hashpwn.py --help
```
## 使用方法
### 识别哈希
```
python hashpwn.py --identify --hash 5f4dcc3b5aa765d61d8327deb882cf99
```
输出:
```
[*] Possible hash types for: 5f4dcc3b5aa765d61d8327deb882cf99
- NTLM
- MD5
```
### 字典攻击
```
python hashpwn.py --hash 5f4dcc3b5aa765d61d8327deb882cf99 \
--algo md5 \
--wordlist wordlists/top1000.txt
```
使用 Rockyou(大型字典):
```
python hashpwn.py --hash 5f4dcc3b5aa765d61d8327deb882cf99 \
--algo md5 \
--wordlist /usr/share/wordlists/rockyou.txt
```
### 基于规则的变形
```
python hashpwn.py --hash --algo sha256 \
--wordlist wordlists/top1000.txt --rules
```
应用的规则:
- 大小写转换(capitalize、upper、lower)
- Leet 替换(`a→4, e→3, i→1, o→0, s→5`)
- 年份追加 2020–2026
- 后缀:`!`、`123`、`@`、`#`、`1234` 等
- 反转(reverse)
- 重复(word+word)
### 掩码攻击(暴力破解)
```
# 6位小写字母
python hashpwn.py --hash --algo md5 --mask "?l?l?l?l?l?l"
# 4个小写字母 + 2个数字
python hashpwn.py --hash --algo sha1 --mask "?l?l?l?l?d?d"
# 文字与 Charsets 混合
python hashpwn.py --hash --algo ntlm --mask "Admin?d?d?d?d"
```
掩码标记:
| 标记 | 字符集 |
|-------|-------------|
| `?l` | a-z (26) |
| `?u` | A-Z (26) |
| `?d` | 0-9 (10) |
| `?s` | 特殊字符 |
| `?a` | 所有可打印字符 |
### 多个哈希(哈希列表)
```
# hashes.txt 每行包含一个哈希
python hashpwn.py --hashlist hashes.txt \
--algo md5 \
--wordlist wordlists/top1000.txt
```
使用规则:
```
python hashpwn.py --hashlist hashes.txt --algo sha1 \
--wordlist wordlists/top1000.txt --rules
```
### 基准测试
```
python hashpwn.py --benchmark
```
示例输出:
```
[*] Benchmarking 11 algorithms for 3s each...
md5 1,234,567 H/s ########################################
sha1 987,654 H/s ################################
sha256 654,321 H/s ####################
sha512 432,109 H/s #############
...
```
### Potfile(恢复 / 缓存)
已破解的哈希会自动保存到 `hashpwn.pot`。
下次调用时会检查缓存 —— 已破解的哈希将立即返回。
```
# 指定自己的 Potfile
python hashpwn.py --hash --algo md5 \
--wordlist wordlists/top1000.txt \
--restore meine.pot
```
### JSON 导出
```
python hashpwn.py --hash --algo sha256 \
--wordlist wordlists/top1000.txt \
--output ergebnis.json
```
## 支持的破解算法
| 算法名称 | 实现方式 |
|-----------|----------------|
| `md5` | hashlib |
| `sha1` | hashlib |
| `sha224` | hashlib |
| `sha256` | hashlib |
| `sha384` | hashlib |
| `sha512` | hashlib |
| `sha3_256` | hashlib |
| `sha3_512` | hashlib |
| `blake2b` | hashlib |
| `blake2s` | hashlib |
| `ripemd160` | hashlib |
| `ntlm` | 纯 Python (MD4/UTF-16LE) |
| `lm` | 纯 Python (DES 扩展,标记) |
## 法律声明
本工具**仅用于合法的安全研究、已获明确授权的渗透测试、F 比赛以及您自己的系统**。
滥用行为将违反相关法律。
作者不对因滥用造成的任何损失承担责任。
## 许可证
MIT 许可证 — 版权所有 (c) 2026 G4MEOVER18
参见 [LICENSE](LICENSE)
标签:argon2, bcrypt, Cisco, DOS头擦除, hashcat, hashID, JSON导出, MD5, NTLM, Potfile, Python, SHA, SysWhispers, VEH, 哈希识别, 字典攻击, 密码工具, 密码破解, 掩码攻击, 无后门, 规则攻击, 进度条, 逆向工具