Update -m 299xx modules to test for 56 bit instead of 32 bit

pull/3494/head
jsteube 2 years ago
parent fd46096b57
commit 2e684efeb7

@ -23,7 +23,7 @@ typedef struct encdatavault
u32 keychain[32];
u32 iv[2];
u32 ct;
u32 ct[2];
u32 algo;
u32 version;
@ -405,11 +405,17 @@ KERNEL_FQ void m29910_comp (KERN_ATTR_TMPS_ESALT (encdatavault_tmp_t, encdatavau
}
}
const u32 ct = esalt_bufs[DIGESTS_OFFSET_HOST].ct;
u32 ct[2];
const u32 pt = ct ^ ctr[0][1];
ct[0] = esalt_bufs[DIGESTS_OFFSET_HOST].ct[0];
ct[1] = esalt_bufs[DIGESTS_OFFSET_HOST].ct[1];
if (pt == 0xd2c3b4a1)
u32 pt[2];
pt[0] = ct[0] ^ ctr[0][1];
pt[1] = ct[1] ^ ctr[0][2];
if ((pt[0] == 0xd2c3b4a1) && ((pt[1] & 0x00ffffff) == 0))
{
if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0)
{

@ -23,7 +23,7 @@ typedef struct encdatavault
u32 keychain[32];
u32 iv[2];
u32 ct;
u32 ct[2];
u32 algo;
u32 version;
@ -475,11 +475,17 @@ KERNEL_FQ void m29920_comp (KERN_ATTR_TMPS_ESALT (encdatavault_tmp_t, encdatavau
}
}
const u32 ct = esalt_bufs[DIGESTS_OFFSET_HOST].ct;
u32 ct[2];
const u32 pt = ct ^ ctr[0][1];
ct[0] = esalt_bufs[DIGESTS_OFFSET_HOST].ct[0];
ct[1] = esalt_bufs[DIGESTS_OFFSET_HOST].ct[1];
if (pt == 0xd2c3b4a1)
u32 pt[2];
pt[0] = ct[0] ^ ctr[0][1];
pt[1] = ct[1] ^ ctr[0][2];
if ((pt[0] == 0xd2c3b4a1) && ((pt[1] & 0x00ffffff) == 0))
{
if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0)
{

@ -23,7 +23,7 @@ typedef struct encdatavault
u32 keychain[32];
u32 iv[2];
u32 ct;
u32 ct[2];
u32 algo;
u32 version;
@ -290,11 +290,17 @@ KERNEL_FQ void m29930_comp (KERN_ATTR_TMPS_ESALT (encdatavault_tmp_t, encdatavau
}
}
const u32 ct = esalt_bufs[DIGESTS_OFFSET_HOST].ct;
u32 ct[2];
const u32 pt = ct ^ ctr[0][1];
ct[0] = esalt_bufs[DIGESTS_OFFSET_HOST].ct[0];
ct[1] = esalt_bufs[DIGESTS_OFFSET_HOST].ct[1];
if (pt == 0xd2c3b4a1)
u32 pt[2];
pt[0] = ct[0] ^ ctr[0][1];
pt[1] = ct[1] ^ ctr[0][2];
if ((pt[0] == 0xd2c3b4a1) && ((pt[1] & 0x00ffffff) == 0))
{
if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0)
{

@ -23,7 +23,7 @@ typedef struct encdatavault
u32 keychain[32];
u32 iv[2];
u32 ct;
u32 ct[2];
u32 algo;
u32 version;
@ -360,11 +360,17 @@ KERNEL_FQ void m29940_comp (KERN_ATTR_TMPS_ESALT (encdatavault_tmp_t, encdatavau
}
}
const u32 ct = esalt_bufs[DIGESTS_OFFSET_HOST].ct;
u32 ct[2];
const u32 pt = ct ^ ctr[0][1];
ct[0] = esalt_bufs[DIGESTS_OFFSET_HOST].ct[0];
ct[1] = esalt_bufs[DIGESTS_OFFSET_HOST].ct[1];
if (pt == 0xd2c3b4a1)
u32 pt[2];
pt[0] = ct[0] ^ ctr[0][1];
pt[1] = ct[1] ^ ctr[0][2];
if ((pt[0] == 0xd2c3b4a1) && ((pt[1] & 0x00ffffff) == 0))
{
if (hc_atomic_inc (&hashes_shown[DIGESTS_OFFSET_HOST]) == 0)
{

@ -25,7 +25,7 @@ static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE
| OPTS_TYPE_PT_GENERATE_LE;
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
static const char *ST_PASS = "hashcat";
static const char *ST_HASH = "$encdv-pbkdf2$1$1$bd12fd9e9c4252ac$8e0d56af$32$6837851711084114787901783636162937895530378506030719195563133051$100000";
static const char *ST_HASH = "$encdv-pbkdf2$1$1$2a634ff38de7bd65$da30f6488f23d250$32$8411766641676379804327452599148252868336714192465947587879023912$100000";
u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; }
u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; }
@ -47,7 +47,7 @@ typedef struct encdatavault
u32 keychain[32];
u32 iv[2];
u32 ct;
u32 ct[2];
u32 algo;
u32 version;
@ -121,8 +121,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_HEX;
token.sep[4] = '$';
token.len_min[4] = 8;
token.len_max[4] = 8;
token.len_min[4] = 16;
token.len_max[4] = 16;
token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_HEX;
@ -182,7 +182,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
const u8 *ct_pos = token.buf[4];
encdatavault->ct = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[ 0]));
encdatavault->ct[0] = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[0]));
encdatavault->ct[1] = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[8]));
// salt length
@ -215,8 +216,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
// hash
digest[0] = encdatavault->ct; // very little comparison material, mark?
digest[1] = 0;
digest[0] = encdatavault->ct[0];
digest[1] = encdatavault->ct[1];
digest[2] = 0;
digest[3] = 0;
@ -227,13 +228,14 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
{
const encdatavault_t *encdatavault = (const encdatavault_t *) esalt_buf;
const int line_len = snprintf (line_buf, line_size, "%s%u$%u$%08x%08x$%08x$32$%08x%08x%08x%08x%08x%08x%08x%08x$%u",
const int line_len = snprintf (line_buf, line_size, "%s%u$%u$%08x%08x$%08x%08x$32$%08x%08x%08x%08x%08x%08x%08x%08x$%u",
SIGNATURE_ENCDATAVAULT,
encdatavault->version,
encdatavault->algo,
encdatavault->iv[0],
encdatavault->iv[1],
encdatavault->ct,
encdatavault->ct[0],
encdatavault->ct[1],
salt->salt_buf[0],
salt->salt_buf[1],
salt->salt_buf[2],

@ -25,7 +25,7 @@ static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE
| OPTS_TYPE_PT_GENERATE_LE;
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
static const char *ST_PASS = "hashcat";
static const char *ST_HASH = "$encdv-pbkdf2$3$1$130571bbf372e0bf$111d5ca7$32$2429089346200226659014233592924299796009937640146227905527403333$100000$fec66270ae31528b4fe4dbfe4034a9698fcdf28daee644a63f561fdf91d6ed4e91491a65570a1789b10e1d6480cffe9d6b2c5b1be360ba690e15c6b8d04bbc7c561889416062efa8fd16e14356c922b2536356e8097ac421663eba859b812ace02f41d4e471f5a46e0cee149edaa46fd1be0347d59247320286ad270d2d45ed5";
static const char *ST_HASH = "$encdv-pbkdf2$3$1$ce7801561a78723a$92d57beb35641626$32$4865411258241441439695058324389632216617876787029059122102544908$100000$0fcd759f2a0b8687a63bd70db4af46735199cacd2e67df549bfa643ac2610f23bcc533d693be54f3307d9fb14057d53eed528079a90c160bf9bde5cce8e0283539d97bb536029ebb8b641e18ecf8d1af44e3e161a47e263830eb0b3de53052c3f36a4e6f5068b14c7aabd449c63969948ac27adbd111762583ac779d53156e9b";
u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; }
u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; }
@ -47,7 +47,7 @@ typedef struct encdatavault
u32 keychain[32];
u32 iv[2];
u32 ct;
u32 ct[2];
u32 algo;
u32 version;
@ -121,8 +121,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_HEX;
token.sep[4] = '$';
token.len_min[4] = 8;
token.len_max[4] = 8;
token.len_min[4] = 16;
token.len_max[4] = 16;
token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_HEX;
@ -189,7 +189,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
const u8 *ct_pos = token.buf[4];
encdatavault->ct = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[ 0]));
encdatavault->ct[0] = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[0]));
encdatavault->ct[1] = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[8]));
// salt length
@ -231,8 +232,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
// hash
digest[0] = encdatavault->ct; // very little comparison material, mark?
digest[1] = 0;
digest[0] = encdatavault->ct[0];
digest[1] = encdatavault->ct[1];
digest[2] = 0;
digest[3] = 0;
@ -250,13 +251,14 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
u32_to_hex (byte_swap_32 (encdatavault->keychain[i]), (u8 *) tmp_buf + j);
}
const int line_len = snprintf (line_buf, line_size, "%s%u$%u$%08x%08x$%08x$32$%08x%08x%08x%08x%08x%08x%08x%08x$%u$%s",
const int line_len = snprintf (line_buf, line_size, "%s%u$%u$%08x%08x$%08x%08x$32$%08x%08x%08x%08x%08x%08x%08x%08x$%u$%s",
SIGNATURE_ENCDATAVAULT,
encdatavault->version,
encdatavault->algo,
encdatavault->iv[0],
encdatavault->iv[1],
encdatavault->ct,
encdatavault->ct[0],
encdatavault->ct[1],
salt->salt_buf[0],
salt->salt_buf[1],
salt->salt_buf[2],

@ -25,7 +25,7 @@ static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE
| OPTS_TYPE_PT_GENERATE_LE;
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
static const char *ST_PASS = "hashcat";
static const char *ST_HASH = "$encdv$1$1$a36ce62ab8a2701b$8c5d1f2c";
static const char *ST_HASH = "$encdv$1$1$c3b2325acd041cc5$125027145bd58e4c";
u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; }
u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; }
@ -47,7 +47,7 @@ typedef struct encdatavault
u32 keychain[32];
u32 iv[2];
u32 ct;
u32 ct[2];
u32 algo;
u32 version;
@ -116,8 +116,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_HEX;
token.sep[4] = '$';
token.len_min[4] = 8;
token.len_max[4] = 8;
token.len_min[4] = 16;
token.len_max[4] = 16;
token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_HEX;
@ -159,13 +159,15 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
const u8 *ct_pos = token.buf[4];
encdatavault->ct = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[ 0]));
encdatavault->ct[0] = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[0]));
encdatavault->ct[1] = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[8]));
// salt fixed
salt->salt_buf[0] = encdatavault->ct;
salt->salt_buf[0] = encdatavault->ct[0];
salt->salt_buf[1] = encdatavault->ct[1];
salt->salt_len = 4;
salt->salt_len = 8;
// iter fixed
@ -175,8 +177,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
// hash
digest[0] = encdatavault->ct; // very little comparison material, mark?
digest[1] = 0;
digest[0] = encdatavault->ct[0];
digest[1] = encdatavault->ct[1];
digest[2] = 0;
digest[3] = 0;
@ -187,13 +189,14 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
{
const encdatavault_t *encdatavault = (const encdatavault_t *) esalt_buf;
const int line_len = snprintf (line_buf, line_size, "%s%u$%u$%08x%08x$%08x",
const int line_len = snprintf (line_buf, line_size, "%s%u$%u$%08x%08x$%08x%08x",
SIGNATURE_ENCDATAVAULT,
encdatavault->version,
encdatavault->algo,
encdatavault->iv[0],
encdatavault->iv[1],
encdatavault->ct);
encdatavault->ct[0],
encdatavault->ct[1]);
return line_len;
}

