mirror of
https://github.com/hashcat/hashcat.git
synced 2024-11-21 23:58:07 +00:00
commit
58155986cf
@ -217,7 +217,7 @@ KERNEL_FQ void m03610_m04 (KERN_ATTR_RULES ())
|
||||
| uint_to_hex_lower8 ((d >> 8) & 255) << 16;
|
||||
w1[3] = uint_to_hex_lower8 ((d >> 16) & 255) << 0
|
||||
| uint_to_hex_lower8 ((d >> 24) & 255) << 16;
|
||||
|
||||
|
||||
w2[0] = 0x80;
|
||||
w2[1] = 0;
|
||||
w2[2] = 0;
|
||||
@ -226,7 +226,7 @@ KERNEL_FQ void m03610_m04 (KERN_ATTR_RULES ())
|
||||
w3[1] = 0;
|
||||
w3[2] = 32 * 8;
|
||||
w3[3] = 0;
|
||||
|
||||
|
||||
a = MD5M_A;
|
||||
b = MD5M_B;
|
||||
c = MD5M_C;
|
||||
@ -617,7 +617,7 @@ KERNEL_FQ void m03610_s04 (KERN_ATTR_RULES ())
|
||||
| uint_to_hex_lower8 ((d >> 8) & 255) << 16;
|
||||
w1[3] = uint_to_hex_lower8 ((d >> 16) & 255) << 0
|
||||
| uint_to_hex_lower8 ((d >> 24) & 255) << 16;
|
||||
|
||||
|
||||
w2[0] = 0x80;
|
||||
w2[1] = 0;
|
||||
w2[2] = 0;
|
||||
@ -631,7 +631,7 @@ KERNEL_FQ void m03610_s04 (KERN_ATTR_RULES ())
|
||||
b = MD5M_B;
|
||||
c = MD5M_C;
|
||||
d = MD5M_D;
|
||||
|
||||
|
||||
MD5_STEP (MD5_Fo, a, b, c, d, w0[0], MD5C00, MD5S00);
|
||||
MD5_STEP (MD5_Fo, d, a, b, c, w0[1], MD5C01, MD5S01);
|
||||
MD5_STEP (MD5_Fo, c, d, a, b, w0[2], MD5C02, MD5S02);
|
||||
|
@ -282,7 +282,7 @@ KERNEL_FQ void m03610_m04 (KERN_ATTR_BASIC ())
|
||||
w3[1] = 0;
|
||||
w3[2] = 32 * 8;
|
||||
w3[3] = 0;
|
||||
|
||||
|
||||
a = MD5M_A;
|
||||
b = MD5M_B;
|
||||
c = MD5M_C;
|
||||
|
@ -202,7 +202,7 @@ DECLSPEC void m03610m (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
|
||||
w3_t[1] = 0;
|
||||
w3_t[2] = 32 * 8;
|
||||
w3_t[3] = 0;
|
||||
|
||||
|
||||
a = MD5M_A;
|
||||
b = MD5M_B;
|
||||
c = MD5M_C;
|
||||
|
@ -496,7 +496,7 @@ KERNEL_FQ void m31400_m04 (KERN_ATTR_RULES_ESALT (scrtv2_t))
|
||||
we_t = SHA256_EXPAND (wc_t, w7_t, wf_t, we_t); SHA256_STEP (SHA256_F0o, SHA256_F1o, c, d, e, f, g, h, a, b, we_t, SHA256C3e);
|
||||
wf_t = SHA256_EXPAND (wd_t, w8_t, w0_t, wf_t); SHA256_STEP (SHA256_F0o, SHA256_F1o, b, c, d, e, f, g, h, a, wf_t, SHA256C3f);
|
||||
|
||||
u32x digest[8];
|
||||
u32x digest[8];
|
||||
|
||||
digest[0] = a + make_u32x (SHA256M_A);
|
||||
digest[1] = b + make_u32x (SHA256M_B);
|
||||
@ -725,7 +725,7 @@ KERNEL_FQ void m31400_s04 (KERN_ATTR_RULES_ESALT (scrtv2_t))
|
||||
we_t = SHA256_EXPAND (wc_t, w7_t, wf_t, we_t); SHA256_STEP (SHA256_F0o, SHA256_F1o, c, d, e, f, g, h, a, b, we_t, SHA256C3e);
|
||||
wf_t = SHA256_EXPAND (wd_t, w8_t, w0_t, wf_t); SHA256_STEP (SHA256_F0o, SHA256_F1o, b, c, d, e, f, g, h, a, wf_t, SHA256C3f);
|
||||
|
||||
u32x digest[8];
|
||||
u32x digest[8];
|
||||
|
||||
digest[0] = a + make_u32x (SHA256M_A);
|
||||
digest[1] = b + make_u32x (SHA256M_B);
|
||||
|
@ -562,7 +562,7 @@ KERNEL_FQ void m31400_m04 (KERN_ATTR_ESALT (scrtv2_t))
|
||||
we_t = SHA256_EXPAND (wc_t, w7_t, wf_t, we_t); SHA256_STEP (SHA256_F0o, SHA256_F1o, c, d, e, f, g, h, a, b, we_t, SHA256C3e);
|
||||
wf_t = SHA256_EXPAND (wd_t, w8_t, w0_t, wf_t); SHA256_STEP (SHA256_F0o, SHA256_F1o, b, c, d, e, f, g, h, a, wf_t, SHA256C3f);
|
||||
|
||||
u32x digest[8];
|
||||
u32x digest[8];
|
||||
|
||||
digest[0] = a + make_u32x (SHA256M_A);
|
||||
digest[1] = b + make_u32x (SHA256M_B);
|
||||
@ -868,7 +868,7 @@ KERNEL_FQ void m31400_s04 (KERN_ATTR_BASIC ())
|
||||
we_t = SHA256_EXPAND (wc_t, w7_t, wf_t, we_t); SHA256_STEP (SHA256_F0o, SHA256_F1o, c, d, e, f, g, h, a, b, we_t, SHA256C3e);
|
||||
wf_t = SHA256_EXPAND (wd_t, w8_t, w0_t, wf_t); SHA256_STEP (SHA256_F0o, SHA256_F1o, b, c, d, e, f, g, h, a, wf_t, SHA256C3f);
|
||||
|
||||
u32x digest[8];
|
||||
u32x digest[8];
|
||||
|
||||
digest[0] = a + make_u32x (SHA256M_A);
|
||||
digest[1] = b + make_u32x (SHA256M_B);
|
||||
|
@ -117,13 +117,13 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
* separator ('$') being at a fixed length from the end of the line. Checksum
|
||||
* is 24 characters in length, so then there should be a '$' at line_len - 25
|
||||
*/
|
||||
|
||||
|
||||
if (line_buf[line_len - 25] == '$')
|
||||
{
|
||||
// JtR format
|
||||
krb5asrep->format = 2;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
// Hashcat format
|
||||
krb5asrep->format = 1;
|
||||
@ -186,7 +186,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
|
||||
const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token);
|
||||
|
||||
|
||||
if (rc_tokenizer != PARSER_OK) return (rc_tokenizer);
|
||||
|
||||
const u8 *user_pos;
|
||||
@ -225,7 +225,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
account_info_len = token.len[1];
|
||||
|
||||
memcpy (krb5asrep->account_info, salt_pos, account_info_len);
|
||||
|
||||
|
||||
/**
|
||||
* JtR format only has the final salt/account_info value (combination of
|
||||
* user and domain), rather than separate "user" and "domain" values. Since
|
||||
@ -250,7 +250,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
}
|
||||
|
||||
u8 *account_info_ptr = (u8 *) krb5asrep->account_info;
|
||||
|
||||
|
||||
// Domain must be uppercase
|
||||
u8 domain[128];
|
||||
|
||||
@ -262,7 +262,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
memcpy (account_info_ptr, domain, domain_len);
|
||||
memcpy (account_info_ptr + domain_len, user_pos, user_len);
|
||||
}
|
||||
|
||||
|
||||
krb5asrep->account_info_len = account_info_len;
|
||||
|
||||
// hmac-sha1 is reduced to 12 bytes
|
||||
|
@ -117,13 +117,13 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
* separator ('$') being at a fixed length from the end of the line. Checksum
|
||||
* is 24 characters in length, so then there should be a '$' at line_len - 25
|
||||
*/
|
||||
|
||||
|
||||
if (line_buf[line_len - 25] == '$')
|
||||
{
|
||||
// JtR format
|
||||
krb5asrep->format = 2;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
// Hashcat format
|
||||
krb5asrep->format = 1;
|
||||
@ -185,7 +185,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
}
|
||||
|
||||
const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token);
|
||||
|
||||
|
||||
if (rc_tokenizer != PARSER_OK) return (rc_tokenizer);
|
||||
|
||||
const u8 *user_pos;
|
||||
@ -224,7 +224,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
account_info_len = token.len[1];
|
||||
|
||||
memcpy (krb5asrep->account_info, salt_pos, account_info_len);
|
||||
|
||||
|
||||
/**
|
||||
* JtR format only has the final salt/account_info value (combination of
|
||||
* user and domain), rather than separate "user" and "domain" values. Since
|
||||
@ -249,7 +249,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
}
|
||||
|
||||
u8 *account_info_ptr = (u8 *) krb5asrep->account_info;
|
||||
|
||||
|
||||
// Domain must be uppercase
|
||||
u8 domain[128];
|
||||
|
||||
@ -261,7 +261,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
memcpy (account_info_ptr, domain, domain_len);
|
||||
memcpy (account_info_ptr + domain_len, user_pos, user_len);
|
||||
}
|
||||
|
||||
|
||||
krb5asrep->account_info_len = account_info_len;
|
||||
|
||||
// hmac-sha1 is reduced to 12 bytes
|
||||
|
Loading…
Reference in New Issue
Block a user