shvepwqp 发表于 2023-12-13 18:37

关于审计CMCC8位随机密码的思路

本帖最后由 shvepwqp 于 2023-12-13 18:40 编辑

首发:https://blog.jiangqing.xyz/post/03474947-37b9-46a4-8d51-4babcffe1272.html

密码规则
长度为8位
每位都有可能是大小写、数字、特殊字符
每两位之间相邻不重复
需要解决的问题存储问题这种规则的密码生成并不复杂,难的是高达几十个T的存储,就算是生成了,高IO肯定也是个问题
配合hashcat的问题既然要实现无存储跑hashcat,那肯定是想到用掩码,但是掩码又不可能设计出每两位相邻不重复的规则
思路考虑用python配合hashcat,一边生成,一边输入到hashcat中
为了照顾每两位相邻不重复,解决这个问题,我们可以考虑使用一种更加高效的密码生成策略。具体来说,我们可以按照一定的顺序生成密码,确保每次生成的密码都是全新的,从而避免重复检查。
我们可以首先生成所有的2位密码,然后将这些2位密码组合起来,形成8位密码。在这个过程中,我们需要确保相邻的2位密码不相同。这样,我们就可以生成所有满足你要求的8位密码,而且不会有重复。
python:
import itertoolsimport subprocessfrom multiprocessing import Process, Queue# 定义可能的字符集charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()'# 生成所有可能的2位密码two_char_passwords = list(itertools.product(charset, repeat=2))# 检查相邻的2位密码是否相同def check_repetition(password):    for i in range(len(password)-1):      if password == password:            return False    return True# 密码生成函数def generate_passwords(queue):    # 生成所有可能的8位密码    for password in itertools.product(two_char_passwords, repeat=4):      if check_repetition(password):            password_str = ''.join([''.join(two_char) for two_char in password])            queue.put(password_str)# Hashcat调用函数def run_hashcat(queue):    hashcat_process = subprocess.Popen(['/hashcat/hashcat-6.2.6/hashcat.bin', '-w', '4','-a','0', '-m', '22000', '-o', './passwd', './1.ht220000'], stdin=subprocess.PIPE)    while True:      password_str = queue.get()      hashcat_process.stdin.write((password_str + '\\n').encode())      hashcat_process.stdin.flush()# 创建队列和进程queue = Queue()producer = Process(target=generate_passwords, args=(queue,))consumer = Process(target=run_hashcat, args=(queue,))# 启动进程producer.start()consumer.start()# 等待进程结束producer.join()consumer.join()
https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

liuwei19870301 发表于 2023-12-14 07:36

思路不错,这样可以节约大量的硬盘空间

Muslera 发表于 2023-12-14 17:17

你这只保证2位密码不重复,前面2位末尾那个和后面2位开头那个,没有排除重复
前面ab后面bc,这种没排除

Broad123 发表于 2023-12-15 00:45

200W速度,需要持续跑六天😂才能跑完。
谁有好办法跑快些。

vanke 发表于 2023-12-15 20:21

666

vanke 发表于 2023-12-15 20:28

Broad123 发表于 2023-12-15 00:45
200W速度,需要持续跑六天😂才能跑完。
谁有好办法跑快些。

之前论坛有帖子 找不到了
2位数字隔1位
09:%c%c%c%c%c%d%c%d\\00000101
10:%c%c%c%c%d%c%d%c\\00001010
11:%c%c%c%d%c%d%c%c\\00010100
12:%c%c%d%c%d%c%c%c\\00101000
13:%c%d%c%d%c%c%c%c\\01010000
14:%d%c%d%c%c%c%c%c\\10100000

2位数字隔2位
15:%c%c%c%c%d%c%c%d\\00001001
16:%c%c%c%d%c%c%d%c\\00010010
17:%c%c%d%c%c%d%c%c\\00100100
18:%c%d%c%c%d%c%c%c\\01001000
19:%d%c%c%d%c%c%c%c\\10010000

2位数字隔3位
20:%c%c%c%d%c%c%c%d\\00010001
21:%c%c%d%c%c%c%d%c\\00100010
22:%c%d%c%c%c%d%c%c\\01000100
23:%d%c%c%c%d%c%c%c\\10001000

2位数字隔4位
24:%c%c%d%c%c%c%c%d\\00100001
25:%c%d%c%c%c%c%d%c\\01000010
26:%d%c%c%c%c%d%c%c\\10000100

2位数字隔5位
27:%c%d%c%c%c%c%c%d\\01000001
28:%d%c%c%c%c%c%d%c\\10000010

2位数字隔6位
29:%d%c%c%c%c%c%c%d\\10000001

Broad123 发表于 2023-12-16 10:34

vanke 发表于 2023-12-15 20:28
之前论坛有帖子 找不到了
2位数字隔1位
09:%c%c%c%c%c%d%c%d\\00000101


那种组合几率比较大?

随风无限 发表于 2023-12-16 13:53

~~~~~~~~~~~~~~https://www.anywlan.com/thread-449030-1-1.html

xun73tian 发表于 2023-12-16 14:40

随风无限 发表于 2023-12-16 13:53
~~~~~~~~~~~~~~https://www.anywlan.com/thread-449030-1-1.html

:victory:

zde19900821 发表于 2024-3-21 17:18

Broad123 发表于 2023-12-15 00:45
200W速度,需要持续跑六天😂才能跑完。
谁有好办法跑快些。

那就加到1000W速度
页: [1]
查看完整版本: 关于审计CMCC8位随机密码的思路