admin
。如果将
admin
密码配置为test
,则会在输出文件中得到此哈希值: /> 3785a9c61b587f2ff0dd7132db844f14
由于是32个字符的哈希,我怀疑它是MD5。从测试中我知道,如果我将其他内置帐户之一配置为具有相同的密码,则哈希是不同的。因此,似乎无论采用哪种哈希算法,它都可能在哈希之前将
username
和password
连接在一起。 我尝试了很多组合,但我想我可能只需要尝试蛮力。知道我对
username
和password
的了解后,我想我可以进行自定义词典攻击或其他任何操作。有什么建议吗?
#1 楼
当我遇到类似的问题时,我花了一段时间写的一个Perl程序,并对其进行更改以匹配您的数据。这应该生成“ test:admin”的所有排列,该排列可以将任何字符用作分隔符,并包括所有缩写(以处理只占用用户名几个字节的情况)。我从3785a9开始获得了大约50个结果,但没有3785a9c6。因此,这似乎可以排除用户名(一部分)与密码(可能带有分隔符)连接在一起并计算结果的MD5的情况。但是,当然,他们可能会使用MD4或其他会产生16个字节的东西。他们可能会先将密码与用户联系起来。他们可能会向后读取MD5。有很多可能性使查找算法更加困难。
如果您想使用我的perl程序尝试更多操作,就在这里。在Xeon E5的1个核心上花费了大约1个小时。有一些事情可以优化,但是我认为花30分钟使程序运行5分钟变得没有意义。
#!/usr/bin/perl
use Digest::MD5 qw(md5_hex);
use List::Util qw(shuffle);
use strict;
use warnings;
$|=1;
my @admintest=(split("", "admintest"), ":", chr(127));
# my @admintest=(split("", "abc"), ":", chr(127));
my $n=0;
permute("", @admintest);
sub permute {
my $str=shift;
my @letters=@_;
my $str2;
for (my $i=0; $i<=$#letters; $i++) {
if ($letters[$i] eq chr(127)) {
tryseparatorsonstring($str);
return;
}
$str2=$str.$letters[$i];
permute($str2, @letters[0..$i-1], @letters[$i+1..$#letters]);
}
}
print "\n";
sub tryseparatorsonstring {
my $str=shift;
if ($str =~ /:/) {
for (my $sep=0; $sep<128; $sep++) {
my $str2=$str;
$str2=~s/:/chr($sep)/ge;
trystring($str2, $sep);
}
} else {
trystring($str, "");
}
}
sub trystring {
my $str=shift;
my $sep=shift;
my $pass=md5_hex($str);
print "$n\t$str\t$sep\t$pass\n" if $pass =~ /^3785a9/;
if (++$n%1_000_000==0) {
printf "%dM\r", $n/1_000_000;
}
# print "$str\n";
}
exit 0;
评论
感谢那。我想这超出了列表中的几个选项。我确实设法对设备进行了root操作并可以访问二进制文件,我将尝试再次找到它并尝试signsrch。
– 59e12ca75b3d
2014年11月12日0:09
#2 楼
我建议您寻找一个哈希识别软件。您可以在Internet上找到一些免费的软件。例如:HashTag(专用于密码哈希标识);
OnlineHashCrack哈希标识(支持250个哈希类型);
hash-identifier;
hashID;
...等等...
我用
HashTag
尝试了您的样本具有多种设置类型的MD5算法,但是您提供的签名更多,它将更加准确。$> HashTag.py -sh 3785a9c61b587f2ff0dd7132db844f14
Hash: 3785a9c61b587f2ff0dd7132db844f14
[*] MD5 - Hashcat Mode 0
[*] NTLM - Hashcat Mode 1000
[*] MD4 - Hashcat Mode 900
[*] LM - Hashcat Mode 3000
[*] MD5(HMAC)
[*] MD4(HMAC)
[*] Haval-128(HMAC)
[*] RipeMD-128(HMAC)
[*] Tiger-128(HMAC)
[*] Snefru-128(HMAC)
[*] MD2(HMAC)
[*] MD5(ZipMonster)
[*] MD5(HMAC(Wordpress))
[*] Skein-256(128)
[*] Skein-512(128)
[*] md5($pass.$salt) - Hashcat Mode 10
[*] md5($pass.$salt.$pass)
[*] md5($pass.md5($pass))
[*] md5($salt.$pass) - Hashcat Mode 20
[*] md5($salt.$pass.$salt) - Hashcat Mode 3810
[*] md5($salt.$pass.$username)
[*] md5($salt.'-'.md5($pass))
[*] md5($salt.md5($pass)) - Hashcat Mode 3710
... [cut] ...
评论
+1指出有多少种不同的算法产生相同类型的哈希。
–贡特拉姆·布洛姆(Guntram Blohm)
2014年11月11日14:54
谢谢,我给它添加了更多的哈希值,它们都产生相同的结果。
– 59e12ca75b3d
2014年11月12日0:08
最好的方法是找到在系统中创建新密码条目的软件,然后稍作逆转(只关注用于创建这些哈希的方法)。而且,如果您可以创建新密码,那么它将是明文攻击(容易得多)。另一方面,您也可以尝试查找正在验证密码的软件(可能隐藏在PAM模块中)。
–恐怖
2014年11月12日7:43
评论
密码ist可能与用户名混为一谈,也可能与其他名称混为一谈。如果您连续几次将同一用户的密码设置为同一密码,那么它总是相同还是不同?是的,对于给定的密码,特定用户的哈希值始终相同。系统之间也相同-您可以从一个设备中保存配置,然后将其上传到另一个设备。
最好的选择是找到正在生成此哈希的任何程序并将其重新存储。
@IgorSkochinsky不是BusyBox开源的吗?可能有问题的版本已修改,但仍然
@ user45891:我不认为BusyBox是生成这些配置文件的程序。