@ -25,7 +25,7 @@ static const u64 OPTS_TYPE = OPTS_TYPE_STOCK_MODULE
| OPTS_TYPE_PT_GENERATE_LE;
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
static const char *ST_PASS = "hashcat";
static const char *ST_HASH = "$encdv$3$1$5dad3dca84d2c099$a0219b93$6ed2f9c289bb8febc14ede2412b64333e9b59c4f783e62bbd01a111ae53444b3b8510b79ec0d4eedee50c2dec3e4539a42e1107626c4c0ee2c3cf36241fb965ae81b15a0d29044f9e0aa61eeb01e988de1f24b25e744d5927cb8a4c4844f4e4bd3f0f5a1bbf731158871b756c1818e4f47f3efd6bc8d09f59bbef8ae089a8184";
static const char *ST_HASH = "$encdv$3$1$57eb2fd014e80ab8$d9efd5b50d7d2c96$4d155873a6619957b8e30739d729e8a7b147573a839603fe5dcfdec186c0cb622ddda17ae077dbd77b8a7193e2e975c03f4ccb9052ffbcb6cf419aa9dcd2f7c917ffb4f243fae96cef2f96b804879e9e02b1fcaa4e1b0e765cb138fd0993cda006384a1e690d4058e107cfb7e214bf0217ea7b405af3924db4fa839efedbea59";
u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; }
u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return DGST_POS0; }
@ -47,7 +47,7 @@ typedef struct encdatavault
u32 keychain[32];
u32 iv[2];
u32 ct;
u32 ct[2];
u32 algo;
u32 version;
@ -116,8 +116,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_HEX;
token.sep[4] = '$';
token.len_min[4] = 8;
token.len_max[4] = 8;
token.len_min[4] = 16;
token.len_max[4] = 16;
token.attr[4] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_HEX;
@ -165,7 +165,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
const u8 *ct_pos = token.buf[4];
encdatavault->ct = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[ 0]));
encdatavault->ct[0] = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[0]));
encdatavault->ct[1] = byte_swap_32 (hex_to_u32 ((const u8 *) &ct_pos[8]));
// keychain
@ -178,9 +179,10 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
// salt fixed
salt->salt_buf[0] = encdatavault->ct;
salt->salt_buf[0] = encdatavault->ct[0];
salt->salt_buf[1] = encdatavault->ct[1];
salt->salt_len = 4;
salt->salt_len = 8;
// iter fixed
@ -190,8 +192,8 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
// hash
digest[0] = encdatavault->ct; // very little comparison material, mark?
digest[1] = 0;
digest[0] = encdatavault->ct[0];
digest[1] = encdatavault->ct[1];
digest[2] = 0;
digest[3] = 0;
@ -209,13 +211,14 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
u32_to_hex (byte_swap_32 (encdatavault->keychain[i]), (u8 *) tmp_buf + j);
}
const int line_len = snprintf (line_buf, line_size, "%s%u$%u$%08x%08x$%08x$%s",
const int line_len = snprintf (line_buf, line_size, "%s%u$%u$%08x%08x$%08x%08x$%s",
SIGNATURE_ENCDATAVAULT,
encdatavault->version,
encdatavault->algo,
encdatavault->iv[0],
encdatavault->iv[1],
encdatavault->ct,
encdatavault->ct[0],
encdatavault->ct[1],
tmp_buf);
return line_len;

Loading…
Cancel
Save