1
0
mirror of https://github.com/hashcat/hashcat.git synced 2024-11-27 02:18:21 +00:00
Commit Graph

1695 Commits

Author SHA1 Message Date
Jens Steube
a4200ba167 Added hash-mode 18300 (Apple File System)
Fixes https://github.com/hashcat/hashcat/issues/1686
2018-11-12 11:37:01 +01:00
R. Yushaev
47bd838e25 Add VeraCrypt Streebog support
VeraCrypt added the possibility to use Streebog-512 as hashing algorithm
for the key derivation. This commit adds the necessary VeraCrypt kernels
as well as additional HMAC-Streebog kernels.

 - Add hash-mode 13771: VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 512 bit
 - Add hash-mode 13772: VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1024 bit
 - Add hash-mode 13773: VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1536 bit
 - Add hash-mode 11750: HMAC-Streebog-256 (key = $pass), big-endian
 - Add hash-mode 11760: HMAC-Streebog-256 (key = $salt), big-endian
 - Add hash-mode 11860: HMAC-Streebog-512 (key = $salt), big-endian
 - Add test suite for hash-modes 11750, 11760 and 11860
 - Improve pure Streebog kernels
2018-11-08 11:46:31 +01:00
Royce Williams
6053f473eb trailing whitespace 2018-11-01 11:17:02 -08:00
R. Yushaev
a8eb611b1c Add HMAC-Streebog-512 (pure kernels)
Implement HMAC based on GOST 34.11-2012 Streebog-512 as well as a test
case for it. Both the PyGOST + hmac python module and the VeraCrypt HMAC
for Streebog-512 were used as references. The kernels expect the digests
to be in big-endian order according to the RFC examples for Streebog.

Fix two bugs from commit 224315dd62.

 - Add hash-mode 11850: HMAC-Streebog-512 (key = $pass), big-endian
 - Add test case for hash-mode 11850
 - Bugfix for a3-pure Streebog kernels (modes 11700 and 11800)
 - Rename a few Streebog constants in interface.h
2018-10-31 14:42:02 +01:00
Arseniy Sharoglazov
ee873da300 Added hash-modes 18200 (Kerberos 5 AS-REP etype 23) 2018-10-30 19:05:44 +03:00
R. Yushaev
224315dd62 Add pure kernels and tests for Streebog hashes
Complete Streebog support with pure kernels that allow for passwords
longer than 64 characters. Provide generic inc_hash_streebog files
for future Streebog-based hash modes (HMAC, PBKDF2, VeraCrypt).

Include streebog support in the test suite. For this, python module
PyGOST is needed. Also add clarification to hash mode description
stating that Streebog hashes are expected in big-endian byte order.
There are several implementations, including PyGOST, which default
to little-endian byte order, while the RFC examples are big-endian.

 - Add pure kernels for hash-mode 11700 (Streebog-256)
 - Add pure kernels for hash-mode 11800 (Streebog-512)
 - Tests: Add hash-modes 11700 (Streebog-256) and 11800 (Streebog-512)
