首页
论坛
专栏
课程

[其他内容] [讨论]Inno Setup安装包的hashcat使用方法

2019-6-22 17:46 2138

[其他内容] [讨论]Inno Setup安装包的hashcat使用方法

2019-6-22 17:46
2138

这里的大佬分析发现,ida pro 的安装包使用 Inno Setup 打包,打包的时候是使用随机数的前 20 位作为密码的。

 

众所周知,计算机的随机数是伪随机数,是根据 void srand (unsigned int seed) 设置的种子所生成的。所以 ida 的密码总共只有 0xffffffff 个。

 

按照文章的说法感觉是这样的,但是我用的老爷机跑完了并没有跑出密码,所以应该是我对文章的理解问题。我是猪头我是猪头我是猪头。

 

安装包的加密方式是

PasswordHash == hashlib.sha1("PasswordCheckHash" + PasswordSalt + password).hexdigest()

而除了 password 之外,其他信息都可以在安装包内找到,此时只需要使用 hashcat + 上面生成的字典即可.

# PasswordHash = f29f55f07c043ad34b3de150501535f44424edad
# PasswordSalt = c41639792846e456
# "PasswordCheckHash" -> 50617373776f7264436865636b48617368
./hashcat -m 140 f29f55f07c043ad34b3de150501535f44424edad:50617373776f7264436865636b48617368c41639792846e456 --hex-salt -a 0 ./out.dict

字典生成,摘自 devco.re

#!/usr/bin/env perl
#
@_e = split //,"abcdefghijkmpqrstuvwxyzABCDEFGHJKLMPQRSTUVWXYZ23456789";

for($ii=0;$ii<4294967295;++$ii){
    srand($ii);
    $pw="";

    for($i=0;$i<12;++$i)
    {
        $key = rand 54;
        $pw = $pw . $_e[$key];
    }
    print "$pw\n";
}


[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最后于 2019-6-23 00:13 被Teemo™编辑 ,原因:
最新回复 (12)
qazgzz 2019-6-22 19:06
2
0
大佬你成功了吗?
照这样分析的话,在这个字典中可以找到之前有过的密码,但是只能找到hacking team 6.8的那个密码,其他的都找不到
FgVQyXZY2XFk
7ChFzSbF4aik
ZFdLqEM2QMVe
6VYGSyLguBfi
qY2jts9hEJGy
是字典不够大?我生成了50g的字典,也只找到那一个
晴朗的天空 2019-6-22 19:14
3
0
我也已经试完所有4294967296种可能性了,没办法破解 7.2 的密码。
原文应该是说 HexRay 的密码太过简单,单纯 srand, rand,charset 固定,也许更换不同 PRNG 就能破解
最后于 2019-6-22 19:20 被晴朗的天空编辑 ,原因:
qazgzz 2019-6-22 19:20
4
0
晴朗的天空 我也已经试完所有4294967296种可能性了,没办法破解 7.2 的密码。 我猜测 HexRay 用了至少不只一种 PRNG 演算法。
hexray直接用的inno setup来制作安装包,加密部分应该是固定的,或许是种子不够大?我去推问devcore了
最后于 2019-6-22 19:20 被qazgzz编辑 ,原因:
晴朗的天空 2019-6-22 19:26
5
0
我不认为 DevCore 会公开,他们文章应该只是一种攻击概念验证PoC
加密肯定不是固定的,Perl 如楼主所说应该只有 0xFFFFFFFF 种可能性,跑完所有可能性,没发现其他 password,就代表一定还有其他演算法
我个人在猜测加密是 random 选择演算法,再 random seed。
葫芦娃 1 2019-6-22 19:30
6
0
qazgzz 大佬你成功了吗? 照这样分析的话,在这个字典中可以找到之前有过的密码,但是只能找到hacking team 6.8的那个密码,其他的都找不到 FgVQyXZY2XFk 7ChFzSbF4aik ...
爆不到+1, 这个字典估计只有6.8有用,我搜了另外一个6.8的key也存在,7.0的就搜不到了, 6.9的key找不到了要不然也能试一下。

(ida现在的key是14位的
晴朗的天空 2019-6-22 19:44
7
0
葫芦娃 爆不到+1, 这个字典估计只有6.8有用,我搜了另外一个6.8的key也存在,7.0的就搜不到了, 6.9的key找不到了要不然也能试一下。 (ida现在的key是14位的
另一把是"PDxD5J82DsFy"?
葫芦娃 1 2019-6-22 20:00
8
0
晴朗的天空 另一把是"PDxD5J82DsFy"?
yes
elianmeng 1 2019-6-22 21:52
9
0
是不是7.2的序不一样了?
23456789ABCDEFGHJKLMPQRSTUVWXYZabcdefghijkmpqrstuvwxyz
ABCDEFGHJKLMPQRSTUVWXYZ23456789abcdefghijkmpqrstuvwxyz
23456789abcdefghijkmpqrstuvwxyzABCDEFGHJKLMPQRSTUVWXYZ
abcdefghijkmpqrstuvwxyz23456789ABCDEFGHJKLMPQRSTUVWXYZ
abcdefghijkmpqrstuvwxyzABCDEFGHJKLMPQRSTUVWXYZ23456789
ABCDEFGHJKLMPQRSTUVWXYZabcdefghijkmpqrstuvwxyz23456789
是不是换了一种序列?
yunsini 2019-6-22 23:59
10
0
之前在在想$i是不是一个时间戳相关的东西,所以用文章给定的那个值,在它的一定区间内尝试了一下,发现不对。
既然取巧验证不行,还准备全部跑一遍遍的。看大佬们说爆破不到,那我也不跑了。
最后于 2019-6-23 00:00 被yunsini编辑 ,原因:
StriveXjun 2019-6-23 16:31
11
0
用python跑 我也是服。  而且随机数生成不一定用srand
Lakr 2019-6-24 02:00
12
0
elianmeng 是不是7.2的序不一样了? 23456789ABCDEFGHJKLMPQRSTUVWXYZabcdefghijkmpqrstuvwxyz ABCDEFGHJKLMPQRSTUVWXYZ234567 ...
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts

全部试过了,330G字典出不来。

@_1 = split //,"abcdefghijkmpqrstuvwxyzABCDEFGHJKLMPQRSTUVWXYZ23456789";
@_2 = split //,"abcdefghijkmpqrstuvwxyz23456789ABCDEFGHJKLMPQRSTUVWXYZ";
@_3 = split //,"ABCDEFGHJKLMPQRSTUVWXYZabcdefghijkmpqrstuvwxyz23456789";
@_4 = split //,"ABCDEFGHJKLMPQRSTUVWXYZ23456789abcdefghijkmpqrstuvwxyz";
@_5 = split //,"23456789abcdefghijkmpqrstuvwxyzABCDEFGHJKLMPQRSTUVWXYZ";
@_6 = split //,"23456789ABCDEFGHJKLMPQRSTUVWXYZabcdefghijkmpqrstuvwxyz";
qazgzz 2019-6-24 10:40
13
0
Lakr Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts 全部试过了,330G字典出不来。 @_1 = split //,&quo ...
reddit已经跑出来了,有点变化
游客
登录 | 注册 方可回帖
返回