New format -m 13400, Keepass 1 (AES/Twofish) and Keepass 2 (AES)

This commit is contained in:
Fist0urs
2016-04-02 14:36:02 +02:00
parent d0e7ee6824
commit 52b17a602f
12 changed files with 2712 additions and 10 deletions

View File

@@ -71,7 +71,7 @@
#define SHA1C03 0xca62c1d6u
#endif
#if defined _SHA256_ || defined _PDF17L8_ || defined _SEVEN_ZIP_ || defined _ANDROIDFDE_ || defined _CLOUDKEY_ || defined _SCRYPT_ || defined _PBKDF2_SHA256_ || defined _SHA256_SHA1_ || defined _MS_DRSR_ || defined _ANDROIDFDE_SAMSUNG_ || defined _RAR5_
#if defined _SHA256_ || defined _PDF17L8_ || defined _SEVEN_ZIP_ || defined _ANDROIDFDE_ || defined _CLOUDKEY_ || defined _SCRYPT_ || defined _PBKDF2_SHA256_ || defined _SHA256_SHA1_ || defined _MS_DRSR_ || defined _ANDROIDFDE_SAMSUNG_ || defined _RAR5_ || defined _KEEPASS_
/**
* SHA256 Constants
*/

View File

@@ -186,7 +186,7 @@
}
#endif
#if defined _SHA256_ || defined _PDF17L8_ || defined _SEVEN_ZIP_ || defined _ANDROIDFDE_ || defined _CLOUDKEY_ || defined _SCRYPT_ || defined _PBKDF2_SHA256_ || defined _SHA256_SHA1_ || defined _MS_DRSR_ || defined _ANDROIDFDE_SAMSUNG_ || defined _RAR5_
#if defined _SHA256_ || defined _PDF17L8_ || defined _SEVEN_ZIP_ || defined _ANDROIDFDE_ || defined _CLOUDKEY_ || defined _SCRYPT_ || defined _PBKDF2_SHA256_ || defined _SHA256_SHA1_ || defined _MS_DRSR_ || defined _ANDROIDFDE_SAMSUNG_ || defined _RAR5_ || defined _KEEPASS_
#define SHIFT_RIGHT_32(x,n) ((x) >> (n))

View File

@@ -344,6 +344,7 @@ extern hc_thread_mutex_t mux_display;
#define HT_13100 "Kerberos 5 TGS-REP etype 23"
#define HT_13200 "AxCrypt"
#define HT_13300 "AxCrypt in memory SHA1"
#define HT_13400 "Keepass 1 (AES/Twofish) and Keepass 2 (AES)"
#define HT_00011 "Joomla < 2.5.18"
#define HT_00012 "PostgreSQL"
@@ -683,6 +684,8 @@ extern hc_thread_mutex_t mux_display;
#define DISPLAY_LEN_MAX_13200 1 + 7 + 1 + 1 + 1 + 1 + 50 + 1 + 32 + 1 + 48 + 1 + 20480
#define DISPLAY_LEN_MIN_13300 1 + 12 + 1 + 32
#define DISPLAY_LEN_MAX_13300 1 + 12 + 1 + 40
#define DISPLAY_LEN_MIN_13400 1 + 7 + 1 + 1 + 1 + 1 + 1 + 1 + 32 + 1 + 64 + 1 + 32 + 1 + 64 + 1 + 1 + 1 + 1
#define DISPLAY_LEN_MAX_13400 1 + 7 + 1 + 1 + 10 + 1 + 3 + 1 + 64 + 1 + 64 + 1 + 32 + 1 + 64 + 1 + 4 + 1 + 100000
#define DISPLAY_LEN_MIN_11 32 + 1 + 16
#define DISPLAY_LEN_MAX_11 32 + 1 + 32
@@ -945,6 +948,7 @@ extern hc_thread_mutex_t mux_display;
#define KERN_TYPE_KRB5TGS 13100
#define KERN_TYPE_AXCRYPT 13200
#define KERN_TYPE_SHA1_AXCRYPT 13300
#define KERN_TYPE_KEEPASS 13400
/**
* signatures
@@ -1017,6 +1021,7 @@ extern hc_thread_mutex_t mux_display;
#define SIGNATURE_KRB5TGS "$krb5tgs$23"
#define SIGNATURE_AXCRYPT "$axcrypt$*1"
#define SIGNATURE_AXCRYPT_SHA1 "$axcrypt_sha1"
#define SIGNATURE_KEEPASS "$keepass$"
/**
* Default iteration numbers
@@ -1069,6 +1074,7 @@ extern hc_thread_mutex_t mux_display;
#define ROUNDS_ANDROIDFDE_SAMSUNG 4096
#define ROUNDS_RAR5 (1 << 15)
#define ROUNDS_AXCRYPT 10000
#define ROUNDS_KEEPASS 6000
/**
* salt types
@@ -1580,6 +1586,7 @@ int ms_drsr_parse_hash (char *input_buf, uint input_len, hash_t *hash
int androidfde_samsung_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);
int axcrypt_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);
int sha1axcrypt_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);
int keepass_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);
void load_kernel (const char *kernel_file, int num_devices, size_t *kernel_lengths, const u8 **kernel_sources);
void writeProgramBin (char *dst, u8 *binary, size_t binary_size);

View File

@@ -136,6 +136,25 @@ typedef struct
} krb5tgs_t;
typedef struct
{
u32 version;
u32 algorithm;
u32 final_random_seed[8];
u32 transf_random_seed[8];
u32 enc_iv[4];
u32 contents_hash[8];
/* specific to version 1 */
u32 contents_len;
u32 contents[12500];
/* specific to version 2 */
u32 expected_bytes[8];
} keepass_t;
typedef struct
{
uint salt_buf[16];
@@ -596,6 +615,12 @@ typedef struct
} axcrypt_tmp_t;
typedef struct
{
u32 tmp_digest[8];
} keepass_tmp_t;
typedef struct
{
u32 random[2];