2018-10-29 10:33:30 +01:00
Jens Steube
5eca3f5316 Fix kernel names in -a 1 kernels of -m 7701 and 7801 2018-10-25 11:12:26 +02:00
Jens Steube
48cf3f722b
Merge pull request #1725 from unix-ninja/master
Cleanup unused register definitions
2018-10-23 09:43:06 +02:00
unix-ninja
6196e23069 Cleanup unused register definitions 2018-10-22 15:23:41 -04:00
Jens Steube
e2a9409413
Merge pull request #1710 from unix-ninja/master
Add support for TOTP (RFC 6238)
2018-10-22 20:49:31 +02:00
unix-ninja
8c5c225d8f Optimize performance on NVIDIA GTX 2018-10-22 13:27:35 -04:00
Jens Steube
b0077860c7 Workaround some padding issues with host compiler and OpenCL JiT on 32 and 64 bit systems 2018-10-20 12:41:41 +02:00
Jens Steube
a4ac370496 Test fix for plain_t in 32 bit mode 2018-10-20 09:46:24 +02:00
Jens Steube
6d03da369b Fix gid datatype in mark_hash() 2018-10-20 02:19:39 +02:00
unix-ninja
fddfd835d2 Support 64 bit timestamps properly 2018-10-19 15:35:52 -04:00
unix-ninja
7904b9ae05 Fix kernel types to align with style guide 2018-10-19 07:56:51 -04:00
Jens Steube
0a74f058ac Synchronize salt_t datatypes in types.h and inc_types.cl 2018-10-19 10:20:13 +02:00
unix-ninja
0e5704c77e Disable NEW_SIMD_CODE for 18100 (it's not compatible) 2018-10-18 15:58:21 -04:00
unix-ninja
b657c75583 Explicity cast otp_offset 2018-10-18 09:36:57 -04:00
unix-ninja
3869ce9246 More coding style fixes 2018-10-18 08:55:55 -04:00
unix-ninja
24ab7cae2a Add a1 kernel for mode 18100 2018-10-17 16:47:58 -04:00
unix-ninja
db4ec8ed2c Fix formatting to comply with hashcat coding guidelines 2018-10-17 16:34:34 -04:00
unix-ninja
1d43540fc4 Simplify alignment masks for mode 18100 2018-10-17 11:03:20 -04:00
unix-ninja
b29b7b8188 Convert arithmetic ops to logical ops in byte alignment 2018-10-17 08:54:52 -04:00
unix-ninja
3c3b05d1e5 Resolve conflicts 2018-10-16 15:48:20 -04:00
unix-ninja
6cda8f7077 Change TOTP index from 17300 to 18100 2018-10-16 15:33:09 -04:00
unix-ninja
73aae1a734 Add a0 kernel for TOTP 2018-10-16 15:07:41 -04:00
unix-ninja
2249ab4c13 Cleanup debug code 2018-10-16 15:05:21 -04:00
unix-ninja
977b560bb4 Add support for TOTP (RFC 6238) 2018-10-16 15:05:14 -04:00
R. Yushaev
5c87720acc Add SHA3 and Keccak
The previous hash-mode 5000 covered Keccak-256 only. FIPS changed one
padding byte while adopting Keccak as the SHA3 standard, which gives us
different digests. Now we have separate kernels for SHA3 and Keccak.

 - Added hash-mode 17300 = SHA3-224
 - Added hash-mode 17400 = SHA3-256
 - Added hash-mode 17500 = SHA3-384
 - Added hash-mode 17600 = SHA3-512
 - Added hash-mode 17700 = Keccak-224
 - Added hash-mode 17800 = Keccak-256
 - Added hash-mode 17900 = Keccak-384
 - Added hash-mode 18000 = Keccak-512
 - Removed hash-mode 5000 = SHA-3 (Keccak)
2018-10-15 16:06:31 +02:00
Michael Sprecher
1892b842d7
Increased the maximum size of edata2 in Kerberos 5 TGS-REP etype 23 2018-09-12 12:25:02 +02:00
jsteube
6e1aec0563 Fix kernel name in 16801 kernel source 2018-09-02 12:43:53 +02:00
Jens Steube
466ea8eaba Fixed detection of unique ESSID in WPA-PMKID-* parser 2018-08-31 15:47:48 +02:00
Michael Sprecher
5536ab9917
Getting rid of OPTS_TYPE_HASH_COPY for Ansible Vault 2018-08-15 23:32:58 +02:00
jsteube
a5746548e8 Allow use of hash-mode 7900, 10700 and 13731 on AMD devices after workaround 2018-08-13 13:41:43 +02:00
jsteube
6469357c74 Remove SCR_TYPE macro from OpenCL code
Disable REAL_SHM access to AMD platform devices
2018-08-13 12:10:03 +02:00
jsteube
68bff94980 Workaround rocm OpenCL runtime bug when copy data from constant to local memory 2018-08-12 18:04:33 +02:00
jsteube
188a9568ce Replace double MAYBE_VOLATILE 2018-08-09 19:44:54 +02:00
jsteube
dad05d9f69 Testing: Workaround some AMD OpenCL runtime segmentation faults 2018-08-09 13:03:22 +02:00
jsteube
103fdf04a1 Fixed a invalid scalar datatype return value in hc_bytealign() where it should be a vector datatype return value 2018-08-09 11:00:08 +02:00
Jens Steube
1c280e4a6e Small performance boost for bcrypt on CPU 2018-08-02 14:20:04 +02:00
Michael Sprecher
3a321c8dce
Added hash-mode 16900 = Ansible Vault 2018-08-01 19:44:30 +02:00
jsteube
fbf434146d Add set_mark_1x4() and set_mark_1x4_S() 2018-07-28 18:03:18 +02:00
Jens Steube
14c444fd47 Replace c_append_helper_mini[] table with on-the-fly calculation in order to workaround compiler bugs in AMD OpenCL runtime 2018-07-28 13:59:55 +02:00
jsteube
88ebca40b8 Added hash-mode 16800 = WPA-PMKID-PBKDF2
Added hash-mode 16801 = WPA-PMKID-PMK
Renamed lot's of existing WPA related variables to WPA-EAPOL in order to distinguish them with WPA-PMKID variables
Renamed WPA/WPA2 to WPA-EAPOL-PBKDF2
Renamed WPA/WPA2 PMK to WPA-EAPOL-PMK
2018-07-25 16:46:06 +02:00
philsmd
2e1845ec11
fixes #1624: increase esalt/nonce buffer to 1024 for -m 11400 = SIP 2018-07-23 15:51:39 +02:00
Jens Steube
a43d3ad176 Rename some hashcat specific OpenCL functions to avoid conflicts with existing OpenCL functions from OpenCL runtime 2018-07-22 12:20:20 +02:00
Jens Steube
02a2495349 Switched array pointer types in function declarations in order to be compatible with OpenCL 2.0 2018-07-22 11:47:42 +02:00
Jens Steube
0ab7ab9cec OpenCL kernels: Removed the use of 'volatile' in inline assembly instructions where it is not needed 2018-07-21 12:29:22 +02:00
jsteube
c1622d6593 Fixed detection of AMD_GCN version in case the rocm driver is used 2018-07-21 11:52:54 +02:00
jsteube
81a447b167 Fixed a function declaration attribute in -m 8900 kernel leading to unuseable -m 9300 which shares kernel code with -m 8900 2018-06-21 13:46:53 +02:00
jsteube
32d6b3e10e OpenCL kernels: Add '-pure' prefix to kernel filenames to avoid problems caused by reusing existing hashcat installation folder 2018-06-20 14:18:17 +02:00
jsteube
547025ec47 HCCAPX management: Use advanced hints in message_pair stored by hcxtools about endian bitness of replay counter
Fixed missing code section in -m 2500 and -m 2501 to crack corrupted handshakes with a LE endian bitness base
2018-06-15 17:00:41 +02:00
Mathieu Geli
4dbc1f4a87 Implement 7701/7801 SAP CODVN half-hashes 2018-03-06 16:42:53 +03:00
jsteube
8079abffb0 Fixed a missing kernel in -m 5600 in combination with -a 3 and -O if mask is >= 16 characters 2018-02-28 11:25:52 +01:00
Jens Steube
a71c69983d Make words_buf_r in DES bitsliced kernels __constant 2018-02-21 10:50:24 +01:00
jsteube
ca1115a1ee No longer need to use 32 threads on second dimension for bitsliced algorithms 2018-02-20 01:01:50 +01:00
Jens Steube
ad50883080 Allow unroll for DES based algorithms but not bitsliced versions 2018-02-18 11:28:25 +01:00
Jens Steube
e79feb0b6f Add more reqd_work_group_size attributes to kernels 2018-02-17 22:16:05 +01:00
Jens Steube
ea2f158cf8 Give JiT a hint about bcrypt running at 8 threads always 2018-02-17 21:33:11 +01:00
Jens Steube
81b229c08a Make new c_append_helper a bit more AMD friendly 2018-02-17 15:18:19 +01:00
jsteube
3a23b275e5 Improved c_append_helper[] handling 2018-02-17 14:24:29 +01:00
jsteube
64eb9ca9ef Fix md5crypt speed on GTX1080 2018-02-17 11:45:05 +01:00
Jens Steube
aa82d8d34d Re-enable CPU optimizations and some CPU case in thread management 2018-02-16 18:56:21 +01:00
Jens Steube
483ae613ee Copy/paste error in optimized -m 2500 AUX 3 kernel 2018-02-16 11:48:11 +01:00
Jens Steube
a15c165773 Revert the pos == 0 change due to some unexpected results on nvidia 2018-02-16 11:38:08 +01:00
jsteube
874635cc49 Do not use a vector function to write into a scalar variable even if vectorize support is disabled 2018-02-16 10:48:49 +01:00
jsteube
71adf1bd09 Do not use a vector function to write into a scalar variable even if vectorize support is disabled 2018-02-16 10:28:16 +01:00
jsteube
f596d076aa Optimize some WPA comparison kernel 2018-02-16 00:30:47 +01:00
Jens Steube
e0e796bc2d More optimized -m 500, -m 1600 and -m 6300 pure kernel 2018-02-15 15:35:22 +01:00
Jens Steube
97f569a8ca More optimized -m 500, -m 1600 and -m 6300 pure kernel 2018-02-15 12:31:59 +01:00
Jens Steube
f6f16f56af A bit optimized -m 500 pure kernel 2018-02-14 19:13:23 +01:00
jsteube
b626e7f61b Optimize update functions in inc_hash_* helper files by testing for pos == 0 2018-02-14 17:31:41 +01:00
Jens Steube
ec63c2f017 switch_buffer_* function can return sooner if offset is zero 2018-02-14 11:35:00 +01:00
Jens Steube
2dddef839c Fix sha1_update_64 debugging comment 2018-02-14 11:03:35 +01:00
Jens Steube
2a19f19904 Drop -m 6800 from no-unroll list in inc_vendor.cl 2018-02-13 17:08:29 +01:00
jsteube
dfb95024bc Fix temporary datatype in wpapmk kernels 2018-02-13 16:34:00 +01:00
jsteube
fe4413797e OpenCL Kernels: Use three separate comparison kernels (depending on keyver) for WPA instead of one 2018-02-13 09:13:35 +01:00
jsteube
00bd356ade Synchronize m01000s with m00900s 2018-02-12 09:03:11 +01:00
jsteube
aa65ed28e5 Switch back c_append_helper to static 2018-02-12 09:02:37 +01:00
Jens Steube
d656e9c3a4 OpenCL Kernels: Use the kernel local buffer size as additional reference in order to limit the thread-count 2018-02-11 10:56:08 +01:00
jsteube
5951207365 Get rid of some old volatiles 2018-02-09 19:18:30 +01:00
jsteube
05a01d3843 fix some datatypes 2018-02-08 19:13:29 +01:00
jsteube
d5153539e2 Some syntax error 2018-02-08 09:49:59 +01:00
jsteube
786384664e DECLSPEC for CPU 2018-02-08 09:42:59 +01:00
jsteube
4cbd0eb812 Fix missing compressor kernel in --stdout mode 2018-02-07 22:28:52 +01:00
jsteube
512fb5f6fb No inline keyword for rules 2018-02-07 15:02:58 +01:00
jsteube
e4e1c1d515 We can't mix inline functions with static constants 2018-02-07 14:16:27 +01:00
Jens Steube
8273bb8376 NV JiT doesn't like static inline keywords 2018-02-06 22:05:15 +01:00
jsteube
3e08750900 OpenCL Kernels: Add general function declaration keyword (static inline) 2018-02-06 19:12:24 +01:00
jsteube
5391edca0d Weird macOS JiT likes this more 2018-02-05 19:39:20 +01:00
jsteube
a3a16f676f OpenCL Kernels: Add a decompressing kernel and a compressing host code in order to reduce PCIe transfer time
For details see https://hashcat.net/forum/thread-7267.html
2018-02-05 17:18:58 +01:00
jsteube
53e2b40bad Fixed a uninitialized value in OpenCL kernels 9720, 9820 and 10420 leading to absurd benchmark performance 2018-02-02 14:02:33 +01:00
jsteube
13a79cf942 Fix unoptimized Kerberos 5 TGS-REP etype 23 kernel for use on macOS 2018-01-31 21:28:46 +01:00
jsteube
e877c30ebc OpenCL Kernels: Remove password length restriction to 16 for Cisco-PIX and Cisco-ASA hashes
Fixes #1488
2018-01-27 22:21:44 +01:00
jsteube
18bb0a9493 Add missing gpu_atinit() to m02000_a0 and m02000_a1 2018-01-26 20:19:25 +01:00
jsteube
6a04e953e0 Fix missing gpu_atinit in --stdout kernel 2018-01-26 14:56:57 +01:00
jsteube
a9d5f571b7 Remove extra token at end of #include directive 2018-01-25 23:48:31 +01:00
Jens Steube
1f1eacca95 Fix -m 16600 -a 3 optimize mode kernels function declaration for CPU use 2018-01-25 19:04:30 +01:00
jsteube
553668bb9f Added hash-mode 16600 = Electrum Wallet (Salt-Type 1-3) 2018-01-25 15:28:21 +01:00
Jens Steube
7062425d2b OpenCL Kernels: Use a special kernel to initialize the password buffer used during autotune measurements to reduce startup time 2018-01-23 20:33:26 +01:00
jsteube
0796c074c3 Added -m 16500 Kernels
Also changed function declaration of parser function from const hashconfig_t to just hashconfig_t
2018-01-21 18:53:55 +01:00
jsteube
ee9ec0f9a7 Add JWT esalt datatype 2018-01-21 15:32:37 +01:00
Jens Steube
bb806d777e
Merge pull request #1493 from mohemiv/master
added -m 16400 = CRAM-MD5 Dovecot
2018-01-19 10:13:46 +01:00
jsteube
53f3da9f63 OpenCL Kernels: Use static declaraction for uXXa variables used in __constant space 2018-01-18 23:19:31 +01:00
jsteube
3a303ffce4 Replace variables from uXX to uXXa if used in __constant space 2018-01-18 23:16:11 +01:00
Arseniy Sharoglazov
928cf471fb The hash-mode for "CRAM-MD5 Dovecot" changed from 10201 to 16400 2018-01-17 11:25:21 +03:00
Arseniy Sharoglazov
798f05355f added -m 10201 = CRAM-MD5 Dovecot 2018-01-15 15:52:52 +03:00
philsmd
bf656774bb
fixes #1279: added -m 16300 = Ethereum Pre-Sale Wallet, PBKDF2-HMAC-SHA256 2017-12-20 11:41:46 +01:00
jsteube
0d89ddfcd9 Finish adding hash-mode 16200 = Apple Secure Notes 2017-12-13 12:32:38 +01:00
jsteube
f573c1d96d Add optimized -m 16100 kernels 2017-12-03 14:35:39 +01:00
jsteube
9a3cf88887 Update -m 16100 kernel to enable cracking of sequences 1, 3 and 5 2017-11-30 13:41:25 +01:00
jsteube
e5ca2e2fcb Add more kernels for -m 16100 2017-11-30 10:16:14 +01:00
jsteube
5847067c96 First working -m 16100 kernel 2017-11-29 17:00:14 +01:00
jsteube
1b312d14fd Added hash-mode 16000 = Tripcode 2017-11-11 14:44:56 +01:00
jsteube
00abb849e1 Update inc_vector.cl for ideal performance with reference GTX1080 for NV and Vega64 for AMD 2017-10-26 13:41:47 +02:00
jsteube
503f676cb0 Remove static keywords from OpenCL functions, they can cause old NV JiT compiler to fail 2017-10-20 13:23:43 +02:00
jsteube
9c832092df Fix some function declarations inside LUKS kernel 2017-10-10 01:27:32 +02:00
jsteube
b4c3df876c Fix some formating in -m 600 2017-10-09 18:45:11 +02:00
jsteube
7c2dadab17 no volatile required here 2017-09-21 20:08:24 +02:00
Jens Steube
55eaff3a45 Merge pull request #1365 from Fist0urs/DPAPI_reworked
-m 15300 reworked + splitted in 15300/15900
2017-09-21 17:02:18 +02:00
Fist0urs
e3cb3e9b4c test.pl ready and 0 error. Ready for PR 2017-09-21 16:55:30 +02:00
jsteube
7a17b8159b all() function is not working as expected in scalar datatype case 2017-09-21 12:23:33 +02:00
Fist0urs
a6294537fd Splitted DPAPI kernel in 2 to increase performances 2017-09-21 12:23:33 +02:00
jsteube
207ce9b853 all() function is not working as expected in scalar datatype case 2017-09-20 23:00:00 +02:00
jsteube
ddbe805c00 Fix last step of make_kn 2017-09-20 09:40:14 +02:00
jsteube
68f5b12754 Get rid of swap32() in make_kn() in -m 2500 2017-09-19 13:45:43 +02:00
jsteube
ab1dabebbe Fix missing include in -m 2501 2017-09-19 12:19:46 +02:00
jsteube
b14f44dcf7 Fix uninitialized keymic buffer 2017-09-19 11:58:18 +02:00
jsteube
beab5457e6 Backport WPA-PSK-SHA256-AES-CMAC to -m 2501 2017-09-19 10:22:03 +02:00
jsteube
ca1b6492e7 Some code simplify on AES CMAC 2017-09-19 01:12:29 +02:00
jsteube
4e3a642f7f Initial WPA2-PSK-SHA256-AES-CMAC support 2017-09-19 01:08:38 +02:00
jsteube
98fc02e04b Add PTK compute for keyver 3 2017-09-18 13:50:09 +02:00
jsteube
617dbb97ba Prepare migration -m 15800 into -m 2500 2017-09-18 13:21:00 +02:00
philsmd
2dadae4e9a fixed incorrect use of the esalt_bufs for -m 600 = BLAKE2-512 2017-09-17 15:28:24 +02:00
mhasbini
de7ccd88ef Fix overflow in mangle_dupechar_last function 2017-09-16 20:43:38 +03:00
jsteube
b169653b8f Fix missing return value in rule_op_mangle_toggle_at() 2017-09-08 22:49:49 +02:00
jsteube
55f653f374 Get rid of volatile in TrueCrypt kernels 2017-09-08 19:47:56 +02:00
jsteube
16e33b20fc Fix out of boundary access in -m 4700 2017-09-08 19:42:34 +02:00
jsteube
51dd982b12 Bring back some volatile for AMD 2017-09-08 14:08:21 +02:00
jsteube
9125062ffc Move volatiles for AMD closer to the problem 2017-09-08 13:32:19 +02:00
jsteube
1963b12fdc According to AMD docs, GCN 3 and 4 are the same 2017-09-08 12:46:00 +02:00
jsteube
ac9f1da747 Add fine-tuned AMD GCN control macros 2017-09-07 20:33:43 +02:00
Jens Steube
a910aea9e0 Do not use __local memory for -m 13100 if running on a device without physical shared memory 2017-09-05 17:41:55 +02:00
Jens Steube
b58aa445b4 Do not use __local memory for -m 7500 if running on a device without physical shared memory 2017-09-05 17:37:20 +02:00
Jens Steube
63f6ca5114 Do not use __local memory for whirlpool if running on a device without physical shared memory 2017-09-05 16:45:20 +02:00
jsteube
8b0e7087c7 Fixed an invalid optimization code in kernel 7700 depending on the input hash, causing the kernel to loop forever 2017-09-03 13:36:14 +02:00
jsteube
151dbc5349 Fix replace value in inc_hash_ripemd160.cl 2017-09-01 16:35:08 +02:00
jsteube
f859f466ef Fix -m 8300 in -a 0 mode 2017-09-01 16:10:29 +02:00
jsteube
f5e04254dc Fix -m 10800 in -a 0 mode 2017-09-01 16:06:42 +02:00