You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hashcat/tools/test_modules
Gabriele Gristina b6ae3d867e
Added hash-mode: md5(sha1($salt.$pass))
12 months ago
..
README.md
m00000.pm
m00010.pm
m00011.pm
m00012.pm
m00020.pm
m00021.pm
m00022.pm
m00023.pm
m00024.pm
m00030.pm
m00040.pm
m00050.pm
m00060.pm
m00070.pm Unit Test: removes salt constraints if no salt is used 1 year ago
m00100.pm
m00101.pm
m00110.pm
m00111.pm
m00112.pm
m00120.pm
m00121.pm
m00122.pm
m00124.pm
m00125.pm
m00130.pm
m00131.pm
m00132.pm
m00133.pm
m00140.pm
m00141.pm
m00150.pm
m00160.pm
m00170.pm Unit Test: removes salt constraints if no salt is used 1 year ago
m00200.pm
m00300.pm
m00400.pm
m00500.pm
m00600.pm
m00610.pm Limit password and salt length in unit test for -m 610 and -m 620 2 years ago
m00620.pm Limit password and salt length in unit test for -m 610 and -m 620 2 years ago
m00900.pm
m01000.pm
m01100.pm
m01300.pm
m01400.pm
m01410.pm
m01411.pm
m01420.pm
m01421.pm
m01430.pm
m01440.pm
m01441.pm
m01450.pm
m01460.pm
m01470.pm Unit Test: removes salt constraints if no salt is used 1 year ago
m01500.pm
m01600.pm
m01700.pm
m01710.pm
m01711.pm
m01720.pm
m01722.pm
m01730.pm
m01731.pm
m01740.pm
m01750.pm
m01760.pm
m01770.pm Unit Test: removes salt constraints if no salt is used 1 year ago
m01800.pm
m02100.pm
m02400.pm Fixed maximum password length in module/test_module of hash-mode 2400 1 year ago
m02410.pm Fixed maximum password length in module/test_module of hash-mode 2410 1 year ago
m02500.pm
m02600.pm
m02611.pm
m02612.pm
m02630.pm Added hash-mode: md5(md5($pass.$salt)) 12 months ago
m02711.pm
m02811.pm
m03000.pm
m03100.pm
m03200.pm
m03500.pm
m03610.pm Added hash-mode: md5(md5(md5()).) 1 year ago
m03710.pm
m03711.pm
m03730.pm Removed hash-mode 3730 optimized kernel support 2 years ago
m03800.pm
m03910.pm
m04010.pm
m04110.pm
m04300.pm
m04400.pm
m04410.pm added md5(sha1($pass).$salt) 2 years ago
m04420.pm Added hash-mode: md5(sha1($pass.$salt)) 12 months ago
m04430.pm Added hash-mode: md5(sha1($salt.$pass)) 12 months ago
m04500.pm
m04510.pm
m04520.pm
m04521.pm
m04522.pm
m04700.pm
m04710.pm
m04711.pm
m04800.pm
m04900.pm
m05000.pm
m05100.pm
m05300.pm
m05400.pm
m05500.pm
m05600.pm
m05700.pm
m05800.pm
m06000.pm
m06050.pm added HMAC-RIPEMD160 2 years ago
m06060.pm added HMAC-RIPEMD160 2 years ago
m06100.pm
m06300.pm
m06400.pm
m06500.pm
m06600.pm
m06700.pm
m06800.pm Add IV support to lastpass (-m 6800) 2 years ago
m06900.pm
m07000.pm
m07100.pm
m07200.pm
m07300.pm
m07350.pm Add missung unit-test for -m 7350 and kernel name fix 2 years ago
m07400.pm
m07401.pm
m07500.pm
m07700.pm
m07701.pm
m07800.pm
m07801.pm
m07900.pm
m08000.pm
m08100.pm
m08200.pm
m08300.pm
m08400.pm
m08500.pm
m08600.pm
m08700.pm
m08900.pm
m09100.pm
m09200.pm
m09300.pm
m09400.pm
m09500.pm
m09600.pm
m09700.pm
m09800.pm
m09900.pm
m10000.pm
m10100.pm
m10200.pm
m10300.pm
m10400.pm
m10500.pm
m10600.pm
m10700.pm
m10800.pm
m10810.pm
m10820.pm
m10830.pm
m10840.pm
m10870.pm Unit Test: removes salt constraints if no salt is used 1 year ago
m10900.pm
m10901.pm
m11000.pm
m11100.pm
m11200.pm
m11300.pm
m11400.pm
m11500.pm Add pure kernels for -m 11500 2 years ago
m11600.pm
m11700.pm Unit Test: removes salt constraints if no salt is used 1 year ago
m11750.pm
m11760.pm
m11800.pm
m11850.pm
m11860.pm
m11900.pm
m12000.pm
m12001.pm
m12100.pm
m12200.pm
m12300.pm
m12400.pm
m12500.pm
m12600.pm
m12700.pm
m12800.pm
m12900.pm
m13000.pm
m13100.pm
m13200.pm
m13300.pm
m13400.pm
m13500.pm
m13600.pm
m13800.pm
m13900.pm
m14000.pm
m14100.pm
m14400.pm
m14700.pm
m14800.pm
m14900.pm
m15000.pm
m15100.pm
m15200.pm
m15300.pm
m15310.pm
m15400.pm
m15500.pm
m15600.pm
m15700.pm
m15900.pm
m15910.pm
m16000.pm
m16100.pm
m16200.pm
m16300.pm
m16400.pm
m16500.pm
m16600.pm
m16700.pm
m16800.pm
m16900.pm
m17300.pm
m17400.pm
m17500.pm
m17600.pm
m17700.pm
m17800.pm
m17900.pm
m18000.pm
m18100.pm
m18200.pm
m18300.pm
m18400.pm
m18500.pm
m18600.pm
m18700.pm
m18800.pm
m18900.pm
m19000.pm
m19100.pm
m19200.pm
m19300.pm
m19500.pm
m19600.pm
m19700.pm
m19800.pm
m19900.pm
m20011.pm
m20012.pm
m20013.pm
m20200.pm
m20300.pm
m20400.pm
m20500.pm
m20510.pm
m20600.pm
m20710.pm
m20711.pm
m20712.pm Added hash-mode: RSA Security Analytics / NetWitness (sha256) 1 year ago
m20720.pm
m20800.pm
m20900.pm
m21000.pm
m21100.pm
m21200.pm
m21300.pm
m21310.pm Added hash-mode: md5($salt1.sha1($salt2.$pass)) 1 year ago
m21400.pm Fix missing interpreter in m21400.pm 1 year ago
m21420.pm
m21500.pm
m21501.pm
m21600.pm
m21700.pm
m21800.pm
m22000.pm
m22100.pm
m22200.pm
m22300.pm
m22301.pm
m22400.pm
m22500.pm
m22600.pm
m22700.pm
m22911.pm
m22921.pm
m22931.pm
m22941.pm
m22951.pm
m23001.pm
m23002.pm
m23003.pm
m23100.pm
m23200.pm
m23300.pm
m23400.pm fix test/verify for -m 23400 2 years ago
m23500.pm
m23600.pm
m23700.pm
m23900.pm
m24100.pm
m24200.pm
m24300.pm
m24410.pm
m24420.pm
m24500.pm
m24600.pm
m24700.pm
m24800.pm Unit Test: removes salt constraints if no salt is used 1 year ago
m24900.pm
m25000.pm Corrected issue for module 25000 (SNMPv3 HMAC-MD5-96/HMAC-SHA1-96). Password length should not be restricted to a minimum length 2 years ago
m25100.pm Corrected issue for module 25100 (SNMPv3 HMAC-MD5-96)\nPassword length should not be restricted to a minimum length 2 years ago
m25200.pm Corrected issue for module 25200 (SNMPv3 HMAC-SHA1-96) Password length should not be restricted to a minimum length 2 years ago
m25300.pm
m25400.pm
m25500.pm
m25600.pm
m25700.pm
m25800.pm
m25900.pm
m26000.pm
m26100.pm
m26200.pm
m26300.pm
m26401.pm
m26402.pm
m26403.pm
m26500.pm
m26600.pm added note to the test of 26600 that the data generation is artificial 1 year ago
m26610.pm Fixed test module and cleanup implementation of MetaMask short (26610) 1 year ago
m26700.pm
m26800.pm
m26900.pm
m27000.pm
m27100.pm
m27200.pm
m27300.pm
m27400.pm
m27500.pm
m27600.pm
m27700.pm
m27800.pm add tests for -m 27800 = MurmurHash 3 2 years ago
m27900.pm Add pure kernels for -m 27900 2 years ago
m28000.pm Add pure kernels for -m 27900 2 years ago
m28100.pm
m28200.pm Fixed minimum password length in module of hash-mode 28200 1 year ago
m28300.pm
m28400.pm
m28501.pm Add -m 28503/28504 = Bitcoin WIF, P2WSH/bech32/segwit address 2 years ago
m28502.pm Add -m 28503/28504 = Bitcoin WIF, P2WSH/bech32/segwit address 2 years ago
m28503.pm Add -m 28503/28504 = Bitcoin WIF, P2WSH/bech32/segwit address 2 years ago
m28504.pm Add -m 28503/28504 = Bitcoin WIF, P2WSH/bech32/segwit address 2 years ago
m28505.pm Add -m 28505/28506, Bitcoin WIF, P2SH(P2WPKH)/compat address 2 years ago
m28506.pm Add -m 28505/28506, Bitcoin WIF, P2SH(P2WPKH)/compat address 2 years ago
m28600.pm fix test/verify for -m 28600 2 years ago
m28700.pm cleanup: remove spaces at the end of lines 2 years ago
m28800.pm fix test/verify for -m 28800 2 years ago
m28900.pm fix test/verify for -m 28900 2 years ago
m29000.pm add unit tests for -m 29000 2 years ago
m29100.pm fix -m 29100 unit test dependencies 2 years ago
m29200.pm radmin 3: remove whitespace, add credits to tests 2 years ago
m29600.pm tests: add unit tests for -m 29600 2 years ago
m29700.pm Add missing unit-test for -m 29700 2 years ago
m29800.pm Fixed minimum password length in module of hash-mode 29800 1 year ago
m29910.pm Fixed false negative in updated -m 299xx plugins due to invalid handling of decrypted data. 2 years ago
m29920.pm Fixed false negative in updated -m 299xx plugins due to invalid handling of decrypted data. 2 years ago
m29930.pm fix whitespace 2 years ago
m29940.pm fix whitespace 2 years ago
m30420.pm Rename -m 1412 to -m 30420, add unit test and optimized kernels 2 years ago
m30500.pm added mode 30500 2 years ago
m30600.pm Rename -m 25850 to 30600 and add missing unit-test 2 years ago
m30700.pm Added hash-mode: Anope IRC Services (enc_sha256) 2 years ago
m30901.pm added -m 3090x = Bitcoin raw private key 1 year ago
m30902.pm added -m 3090x = Bitcoin raw private key 1 year ago
m30903.pm added -m 3090x = Bitcoin raw private key 1 year ago
m30904.pm added -m 3090x = Bitcoin raw private key 1 year ago
m30905.pm added -m 3090x = Bitcoin raw private key 1 year ago
m30906.pm added -m 3090x = Bitcoin raw private key 1 year ago
m31000.pm Rename module 35000 : 31000 1 year ago
m31200.pm Fix correct byte pattern and salt length in unit-test for -m 31200 1 year ago
m31300.pm Unit-test for new hash-mode -m 31300 SNTP-MS 1 year ago
m31400.pm SecureCRT MasterPassphrase v2: update module, pure kernels and test unit. Add optimized kernels. 1 year ago
m31500.pm cleanup test.pl and implement module_get_random_password() in 31500/31600 test modules 1 year ago
m31600.pm add missing md4_hex import in 31600 test module 1 year ago
m31700.pm Renumber -m 31500 to -m 31700 1 year ago
m31800.pm Add support for 12 byte IV in -m 31800 1 year ago
m31900.pm Added hash-mode: MetaMask Mobile Wallet, updated extraction tool 1 year ago
m32000.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32010.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32020.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32030.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32031.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32040.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32041.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32050.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32060.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32070.pm Added support for NetIQ SSPR hashes + Adobe AEM 1 year ago
m32100.pm Fix file permissions for 32100/32200 1 year ago
m32200.pm Fix file permissions for 32100/32200 1 year ago
m32300.pm Added hash-mode: Empire CMS (Admin password) 1 year ago
m32410.pm Added hash-mode: sha512(sha512($pass).$salt) 1 year ago

