mirror of
https://github.com/hashcat/hashcat.git
synced 2025-07-03 21:32:35 +00:00
Merge pull request #4195 from matrix/issue_4175
Improve ASN.1 check for RSA/DSA/EC/OpenSSH Private Keys modules (22911, 22921, 22931, 22941, 22951)
This commit is contained in:
commit
40365a32d0
@ -2701,6 +2701,71 @@ DECLSPEC int asn1_detect (PRIVATE_AS const u32 *buf, const int len)
|
||||
return 1;
|
||||
}
|
||||
|
||||
DECLSPEC int asn1_check_int_tag (PRIVATE_AS const u32 *buf, const int len)
|
||||
{
|
||||
PRIVATE_AS const u8 *bytes = (PRIVATE_AS const u8 *) buf;
|
||||
|
||||
int seq_len_offset = 0;
|
||||
|
||||
if (bytes[1] < 0x80)
|
||||
{
|
||||
seq_len_offset = 2;
|
||||
}
|
||||
else if (bytes[1] == 0x81)
|
||||
{
|
||||
seq_len_offset = 3;
|
||||
}
|
||||
else if (bytes[1] == 0x82)
|
||||
{
|
||||
seq_len_offset = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pos = seq_len_offset;
|
||||
|
||||
if (pos >= len) return 0;
|
||||
if (pos + 2 > len) return 0;
|
||||
|
||||
u8 tag = bytes[pos];
|
||||
|
||||
if (tag != 0x02) return 0;
|
||||
|
||||
u8 len_byte = bytes[pos + 1];
|
||||
|
||||
int val_len = 0;
|
||||
int tmp_len = 1;
|
||||
|
||||
if (len_byte < 0x80)
|
||||
{
|
||||
val_len = len_byte;
|
||||
}
|
||||
else if (len_byte == 0x81)
|
||||
{
|
||||
if (pos + 2 >= len) return 0;
|
||||
val_len = bytes[pos + 2];
|
||||
tmp_len = 2;
|
||||
}
|
||||
else if (len_byte == 0x82)
|
||||
{
|
||||
if (pos + 3 >= len) return 0;
|
||||
val_len = (bytes[pos + 2] << 8) | bytes[pos + 3];
|
||||
tmp_len = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (pos + 1 + tmp_len + val_len > len) return 0;
|
||||
|
||||
if (val_len != 1) return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
DECLSPEC u32 check_bitmap (GLOBAL_AS const u32 *bitmap, const u32 bitmap_mask, const u32 bitmap_shift, const u32 digest)
|
||||
{
|
||||
return (bitmap[(digest >> bitmap_shift) & bitmap_mask] & (1 << (digest & 0x1f)));
|
||||
|
@ -302,6 +302,7 @@ DECLSPEC int hc_enc_next_global (PRIVATE_AS hc_enc_t *hc_enc, GLOBAL_AS const u3
|
||||
DECLSPEC int pkcs_padding_bs8 (PRIVATE_AS const u32 *data_buf, const int data_len);
|
||||
DECLSPEC int pkcs_padding_bs16 (PRIVATE_AS const u32 *data_buf, const int data_len);
|
||||
DECLSPEC int asn1_detect (PRIVATE_AS const u32 *buf, const int len);
|
||||
DECLSPEC int asn1_check_int_tag (PRIVATE_AS const u32 *buf, const int len);
|
||||
DECLSPEC u32 check_bitmap (GLOBAL_AS const u32 *bitmap, const u32 bitmap_mask, const u32 bitmap_shift, const u32 digest);
|
||||
DECLSPEC u32 check (PRIVATE_AS const u32 *digest, GLOBAL_AS const u32 *bitmap_s1_a, GLOBAL_AS const u32 *bitmap_s1_b, GLOBAL_AS const u32 *bitmap_s1_c, GLOBAL_AS const u32 *bitmap_s1_d, GLOBAL_AS const u32 *bitmap_s2_a, GLOBAL_AS const u32 *bitmap_s2_b, GLOBAL_AS const u32 *bitmap_s2_c, GLOBAL_AS const u32 *bitmap_s2_d, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2);
|
||||
DECLSPEC void mark_hash (GLOBAL_AS plain_t *plains_buf, GLOBAL_AS u32 *d_result, const u32 salt_pos, const u32 digests_cnt, const u32 digest_pos, const u32 hash_pos, const u64 gid, const u32 il_pos, const u32 extra1, const u32 extra2);
|
||||
|
@ -223,6 +223,10 @@ KERNEL_FQ void m22911_mxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -429,6 +433,10 @@ KERNEL_FQ void m22911_sxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -219,6 +219,10 @@ KERNEL_FQ void m22911_mxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -423,6 +427,10 @@ KERNEL_FQ void m22911_sxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -236,6 +236,10 @@ KERNEL_FQ void m22911_mxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -457,6 +461,10 @@ KERNEL_FQ void m22911_sxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -190,6 +190,10 @@ KERNEL_FQ void m22921_mxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -363,6 +367,10 @@ KERNEL_FQ void m22921_sxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -184,6 +184,10 @@ KERNEL_FQ void m22921_mxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -353,6 +357,10 @@ KERNEL_FQ void m22921_sxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -203,6 +203,10 @@ KERNEL_FQ void m22921_mxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -392,6 +396,10 @@ KERNEL_FQ void m22921_sxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -224,6 +224,10 @@ KERNEL_FQ void m22931_mxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -431,6 +435,10 @@ KERNEL_FQ void m22931_sxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -218,6 +218,10 @@ KERNEL_FQ void m22931_mxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -421,6 +425,10 @@ KERNEL_FQ void m22931_sxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -237,6 +237,10 @@ KERNEL_FQ void m22931_mxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -459,6 +463,10 @@ KERNEL_FQ void m22931_sxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -244,6 +244,10 @@ KERNEL_FQ void m22941_mxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -471,6 +475,10 @@ KERNEL_FQ void m22941_sxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -240,6 +240,10 @@ KERNEL_FQ void m22941_mxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -465,6 +469,10 @@ KERNEL_FQ void m22941_sxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -257,6 +257,10 @@ KERNEL_FQ void m22941_mxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -499,6 +503,10 @@ KERNEL_FQ void m22941_sxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -248,6 +248,10 @@ KERNEL_FQ void m22951_mxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -479,6 +483,10 @@ KERNEL_FQ void m22951_sxx (KERN_ATTR_RULES_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -244,6 +244,10 @@ KERNEL_FQ void m22951_mxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -473,6 +477,10 @@ KERNEL_FQ void m22951_sxx (KERN_ATTR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -261,6 +261,10 @@ KERNEL_FQ void m22951_mxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
@ -507,6 +511,10 @@ KERNEL_FQ void m22951_sxx (KERN_ATTR_VECTOR_ESALT (pem_t))
|
||||
|
||||
if (asn1_ok == 0) continue;
|
||||
|
||||
const int asn1_tag_ok = asn1_check_int_tag (dec, real_len);
|
||||
|
||||
if (asn1_tag_ok == 0) continue;
|
||||
|
||||
const u32 r0 = search[0];
|
||||
const u32 r1 = search[1];
|
||||
const u32 r2 = search[2];
|
||||
|
@ -106,6 +106,7 @@
|
||||
- Fixed vector datatypes usage for HIP
|
||||
- Fix missing check for -j and -k before writing hashcat.dictstat2 which can lead to false negatives
|
||||
- Handle signed/unsigned PDF permission P value for all PDF hash-modes
|
||||
- Improve ASN.1 check for RSA/DSA/EC/OpenSSH Private Keys modules (22911, 22921, 22931, 22941, 22951)
|
||||
- Prevent Hashcat from hanging by checking during startup whether the output file is a named pipe
|
||||
- Skip chained generated rules that exceed the maximum number of function calls
|
||||
|
||||
|
@ -21,8 +21,7 @@ static const char *HASH_NAME = "RSA/DSA/EC/OpenSSH Private Keys ($0$)";
|
||||
static const u64 KERN_TYPE = 22911;
|
||||
static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE;
|
||||
static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE
|
||||
| OPTS_TYPE_PT_GENERATE_LE
|
||||
| OPTS_TYPE_SUGGEST_KG;
|
||||
| OPTS_TYPE_PT_GENERATE_LE;
|
||||
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
|
||||
static const char *ST_PASS = "hashcat";
|
||||
static const char *ST_HASH = "$sshng$0$8$7532262427635482$1224$e1b1690703b83fd0ab6677c89a00dfce57fc2f345ebd2b2993bf0d8bb267449d08839213dc234dd23c7a181077e00080ced2700a161c4352ce5574b9758926f09106157715b6d756cf6dd844e473c6bb3c2b591cdbf684394a49935f7d62bcc324c1392aee499e3d6235db0556d27adc6e35ef4654ee5fc72e60dff605484e75c6fd6ae29cb476f8a658dbcce9f9591a9dad023f6d9aa223c3d56261e056c5cafa93438937e0762b989cd10e6280a09488be07423c549514ff9686338e72dbe6bdc5015944739a9f183cacf04c1c141dc8c8d8aa8636c85a6c0578a5983ed33d5ff5ee6a66a54d86defd1c4f9d6a59446861bf4cc7bd667bc92b9d328c154f442d1d03d4d370dcc065a1d5420c5b71e4c35a457e11a0c9f489636559a2ac53bb4cfee2b0058f8a9d1ccc38a844ee0d1ff5d6938427bf24d6e4c69f10e6ebce9187d51e867ac3b362b9c6149712e8378a9ac91d1aab1a7a5f088ddbdead0cc754c30961b7a71284b5c6658f7219632de6007d5145a1ae062f807234230ff73a3436ce28ae3bfa0f880d1e49ec8a288da18db14905bc7a7b061a51c429876db81ad528efb469ba2bf46c7344aadc7d082efc83ede3894bf6b1738151e642f6f60a41069ad862d2f4f8d55733bd6d85086d1d9bb1913a9d4680ea0b49f712c590a3c18b91ef745b9bdf461af67879d94f9672de4abe0b7d2e4efba1f8bb6ffbb4a095742d5cff0e225b1b5e166854bb9821e4283d97f80855c81efea1eb3e7881a6049186650bfbf68f30302c069883668e373c12ce9a39de8d7c1be22a717d9c74410c45093aae03c5de8cc0ec662fe3bb81bf952e17b854001bcad9b36cab2f473a609878a419b735c66f3732bd5540fb1cba9fe081f87cecf63a6243cd2049dfa25a763ef2e0633bfb13a411207d8ca1c8f3c0c30b8a7583436cad7bd8c28ba625b9c53dc280b314671b0a55d75a28d3b21de250e3c554b86ca5d32821ab912c6607687c4dc5b3214216a7409621ce6fb89bd5309a7dd8ec9ae4b751bdfb6b5d12d733a89d87722dbdb1b15df5463241f0f56c401e095ea5dee07c0ded1f11ffbd7c93a41add0cfd8c57b44f255fdfd1929cd7d068d6cf951ba8ab0d718996fec10aaa26a4314d4c1272f744adf3c7e4d710ae171c072a7c61c2b020a445cf32be3083d3bc62083f2385bbae4fadddf8714258b996abd574638891bb918e877fdef3a4856b910999a6dc9dbd13c0e938825cd895c96d39cb86bb283a53fac7090c71a9320c6a34af309d2218af64c895f5eff8eee28cf94e7a7437a0922d83bfa39f08bb40e354d9ace07aa586a446dc217ede98b6ca9637545cc11ef56732fc9cd3dc06e459d868137b75d39a87e6721a95f2b84e57c94ef703486a2857821e497b990c95080015d825b6dc63d666f66cfa35912e607c3b650d81dc98c0c53322796ff9249cdfe7a375e1d01607816a85bb43f3969767a9aaed07161344e714d7e875b40f3524f95e476e605dbd2ac51e36075701fa93b66f36470796ebf5d35690a297e19729f9ac59d98622e3ad3e45a2914bdd2b807446c8b430e54c1a607fd25a69bf469a61d2e3bc3697b786c047bc60dbeabe6372d71e9b7c9787bb2559c663a011f864ecf32793e65f4bdd76370d99f602ddcbc7e5aa7d2749f36e8d0f209a378782882bc06ee5b5014c2a6248469f0fe0fc5369383db0bc898c0760b8c40fe20342fa5b";
|
||||
|
@ -22,7 +22,6 @@ static const u64 KERN_TYPE = 22921;
|
||||
static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE;
|
||||
static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE
|
||||
| OPTS_TYPE_PT_GENERATE_LE
|
||||
| OPTS_TYPE_SUGGEST_KG
|
||||
| OPTS_TYPE_MAXIMUM_THREADS;
|
||||
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
|
||||
static const char *ST_PASS = "hashcat";
|
||||
|
@ -21,8 +21,7 @@ static const char *HASH_NAME = "RSA/DSA/EC/OpenSSH Private Keys ($1, $3$)";
|
||||
static const u64 KERN_TYPE = 22931;
|
||||
static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE;
|
||||
static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE
|
||||
| OPTS_TYPE_PT_GENERATE_LE
|
||||
| OPTS_TYPE_SUGGEST_KG;
|
||||
| OPTS_TYPE_PT_GENERATE_LE;
|
||||
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
|
||||
static const char *ST_PASS = "hashcat";
|
||||
static const char *ST_HASH = "$sshng$1$16$14987802644369864387956120434709$1232$ffa56007ed83e49fdc439c776a9dec9656521385073bf71931a2c6503c93917e560cc98940c8cdcf2c709265e9ba20783a3bacc63423a98e40ea8999182613e1f5a80084719ca0e5c390299de1ea947df41f2ff1489bddfe13c6128612c5c82b7fc1ef5105ea28adda7b415729c66fb6cbc4b6b51ef518f74e1971f88e0cfabd69e8c4270678e360149ce15716fef4736df296a20d2607ef269a3c69896fc423683d6057e00064f84e04caf4d4663b51b307cfb1d1dbd6b3bf67764a08847c7b83fa5544e6a1e950f16acda8c8bac30675bc3cea9c7e06790ddc7cd1e4177b93bdd0d9edf9cdceb4a4444b437d967acdb92274a7b10d9cd1073ab4e9b5dd468aabe1f40a02b2e51f19840798c2311b625037eba5f0a0256638b42577385f4d4c730a9cedf4e244ce74656a21bf16756857866433dbb1feff9c4323d234d4235b72ed5a3adc3a6c9bae373472d64b7882d1762911326f330cb42d8ab7931f1ad2de56c4e6e8a6e838108cf9a2728ffa356796f63d94723b1d0aad5b4fcea16ab0730e7553804ad9ffb6ecdbdd925fca05ca1c076ed09a30df8a5add44a43c36b92248dc8dd4605bc2ee557e6e4438abf9ea7d047f764c55a5ba46a41719b9c55e54ad5fbfce6a89b9283c163d8464ecdda5aaf113d038b659950b8c79e87abad019eb77535cc8e63f760a4c87ca344a563475361766df718519b1b7e4b3ab511952fcc9b011f1d8971f9261509139b739afcc2c9acd006ee714dffc8c9a4df0d54770d70c8c28c27cdf9ee7301fd64530ef0ec3eb044fb891b193a7aaa9158625ed9f5a842c86ed09e5377d90a69aea4c5fd321bc3ac9b2a0d34509a5de0b72ac3f81304895c4381e01136b1e8654cec20c220c0ac6a1300f031ffc68ddeab554279024c122589b91556feef394a1663b42fb8460af5fe881cb1cd4984b84be75125411b1d3fc236dd81f99b872aad511d28944e91d2f8853f11be85b6930a15b4d0b3d215d76416970ade5726979c1d737980fb68ecb03d1196a69f4013dd2e296a75a4c69664b0162cb8b22af18c536a8ce51f39b1282f2fe07e6b034627f075cfb20dffee62817aabeea60befea1ac93ba608d957e4030e41be7bc55275bc4037300f6ba736370eb7c9240629853c95f9304b7ffd26a10d55ae735fa943e29aa9ed437b61955fc16cde9ea7a3658d831bdbc38befa45cec80da9ccb6d21da83ff666e32d7c5c0ca0ade2cd685407ee701c1c707fc5c80b22f3af42ac1353fcdc09a459086434db7c78792decdc91572363478a14d1256346a9ac6336b8183ed6252106aa546dd092c0bbb464cdb44ae165d67d1be135877587de3bbbd02b5ef6473f125366f6dae0536ebbe18ab8de8ce2ef3d26d6dd400319e7d07ae276b081e94446e9a72877cf23e9ba52406b1842e3a0dcf7bbdc63a1336b894be475613cc917eb47724f64e621bfc3053d7423e3e2fb141a3368dc8881fa20e040e9a6bc2e7348e923e4c20e506566b8663bf7d557e792cbe4adffcf9c520d58565d77f6bf1c9ed5fa3209f8047765d01b9c264e97a3ef9ff90766ad69a4f508041e168bf0f7419e54ec88bdc4c858231cdba60774a27cc459cd65b46e26a620a43033788c6e2ee8916670568d6e6c700515f2cbca3eef62028ce75245cf8f99cd6e0ba7839a7b335c797a06ff80571950ebec2fccebb89265025b3250e4a5c9c3a62f471324556fc4db044cebe97f62c86913";
|
||||
|
@ -21,8 +21,7 @@ static const char *HASH_NAME = "RSA/DSA/EC/OpenSSH Private Keys ($4$)";
|
||||
static const u64 KERN_TYPE = 22941;
|
||||
static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE;
|
||||
static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE
|
||||
| OPTS_TYPE_PT_GENERATE_LE
|
||||
| OPTS_TYPE_SUGGEST_KG;
|
||||
| OPTS_TYPE_PT_GENERATE_LE;
|
||||
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
|
||||
static const char *ST_PASS = "hashcat";
|
||||
static const char *ST_HASH = "$sshng$4$16$01684556100059289727957814500256$1232$b04d45fdfdf02a9ca91cbc9c53f9e59956822c72c718929aca9251cffd9ac48e48c490b7b6b6043df3a70cf5fbcc2f358b0e8b70d39155c93032b0fd79ec68f6cb8b7de8422ec95cb027a9eaacc453b0b99b5d3f8d6771d6b95b0242a1d8664de8598e8d6b6d6ee360fda5ae0106061a79e88ef2eef98a000b638f8fdc367155ec2d1120b366f74f0933efe5d174e7107db29dc8fb592b22b9837114415d78036c116b2d31b2080c7159442f2d1a61900f5ae4913548c8e7fc716dd4f812bc7e57b2dd5d3f56c6ae0e91c3bc2897d9341cb282d86b915d43cf20ad16fbd2056104529576142354a430281f5e458923ef8014ff9950351798bfcbbcb66cb98bb2cccea48c134b0e05e978d4308c82617869b207f0ed7b227893f2cdde2d6b6a98246de8a2494d5e018a84724780fbe8d1fa91c922908d18ccffbbbbc81e6578fe8bb5c8596a8cf689f3f12b810dee95887e12439e487313229a37913e3cd12bddba3bac94fab03aad8607f6034fa87f7a7a2ac74d0c0a6e6bc905f569221861e1e388cf379cda799d7b56eac58440d17fe97fa68a537d34317376c00dfa9a99e04725a0d2fcf27ee50463e725813c96fe2eed16de59e8a6944d903e11f7923d57ae6d4a1f8085ce19f4d180f13027806f3965fdf875ea092f103f28a5f42f356254958fa7eb0bca2389a6ad4e305640cc64501e6b16330b063037b1cf6fe64131f308e50d9d1dc687ffa487681941084ff21cb54c1b5903b7a78d9913595fa0124f1dde49b1bee2ea83837efe34e2cd6051a4a7a1437eaa84ad332ffd9946b952ed634948789d9541820a0f9c6f44ab6d3cad645743c76c54e79bfdc4fb8e43a0fd7d871baea98e78131bc530b6d736fa1ec5ac70438609497ab2ff8d516146b4b1b3488791cb84dccc0096b570e2ffb3a93cccefec0af7ce616a64466d2d4196941ba9e051dc00ed05e963a7b4a286973ee0b5df4fd92dfb0b229b10730d454832d945c6a596862212d109ce78ac14ffb5d775548b2f3e2ae4be059a24465cc10b7c810f8cc3db7cb327619cc104ebea575ac097d20701dc623f7aa893b785cc20851f3972390e00ab3355655f7d5bea323832c17d8e078e917843ef7fcaca349366092b6743bf7511d5fceb2d992fbd18574be532365be41ad80a114704a64a7aefdf98c907aa10e4d5c547dd8d21647ea9d5c975fe1b24525d94c3eb03e071742fd5f09f22da669b649fac9f87d8cf16c475d006421f69a9b2d5c4037ccc9bf9f0aa0e7df8ac5fcb0d88a528833f9640799026d2fe8694fa1a0307c5f24002172464b290bedd85667800edbff2f1de7119e5b65730a24922e42d53ef28b0a59817a298426dc72e29a85e59e3d777b19eb934bcd620a903aff72927cdbe7253f77694ab0ef970378b4347f6166ca2a40b23cc31970f0cbefd08d2d72bf2c3961d67c73a5a24f75a65e540dc5735520b0d81250af8980ddca3e22a9b25773afd27c76e564ff437d4208df14d802f1d0848390f45924cdd6ced3c9ffb726bb358b334ea0e0481acdd103f2db05f508f62588621d0b8fa274a69eba0d418d85086d9139391f7e28dc54fe9bab801f1fea854f27ad2e5907ae6f9a4b4527d16a8af3c8cbe2c6d82209dc6c7da060da58294eb00380598330c4c19d45581d09e04c0153a8559700b3a8ceab9b8124f84d397356cd9e38e3916afc1f63a3e1dfbc7df8dd0a7d0704e38a0ea523dfc2b9defd5";
|
||||
|
@ -21,8 +21,7 @@ static const char *HASH_NAME = "RSA/DSA/EC/OpenSSH Private Keys ($5$)";
|
||||
static const u64 KERN_TYPE = 22951;
|
||||
static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE;
|
||||
static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE
|
||||
| OPTS_TYPE_PT_GENERATE_LE
|
||||
| OPTS_TYPE_SUGGEST_KG;
|
||||
| OPTS_TYPE_PT_GENERATE_LE;
|
||||
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
|
||||
static const char *ST_PASS = "hashcat";
|
||||
static const char *ST_HASH = "$sshng$5$16$52935050547964524511665675049973$1232$febee392e88cea0086b3cdefd3efec8aedb6011ca4ca9884ef9776d09559109c328fd4daef62ea4094a588d90d4617bc0348cc1205ae140e5bdca4e81bf7a8ff4fcc9954d3548ba9a0d143a504750d04d41c455d6100b33dacc5f9a10036ae75be69a81471e945554a52ca12b95640a08f607eab70c4a750dc48917f3c9ee23c537e9b4a49728a9773a999dfd842cf9a38155029ea5d42f617dbec630889d078ffadaf3ff28eed65389a73528f3d0863fffd9a740edd59ca223595e330bca37ac5a003ac556d2b6232f9900fc8654586e73e7b2d83327d61b2fc561a78aacc8aff473bb3d18ddccae87d84de143a8a98550d955d01d4e6074ac62aa0af0bca58a0c53d0d7cf1a26345c1bd3eca7a0c0e711f5c7f942d50bc872be971d0c17dbc5a88f043a937ff5d28c5ef8d8d291e511d070b14a0cc696ee5088a944b113bc7e697cdc793e931c3f0f3a892b44aad1468e6c45becdcaa89febda17fcd5fe6ff430695e04b5b6271e032e3529315367e56337777a5b342c19d3ebc7441ac0f79b93749ad4526b8be0a5cf5756363aac93da6dc19dbfff15bacbbf2dae7a549afdab8e0589321ac0a612576bbfe06fde086075d1244450a3667f793ccc81fd5ccc5b1d08e6f447e3e0cd89b901049bedb1e65b23ede0d8f00ff1c984743b50342c50408e9060ed6a809a7b068972c9542cd91de0767c02a73d192ea600008bf4a6ef339c7f2db767346cc479e61abedb4ba4a67f72e91ac49a2e92bb4bacd97aed0b044c258e2004fa0fb8da3678a57d37187c1246c90a107540161462145fa7307a6d4db34694fb1b090f07bedb9ca0e71aefd3ce5601b87778fd6b66391c3c61d528a5965f91370f52a72f0622620329f96c5dd68561e0f6576f3a2bc5c21a95aed569edc4ed979746b32909178e550907c5f41d7b24480e81a874b931c23f13517ab5f9331f11819d982bf9e5b8a03034b47c8785f8902611eac26716976bccd51d19864f10ee1fbd62f8b0149c22ab06205a20f9f9fcb0a5279552a8923c3ace2e134f6b190653f430c1a4b82f762283028d9c0c8d1a3428731f4f405f40f947f297a43aa3ba2267bbc749a5677da92a63d51d24aa5ca3e9e1d35a8143d7b4bac481f0c56754e980a60cf2d330797fc81f6c6f405760f1257103ac6edf10976c9005f4a261f7aad055400c4f18dc445eb3a403740ad6c58afa4e8edb30fad907488baf0ede2eb3d3687d1e8724dd69c7bd14b90d4f113fc9f84a2c01ab00917f53cd879a4031b1c91a4d4d7d9e712a584959137001d331f6725dca81ea6cc55fac7fc0e8b578dec0983ca98c3789cdf83507e4c3ba056fdcbea26693a313077290d7c6695f4cc6de4848532f0149cc06dbf4c76d02944178520585923b636196ea2cbcacc43950b308fc7929e85de076a2ab65c9bd8ebb0c04c041281178a48d8d2165d315b3e74abf0a38505b71ae5b2a6e7f87861e174cff873a1f61980b53ef3acdd2ea6a25425b162e5dc0bc1aa2992585d2da1625a6593cc2d4fe8c86eeb4df0e27cda54685f7245e5c48063d489e8d93bd5303bebe633139dcdd04afa005d03d1185a64e8711c0b09d9d0b38b35d6ef1b1e35353a7a4396863650a3843c687a00396dd3db53e8d28baf29101abb9f628ba896b091618f24187f6eeb814e4b64130768fb37e89b9b3230e50a7e5aba852a983525c8f193deb1fe27b334cdc3bdfa4c301d04907ee29a848393";
|
||||
|
Loading…
Reference in New Issue
Block a user