mirror of
https://github.com/hashcat/hashcat.git
synced 2025-02-08 21:52:51 +00:00
Merge pull request #270 from philsmd/pr-hlfmt-hash-len-check
added check for hash_len/hash_buf after calls to hlfmt_hash ()
This commit is contained in:
commit
5d886658da
@ -97,6 +97,7 @@ double TARGET_MS_PROFILE[3] = { 8, 16, 96 };
|
|||||||
#define HL_MODE_FILE 4
|
#define HL_MODE_FILE 4
|
||||||
#define HL_MODE_ARG 5
|
#define HL_MODE_ARG 5
|
||||||
|
|
||||||
|
#define HLFMTS_CNT 11
|
||||||
#define HLFMT_HASHCAT 0
|
#define HLFMT_HASHCAT 0
|
||||||
#define HLFMT_PWDUMP 1
|
#define HLFMT_PWDUMP 1
|
||||||
#define HLFMT_PASSWD 2
|
#define HLFMT_PASSWD 2
|
||||||
@ -107,7 +108,17 @@ double TARGET_MS_PROFILE[3] = { 8, 16, 96 };
|
|||||||
#define HLFMT_NETNTLM2 8
|
#define HLFMT_NETNTLM2 8
|
||||||
#define HLFMT_NSLDAP 9
|
#define HLFMT_NSLDAP 9
|
||||||
#define HLFMT_NSLDAPS 10
|
#define HLFMT_NSLDAPS 10
|
||||||
#define HLFMTS_CNT 11
|
|
||||||
|
#define HLFMT_TEXT_HASHCAT "native hashcat"
|
||||||
|
#define HLFMT_TEXT_PWDUMP "pwdump"
|
||||||
|
#define HLFMT_TEXT_PASSWD "passwd"
|
||||||
|
#define HLFMT_TEXT_SHADOW "shadow"
|
||||||
|
#define HLFMT_TEXT_DCC "DCC"
|
||||||
|
#define HLFMT_TEXT_DCC2 "DCC 2"
|
||||||
|
#define HLFMT_TEXT_NETNTLM1 "NetNTLMv1"
|
||||||
|
#define HLFMT_TEXT_NETNTLM2 "NetNTLMv2"
|
||||||
|
#define HLFMT_TEXT_NSLDAP "nsldap"
|
||||||
|
#define HLFMT_TEXT_NSLDAPS "nsldaps"
|
||||||
|
|
||||||
#define ATTACK_MODE_STRAIGHT 0
|
#define ATTACK_MODE_STRAIGHT 0
|
||||||
#define ATTACK_MODE_COMBI 1
|
#define ATTACK_MODE_COMBI 1
|
||||||
@ -5148,6 +5159,25 @@ static void hlfmt_user (uint hashfile_format, char line_buf[BUFSIZ], int line_le
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *strhlfmt (const uint hashfile_format)
|
||||||
|
{
|
||||||
|
switch (hashfile_format)
|
||||||
|
{
|
||||||
|
case HLFMT_HASHCAT: return ((char *) HLFMT_TEXT_HASHCAT); break;
|
||||||
|
case HLFMT_PWDUMP: return ((char *) HLFMT_TEXT_PWDUMP); break;
|
||||||
|
case HLFMT_PASSWD: return ((char *) HLFMT_TEXT_PASSWD); break;
|
||||||
|
case HLFMT_SHADOW: return ((char *) HLFMT_TEXT_SHADOW); break;
|
||||||
|
case HLFMT_DCC: return ((char *) HLFMT_TEXT_DCC); break;
|
||||||
|
case HLFMT_DCC2: return ((char *) HLFMT_TEXT_DCC2); break;
|
||||||
|
case HLFMT_NETNTLM1: return ((char *) HLFMT_TEXT_NETNTLM1); break;
|
||||||
|
case HLFMT_NETNTLM2: return ((char *) HLFMT_TEXT_NETNTLM2); break;
|
||||||
|
case HLFMT_NSLDAP: return ((char *) HLFMT_TEXT_NSLDAP); break;
|
||||||
|
case HLFMT_NSLDAPS: return ((char *) HLFMT_TEXT_NSLDAPS); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ((char *) "Unknown");
|
||||||
|
}
|
||||||
|
|
||||||
static uint hlfmt_detect (FILE *fp, uint max_check)
|
static uint hlfmt_detect (FILE *fp, uint max_check)
|
||||||
{
|
{
|
||||||
// Exception: those formats are wrongly detected as HLFMT_SHADOW, prevent it
|
// Exception: those formats are wrongly detected as HLFMT_SHADOW, prevent it
|
||||||
@ -10914,7 +10944,16 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
hlfmt_hash (hashlist_format, input_buf, input_len, &hash_buf, &hash_len);
|
hlfmt_hash (hashlist_format, input_buf, input_len, &hash_buf, &hash_len);
|
||||||
|
|
||||||
if (hash_len)
|
bool hash_fmt_error = 0;
|
||||||
|
|
||||||
|
if (hash_len < 1) hash_fmt_error = 1;
|
||||||
|
if (hash_buf == NULL) hash_fmt_error = 1;
|
||||||
|
|
||||||
|
if (hash_fmt_error)
|
||||||
|
{
|
||||||
|
log_info ("WARNING: failed to parse hashes using the '%s' format", strhlfmt (hashlist_format));
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (opts_type & OPTS_TYPE_HASH_COPY)
|
if (opts_type & OPTS_TYPE_HASH_COPY)
|
||||||
{
|
{
|
||||||
@ -11142,6 +11181,18 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
hlfmt_hash (hashlist_format, line_buf, line_len, &hash_buf, &hash_len);
|
hlfmt_hash (hashlist_format, line_buf, line_len, &hash_buf, &hash_len);
|
||||||
|
|
||||||
|
bool hash_fmt_error = 0;
|
||||||
|
|
||||||
|
if (hash_len < 1) hash_fmt_error = 1;
|
||||||
|
if (hash_buf == NULL) hash_fmt_error = 1;
|
||||||
|
|
||||||
|
if (hash_fmt_error)
|
||||||
|
{
|
||||||
|
log_info ("WARNING: failed to parse hashes using the '%s' format", strhlfmt (hashlist_format));
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (username)
|
if (username)
|
||||||
{
|
{
|
||||||
char *user_buf = NULL;
|
char *user_buf = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user