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
Jens Steube cc9ed0e24b
Merge pull request #3845 from philsmd/26610_verify_fix
1 year ago
..
README.md Fix some typos 1 year ago
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
m00620.pm
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)) 1 year 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 verify test fix for -m 3730 = md5($s1.uc(md5($s2.$p))) 1 year ago
m03800.pm
m03910.pm
m04010.pm
m04110.pm
m04300.pm
m04400.pm
m04410.pm
m04420.pm Added hash-mode: md5(sha1($pass.$salt)) 1 year ago
m04430.pm Added hash-mode: md5(sha1($salt.$pass)) 1 year 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
m06060.pm
m06100.pm
m06300.pm
m06400.pm
m06500.pm
m06600.pm
m06700.pm
m06800.pm verify test fix for -m 6800 = LastPass sniffed 1 year ago
m06900.pm
m07000.pm
m07100.pm
m07200.pm
m07300.pm
m07350.pm
m07400.pm
m07401.pm
m07500.pm
m07700.pm
m07701.pm
m07800.pm
m07801.pm
m07900.pm
m08000.pm
m08100.pm
m08200.pm
m08300.pm Fix some typos 1 year ago
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
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 Fix some typos 1 year ago
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 verify test fix for -m 13400/-m 29700 1 year ago
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 Fix some typos 1 year ago
m22921.pm Fix some typos 1 year ago
m22931.pm Fix some typos 1 year ago
m22941.pm Fix some typos 1 year ago
m22951.pm Fix some typos 1 year ago
m23001.pm
m23002.pm
m23003.pm
m23100.pm
m23200.pm
m23300.pm
m23400.pm
m23500.pm
m23600.pm
m23700.pm
m23900.pm
m24100.pm
m24200.pm
m24300.pm
m24410.pm Fix some typos 1 year ago
m24420.pm Fix some typos 1 year ago
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
m25100.pm
m25200.pm
m25300.pm
m25400.pm Fix some typos 1 year ago
m25500.pm
m25600.pm
m25700.pm Fix some typos 1 year ago
m25800.pm
m25900.pm
m26000.pm
m26100.pm
m26200.pm
m26300.pm
m26401.pm
m26402.pm
m26403.pm
m26500.pm
m26600.pm
m26610.pm verify test fix for -m 2661- = MetaMask Wallet (short) 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
m27900.pm
m28000.pm
m28100.pm Fix some typos 1 year ago
m28200.pm Fixed minimum password length in module of hash-mode 28200 1 year ago
m28300.pm
m28400.pm
m28501.pm Fix some typos 1 year ago
m28502.pm Fix some typos 1 year ago
m28503.pm Fix some typos 1 year ago
m28504.pm Fix some typos 1 year ago
m28505.pm Fix some typos 1 year ago
m28506.pm Fix some typos 1 year ago
m28600.pm
m28700.pm
m28800.pm
m28900.pm
m29000.pm
m29100.pm
m29200.pm
m29600.pm
m29700.pm verify test fix for -m 13400/-m 29700 1 year ago
m29800.pm Fixed minimum password length in module of hash-mode 29800 1 year ago
m29910.pm
m29920.pm
m29930.pm
m29940.pm
m30420.pm
m30500.pm
m30600.pm
m30700.pm verify test fix for -m 30700 = Anope IRC Services 1 year ago
m30901.pm
m30902.pm
m30903.pm
m30904.pm
m30905.pm
m30906.pm
m31000.pm
m31200.pm Fix correct byte pattern and salt length in unit-test for -m 31200 2 years ago
m31300.pm Unit-test for new hash-mode -m 31300 SNTP-MS 2 years 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 2 years ago
m31800.pm Add support for 12 byte IV in -m 31800 1 year ago
m31900.pm Merge pull request #3846 from philsmd/31900_verify_fix 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 verify fix for -m 32100=Kerberos 5,etype 17,AS-REP 1 year ago
m32200.pm verify fix for -m 32200=Kerberos 5,etype 18,AS-REP 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
m32420.pm Added hash-mode: sha512(sha512_bin($pass).$salt) 1 year ago
m32600.pm Renamed hash-mode 6150 to 32600 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-insensitivity), the test module can provide an optional function module_preprocess_hashlist. It receives 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 slightly 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