README.md

Hashcat test modules

Each module provides the functions module_constraints, module_generate_hash and module_verify_hash.

  • The module_constraints function should return the minimum and maximum length of the password, salt and the combination of password and salt in following order: password (pure), salt (pure), password (optimized), salt (optimized) and combination (optimized). Each pair should be set to -1 if the hash mode is not supporting the appropriate field. For example, if a hash-mode does not support a salt, it should be set to -1. The last field (combination) is important if the password and the salt is stored in the same buffer in the kernel (typically raw hashes only).
  • The first parameter to module_generate_hash is the password, which can be either in ASCII or binary (packed) form. The second parameter is the salt *which can be undefined for unsalted hash modes).
  • The module_verify_hash function accepts a line from the cracks file, without the newline characters.

During single and passthrough tests the module_generate_hash function must provide random values (e.g. salt) for hash generation if necessary. The test.pl script offers a few handy functions like random_hex_string, random_numeric_string and random_bytes. You can implement your own salt generation functions, if your mode has specific requirements.

During verify tests the module_verify_hash function must parse the hash:password line and calculate a hash by passing all necessary data to module_generate_hash. How you pass it is up to you, as long as the first parameter is the password.

Important: You have to call pack_if_HEX_notation as soon as you have parsed the password, or your tests will fail on passwords in the $HEX[...] format.

If the algorithm has ambiguous hashes (e.g. partial case-insensetivity), the test module can provide an optional function module_preprocess_hashlist. It recieves a reference to the hashlist array and can unify the hashes in a way that guarantees the match with the output of module_verify_hash.

Examples

  • For the most basic test modules, see m00000.pm and m00100.pm
  • For the basic salted hash tests, see m00110.pm and m00120.pm
  • For some sligthly more complex modules with PBKDF2 and encryption, see m18400.pm and m18600.pm
  • For a test module with hashlist preprocessing and a custom salt generation algorithm, see m05600.pm