jsteube
c1d5d2ff45
Improve grouping of include calls as a preparation
5 years ago
jsteube
305a044ec6
Remove some old function headers
5 years ago
jsteube
7d4bea41a0
Get rid of OpenCL/inc_hash_constants.h and OpenCL/inc_hash_functions.cl
5 years ago
jsteube
59ecdbd319
Add volatile to inline assembly instructions, it has no influence on cracking performance but compile time reduces
5 years ago
Jens Steube
af129d32da
Merge pull request #1941 from s3inlc/master
...
Added hash mode 19500
5 years ago
Sein Coray
836c91c8c2
Merge branch 'master' of https://github.com/s3inlc/hashcat
5 years ago
Sein Coray
17083b8f56
applied requested final changes
5 years ago
jsteube
e0f875463f
Fix HAS_VBFE use on AMDGPU driver
5 years ago
jsteube
5ef67a8ab7
Apply previous blowfish optimization for -m 3200 also on -m 9000 and -m 18600
5 years ago
Sein Coray
1143cef606
Merge branch 'master' into master
5 years ago
Sein Coray
7321b03102
Updated mode 19500 based on comments
5 years ago
jsteube
5ecbcde945
Cracking bcrypt: Use a feedback from the OpenCL runtime to dynamically find out optimal thread count
5 years ago
jsteube
9a70655f34
No more need for rcon[] in AES
5 years ago
jsteube
7cb510f1ce
More manually unrolled cipher code
5 years ago
jsteube
a063e9ef62
Remove automatic unrolling on some ciphers and replace with manually unrolled code
5 years ago
jsteube
70d1343d57
Fix variables s_Ch and s_Cl in whirlpool hashes in non REAL_SHM mode
5 years ago
jsteube
970e5f3518
Fix -m 6100 in optimized mode for use with REAL_SHM
5 years ago
jsteube
218322f630
Support for inline VeraCrypt PIM Brute-Force
5 years ago
Fist0urs
afb010870a
Add hash modes 19600 (krb5tgs enctype 17) and 19700 (krb5tgs enctype 18)
5 years ago
jsteube
26d7602bbd
No longer need reqd_work_group_size() in OpenCL kernels since modules taken care of this using threads_min and threads_max
5 years ago
jsteube
85452e12be
Fix inc_cipher_des.cl for vector use
5 years ago
jsteube
84d6b8ecc1
Add function prototypes in OpenCL kernels to make some compilers happy
5 years ago
jsteube
ce32d57f9b
Make use of inc_cipher_des.cl in -m 3100
5 years ago
jsteube
27610008cb
Testwise disable aligned constants
5 years ago
jsteube
aeb570ca8b
Add inc_cipher_des.cl and make use of SHM_TYPE
5 years ago
jsteube
8c47a947a1
Fix some includes in -m 14600
5 years ago
Jens Steube
bc8ffadccc
Remove more occurances of netntlm_t in Whirlpool kernel
5 years ago
Jens Steube
07b8cafcad
Fix datatypes in -m 14600
5 years ago
Jens Steube
d64529ed47
Fix kernel header in -m 14900
5 years ago
Jens Steube
fda04609cd
Fix datatypes in -m 14600
5 years ago
Jens Steube
898000b7aa
Fix datatypes in -m 12400
5 years ago
Jens Steube
09b8bfc3a5
Fix datatypes in -m 10700
5 years ago
Jens Steube
7932d8c91f
Fix datatypes in -m 64xx and -m 137xx
5 years ago
Jens Steube
34850df1c0
Fix datatypes in -m 2501 and -m 16801
5 years ago
Jens Steube
74abff44d9
Move remaining module specific typedefs and structures from inc_types.cl to kernels
5 years ago
Jens Steube
30681e5151
Move remaining module specific typedefs and structures from inc_types.cl to kernels
5 years ago
Jens Steube
4bce25dd9d
Move remaining module specific typedefs and structures from inc_types.cl to kernels
5 years ago
Jens Steube
cace799187
Move more no unrolling exceptions from inc_vendor.cl to specific modules
5 years ago
Sein Coray
ee97d18af9
Added hash mode 19500
5 years ago
Sein Coray
deacf3a2b9
fix constant name for sha224
5 years ago
jsteube
eb07d2108c
Fixed cracking of NetNTLMv1 passwords in mask-attack mode if mask > length 16 (optimized kernels only)
5 years ago
jsteube
8d6a69b2a9
Fix salt array for -m 19300 in -a 3 mode if SIMD is used
5 years ago
jsteube
a9bafb7edb
Add more valid plaintext pattern for -m 12700/15200
5 years ago
jsteube
dc9279c95c
New Strategy: Instead of using volatile, mark the mode as unstable. Remove all volatiles
6 years ago
jsteube
7c1120b784
Migrate unroll handling for -m 15900 from OpenCL/inc_vendor.cl to module_jit_build_options()
6 years ago
jsteube
ed7765d8fd
Manually unroll aes128_InvertKey and aes256_InvertKey to workaround some JiT compiler errors
6 years ago
jsteube
0fce6b663b
Testwise remove all hardcoded volatiles from cipher includes
6 years ago
jsteube
1714382daa
Migrate unroll handling for -m 14100 from OpenCL/inc_vendor.cl to module_jit_build_options()
6 years ago
jsteube
b0a83b28d1
Migrate unroll handling for -m 12300 from OpenCL/inc_vendor.cl to module_jit_build_options()
6 years ago
jsteube
1937b67595
Migrate unroll handling for -m 8200 from OpenCL/inc_vendor.cl to module_jit_build_options()
6 years ago
jsteube
fee37ac4c3
Migrate unroll handling for -m 8000 from OpenCL/inc_vendor.cl to module_jit_build_options()
6 years ago
jsteube
f92ebc6586
Fix -m 15200 and -m 12700 search string in kernel
6 years ago
jsteube
0b1169e523
My Wallet: Added additional plaintext pattern used in newer versions
6 years ago
jsteube
93760dab34
Fix -m 8100 in pure kernel mode for password length 256
6 years ago
jsteube
88a051629c
Support module specific JiT compiler build options
6 years ago
jsteube
a5743c5572
Fix invalid kernel declaration in optimized Whirlpool kernel
6 years ago
jsteube
4359418918
OpenCL Runtime: Not using amd_bytealign (amd_bitalign is fine) on AMDGPU driver drastically reduces JiT segfaults
6 years ago
jsteube
e1fe3e755b
Optimize some switch_buffer_* functions for generic OpenCL devices (CPU, various OSX, ...)
6 years ago
jsteube
23917455ef
Added hash-mode 19300 sha1(..)
6 years ago
jsteube
87c24200da
Added QNX /etc/shadow hash cracking support
...
- Added hash-mode 19000 QNX /etc/shadow (MD5)
- Added hash-mode 19100 QNX /etc/shadow (SHA256)
- Added hash-mode 19200 QNX /etc/shadow (SHA512)
Implements #35
6 years ago
jsteube
5da1e4b872
Fixed maximum password length limit which was announced as 256 but actually was 255
6 years ago
jsteube
b1a056f1b0
Add hc_lop_0x96 as template for eventual later use
6 years ago
jsteube
540b405e3a
Replace IS_ROCM with HAS_VPERM and HAS_VADD3
6 years ago
jsteube
2c0c82c8af
OpenCL Runtime: Workaround JiT compiler error on AMDGPU driver compiling WPA-EAPOL-PBKDF2 OpenCL kernel
6 years ago
jsteube
69c3ea2d27
Fixed invalid transfer from __constant to __local memory in -m 9100
6 years ago
jsteube
be365acef8
Remove some optimization in -m 18700 which ROCM doesn't like
6 years ago
jsteube
d0d4ce9f8c
Added hash-mode 18800 Blockchain, My Wallet, Second Password (SHA256)
6 years ago
jsteube
684256022e
Small fix for -m 18900
6 years ago
jsteube
29fedf2c41
Added hash-mode 18900 Android Backup
6 years ago
jsteube
3dd0a7140d
Respect combs_mode in -a 1/6/7 attack in -m 18700
6 years ago
jsteube
a0fba5fb11
Improve -m 18700 cracking speed
6 years ago
jsteube
b4d52e412b
Rename -m 18700 to Java Object hashCode()
6 years ago
jsteube
51eb9ebff7
Added hash-mode 18700 DJB 32
6 years ago
jsteube
9fc193ce47
Bitcoin Wallet: Be more user friendly by allowing a larger data range for ckey and public_key
6 years ago
jsteube
63fac132e3
Fix cracking streebog 256/512 hmac cracking with password length > 64
6 years ago
jsteube
f4e43da456
Fix whirlpool final() handling
6 years ago
jsteube
158b93832c
Fixed cracking of Cisco-PIX and Cisco-ASA MD5 passwords in mask-attack mode if mask > length 16
6 years ago
jsteube
dd293f7a93
Fixed -m 600 in -a 3 mode for passwords > 16
6 years ago
jsteube
e571b890e9
Fixed length check for raw PBKDF2 modules
6 years ago
jsteube
c16a3feabc
Add -m 16500 module
6 years ago
jsteube
57da64533c
Add missing kernel in -m 1100 -a 3 -O mode
6 years ago
jsteube
3d203af066
Add module for -m 5700 and -m 5800
6 years ago
jsteube
0bd244c051
Undef some macros to avoid collisions
6 years ago
jsteube
c88a837196
Rename d_scryptVX_buf to d_extraX_buf
6 years ago
R. Yushaev
393916c0bf
Allow cracking non-unique salts for Office 2013
...
With hash-mode 9600 (MS Office 2013) there can be multiple hashes with
the same salt but with different encryption verifiers in esalt_bufs.
This commit adds the functionality to execute _comp kernels for
different hashes after deriving their common key once.
Fixes #1826
6 years ago
R. Yushaev
b5a7e967c1
Add support for Open Document Format 1.1
...
Contains a kernel for the ODF 1.1 encryption implemented in OpenOffice.
The algorithm uses a SHA-1 checksum, a PBKDF2-HMAC-SHA1 key derivation
with 1024 iterations and Blowfish-CFB encryption.
Valid hashes can be extracted with the libreoffice2john.py script,
available from the John the Ripper Jumbo repository at
https://github.com/magnumripper/JohnTheRipper/blob/bleeding-jumbo/run/libreoffice2john.py
You have to remove the filename suffix at the end of the hash before
passing it to hashcat. Also see 'hashcat -m18600 --example-hashes'.
You can leave the filename prefix if you use the --username option to
process those hashes.
- Add hash-mode 18600 (Open Document Format (ODF) 1.1 (SHA-1, Blowfish))
- Tests: add hash-mode 18600 (Open Document Format (ODF) 1.1 (SHA-1, Blowfish))
6 years ago
Sein Coray
a70a0513bf
Added hash mode 18500 sha1(md5(md5($pass)))
...
closes hashcat/hashcat#1652
6 years ago
Jens Steube
15ece0902f
Merge pull request #1804 from Naufragous/odf-cracking
...
Add support for Open Document Format 1.2
6 years ago
Jens Steube
9d213147e8
Merge pull request #1805 from mcovalt/electrum_salt_type_2
...
Electrum Salt-Type 2
6 years ago
R. Yushaev
6a5b0c821e
Add support for Open Document Format 1.2
...
Contains a kernel for the latest ODF 1.2 encryption implemented in
LibreOffice. The algorithm uses a SHA-256 checksum, a PBKDF2-HMAC-SHA1
key derivation with 100000 iterations and key stretching and AES-CBC
encryption.
Valid hashes can be extracted with the libreoffice2john.py script,
available from the John the Ripper Jumbo repository at
https://github.com/magnumripper/JohnTheRipper/blob/bleeding-jumbo/run/libreoffice2john.py
You have to remove the filename suffix at the end of the hash before
passing it to hashcat. Also see 'hashcat -m18400 --example-hashes'.
You can leave the filename prefix if you use the --username option to
process those hashes.
- Add hash-mode 18400 (Open Document Format (ODF) 1.2 (SHA-256, AES))
- Tests: add hash-mode 18400 (Open Document Format (ODF) 1.2 (SHA-256, AES))
6 years ago
Matt Covalt
bb9328f48b
Add salt type 2 support for optimized functions
6 years ago
Matt Covalt
a913db6390
Add salt type 2 support for pure functions
6 years ago
Matt Covalt
36bdcf844a
Add function to check if vector represents a Base58 string
6 years ago
Sein Coray
c941e55a35
Extended IKE PSK md5/sha1 (-m 5300/5400) to print hashes correctly
6 years ago
R. Yushaev
5efebb7b48
Cleanup VeraCrypt related code
...
Remove unnecessary constant variables by hardcoring values instead of
looking up. Precalculate swaps that are known at compile time. Hardcode
hashes_shown offset as zero for all TC / VC kernels.
6 years ago
R. Yushaev
baf47d409e
Add Camellia support for VeraCrypt kernels
...
Adds suport for the Japanese cipher Camellia with 256-bit keys as used
by VeraCrypt.
- Add Camellia header decryption checks to all VeraCrypt kernels
- Add test containers for remaining cipher combinations
6 years ago
Jens Steube
65abccc93e
Migrate inc_truecrypt_keyboard.cl into inc_common.cl
6 years ago
Jens Steube
fca4f7e8a6
Prepare to use --keyboard-layout-mapping for algorithms other than TC/VC
6 years ago
Jens Steube
ee2854ec2a
Support multi-byte characters for TC/VC keyboard layout mapping tables
6 years ago
R. Yushaev
8b04be0e93
Add Kuznyechik support for VeraCrypt kernels
...
Adds support for the Russian cipher specified in GOST R 34.12-2015, also
known as Kuznyechik (Grasshopper).
- Add Kuznyechik header decryption checks to all VeraCrypt kernels
- Add test containers for available Kuznyechik cipher combinations
6 years ago
Jens Steube
c15f741dca
Fixed out-of-boundary read in DPAPI masterkey file v2 OpenCL kernel
6 years ago
Jens Steube
e117e750fc
Add restrict keyword to kernel declarations to help the compiler with caching optimizations
6 years ago
Jens Steube
64dfd40113
Give the compiler a hint for automatic optimizations based on password length
6 years ago
Jens Steube
53c8600089
Give the compiler a hint for automatic optimizations based on password length
6 years ago
Jens Steube
0e428b3c40
Give the compiler a hint for automatic optimizations based on password length
6 years ago
Jens Steube
c9da60c73a
Fixed thread count maximum for pure kernels in straight attack mode
6 years ago
Jens Steube
2a6444c05a
Give the compiler a hint for automatic optimizations based on password length
6 years ago
Jens Steube
ae577410d0
OpenCL Device: Do a real query on OpenCL local memory type instead of just assuming it
6 years ago
jsteube
240f6298be
Fix some leftovers from switching kernel parameters to macros
6 years ago
jsteube
eec1fba4c3
Fix some leftovers from switching kernel parameters to macros
6 years ago
jsteube
a930c5c24e
Do not use KERN_ATTR_VECTOR() if there is no SIMD
6 years ago
jsteube
c672182b44
Fix some leftovers from switching kernel parameters to macros
6 years ago
R. Yushaev
fbbe5f6282
Use macros in remaining kernel functions
...
The 7zip, scrypt and stdout kernels differ from the others in their
function declarations somewhat. Unify them and substitute with macros.
Also remove a few superfluous (bogus) consts which were introduced in
the previous PR.
6 years ago
Jens Steube
6d39fb1feb
Make all kernel parameter macro helper a function
6 years ago
R. Yushaev
5de004103a
Replace kernel parameter lists with macros
...
Substitute long parameter lists in ~2900 kernel function declarations
with macros. This cleans up the code, reduces probability of copy-paste
errors and highlights the differences between kernel functions. Also
reduces the size of the OpenCL folder by ~3 MB.
6 years ago
R. Yushaev
31dc7a3453
Add macros for kernel function declarations
...
Most of the kernel functions use nearly identical parameter lists.
Essentially, there are four parameters that vary, except for a dozen odd
kernel functions (e.g. stdout, zip, scrypt). This means that the function
declarations can be hidden behind a few simple macros with up to two
parameters.
6 years ago
R. Yushaev
b80ada1d65
Unify esalt_bufs parameter declarations
...
In preparation for the abstraction of long repetitive kernel function
declarations, rename the salt buffer pointers to *esalt_bufs. Also
declare them const where they are not.
6 years ago
R. Yushaev
3f0a3ef3f7
Unify kernel function parameter names
...
In preparation for the abstraction of long repetitive kernel function
declarations, adjust parameter names in a few deviating kernels.
6 years ago
Jens Steube
49fc7d45b7
- Keymaps: Added hashcat keyboard mapping us.hckmap (can be used as template)
...
- Keymaps: Added hashcat keyboard mapping de.hckmap
6 years ago
Jens Steube
5d5ac1c935
Prepare for on-the-fly keyboard layout substituations required to crack booting TrueCrypt/VeraCrypt volumes
6 years ago
Jens Steube
a4200ba167
Added hash-mode 18300 (Apple File System)
...
Fixes https://github.com/hashcat/hashcat/issues/1686
6 years ago
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
6 years ago
Royce Williams
6053f473eb
trailing whitespace
6 years ago
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
6 years ago
Arseniy Sharoglazov
ee873da300
Added hash-modes 18200 (Kerberos 5 AS-REP etype 23)
6 years ago
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)
6 years ago
Jens Steube
5eca3f5316
Fix kernel names in -a 1 kernels of -m 7701 and 7801
6 years ago
Jens Steube
48cf3f722b
Merge pull request #1725 from unix-ninja/master
...
Cleanup unused register definitions
6 years ago
unix-ninja
6196e23069
Cleanup unused register definitions
6 years ago
Jens Steube
e2a9409413
Merge pull request #1710 from unix-ninja/master
...
Add support for TOTP (RFC 6238)
6 years ago
unix-ninja
8c5c225d8f
Optimize performance on NVIDIA GTX
6 years ago
Jens Steube
b0077860c7
Workaround some padding issues with host compiler and OpenCL JiT on 32 and 64 bit systems
6 years ago
Jens Steube
a4ac370496
Test fix for plain_t in 32 bit mode
6 years ago
Jens Steube
6d03da369b
Fix gid datatype in mark_hash()
6 years ago
unix-ninja
fddfd835d2
Support 64 bit timestamps properly
6 years ago
unix-ninja
7904b9ae05
Fix kernel types to align with style guide
6 years ago
Jens Steube
0a74f058ac
Synchronize salt_t datatypes in types.h and inc_types.cl
6 years ago
unix-ninja
0e5704c77e
Disable NEW_SIMD_CODE for 18100 (it's not compatible)
6 years ago
unix-ninja
b657c75583
Explicity cast otp_offset
6 years ago
unix-ninja
3869ce9246
More coding style fixes
6 years ago
unix-ninja
24ab7cae2a
Add a1 kernel for mode 18100
6 years ago
unix-ninja
db4ec8ed2c
Fix formatting to comply with hashcat coding guidelines
6 years ago
unix-ninja
1d43540fc4
Simplify alignment masks for mode 18100
6 years ago
unix-ninja
b29b7b8188
Convert arithmetic ops to logical ops in byte alignment
6 years ago
unix-ninja
3c3b05d1e5
Resolve conflicts
6 years ago
unix-ninja
6cda8f7077
Change TOTP index from 17300 to 18100
6 years ago
unix-ninja
73aae1a734
Add a0 kernel for TOTP
6 years ago
unix-ninja
2249ab4c13
Cleanup debug code
6 years ago
unix-ninja
977b560bb4
Add support for TOTP (RFC 6238)
6 years ago
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)
6 years ago