# Here are some examples of DYNAMIC. # Please refer to ./doc/DYNAMIC for documentation on how to set these up. # Format names up to dynamic_999 are reserved for builtin functions. #################################################################### # Simple DYNAMIC type for md5($p)^^4 (i.e. 4 steps of md5 recursively) #################################################################### [List.Generic:dynamic_1001] # expression shown will be the string: dynamic_1001 md5(md5(md5(md5($p)))) Expression=md5(md5(md5(md5($p)))) Flag=MGF_KEYS_INPUT # here is the optimized 'script' to perform the md5 4 times on itself. Func=DynamicFunc__crypt_md5 Func=DynamicFunc__clean_input2 Func=DynamicFunc__append_from_last_output_to_input2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt_md5_in2_to_out1 Test=$dynamic_1001$57200e13b490d4ae47d5e19be026b057:test1 Test=$dynamic_1001$c6cc44f9e7fb7efcde62ba2e627a49c6:thatsworking Test=$dynamic_1001$0ae9549604e539a249c1fa9f5e5fb73b:test3 #################################################################### # Simple DYNAMIC type for md5($p)^^5 (i.e. 5 steps of md5 recursively) #################################################################### [List.Generic:dynamic_1002] # expression shown will be the string: dynamic_1002 md5(md5(md5(md5(md5($p))))) Expression=md5(md5(md5(md5(md5($p))))) Flag=MGF_KEYS_INPUT # here is the optimized 'script' to perform the md5 5 times on itself. Func=DynamicFunc__crypt_md5 Func=DynamicFunc__clean_input2 Func=DynamicFunc__append_from_last_output_to_input2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt_md5_in2_to_out1 # These are test strings for this format. Test=$dynamic_1002$25de8cd0b0cf69c5b5bc19c8ee64adab:test1 Test=$dynamic_1002$a0b535420ea47849f7c2cc09a3ad0ac3:thatsworking Test=$dynamic_1002$4cb029bd5b4ef79f785ca685caf17bf8:test3 #################################################################### # Simple DYNAMIC type for md5(md5($p).md5($p)) #################################################################### [List.Generic:dynamic_1003] # expression shown will be the string: dynamic_1003 md5(md5($p).md5($p)) Expression=md5(md5($p).md5($p)) # NOTE, this format does NOT work on SSE2. It requires a md5() of a 64 byte string. # SSE (or MMX) is limtited to 54 byte max password, due to 'enhancements' # Thus, we need a non-sse2 safe flag. Flag=MGF_NOTSSE2Safe Flag=MGF_KEYS_INPUT Flag=MGF_FULL_CLEAN_REQUIRED # here is the optimized 'script' to perform hash 'like' IPB but salt replaced with password. Func=DynamicFunc__crypt_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output_to_input2_as_base16 Func=DynamicFunc__append_from_last_output_to_input2_as_base16 Func=DynamicFunc__crypt_md5_in2_to_out1 # These are test strings for this format. Test=$dynamic_1003$478b10974f15e7295883224fd286ccba:test1 Test=$dynamic_1003$18a59101e6c6fb38260d542a394ecb22:thatsworking Test=$dynamic_1003$630b01b68b6db6fd43a751f8147d1faf:test3 #################################################################### # Simple DYNAMIC type for md5($p)^^6 (i.e. 6 steps of md5 recursively) #################################################################### [List.Generic:dynamic_1004] # expression shown will be the string: dynamic_1004 md5(md5(md5(md5(md5(md5($p)))))) Expression=md5(md5(md5(md5(md5(md5($p)))))) Flag=MGF_KEYS_INPUT # here is the optimized 'script' to perform the md5 6 times on itself. Func=DynamicFunc__crypt_md5 Func=DynamicFunc__clean_input2 Func=DynamicFunc__append_from_last_output_to_input2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt_md5_in2_to_out1 # These are test strings for this format. Test=$dynamic_1004$de1b991dd27fb9813e88b957a455dccd:test1 Test=$dynamic_1004$6a62cd3c4d81139f61fb2553cdef0dc7:thatsworking Test=$dynamic_1004$a977990e521c5d1d17c6d65fdf2681b4:test3 #################################################################### # Simple DYNAMIC type for md5($p)^^7 (i.e. 7 steps of md5 recursively) #################################################################### [List.Generic:dynamic_1005] # expression shown will be the string: dynamic_1005 md5(md5(md5(md5(md5(md5(md5($p))))))) Expression=md5(md5(md5(md5(md5(md5(md5($p))))))) Flag=MGF_KEYS_INPUT # here is the optimized 'script' to perform the md5 7 times on itself. Func=DynamicFunc__crypt_md5 Func=DynamicFunc__clean_input2 Func=DynamicFunc__append_from_last_output_to_input2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt_md5_in2_to_out1 # These are test strings for this format. Test=$dynamic_1005$784c527d0d92873ff9c0773e1c35621d:test1 Test=$dynamic_1005$efcbbe6331caecf0e7f40160e65aadcc:thatsworking Test=$dynamic_1005$abb8bdd2c6ac2dfea2b2af6f5aed5446:test3 #################################################################### # Simple DYNAMIC type for md5($p)^^8 (i.e. 8 steps of md5 recursively) #################################################################### [List.Generic:dynamic_1006] # expression shown will be the string: dynamic_1006 md5(md5(md5(md5(md5(md5(md5(md5($p)))))))) Expression=md5(md5(md5(md5(md5(md5(md5(md5($p)))))))) Flag=MGF_KEYS_INPUT # here is the optimized 'script' to perform the md5 8 times on itself. Func=DynamicFunc__crypt_md5 Func=DynamicFunc__clean_input2 Func=DynamicFunc__append_from_last_output_to_input2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt2_md5 Func=DynamicFunc__clean_input2_kwik Func=DynamicFunc__append_from_last_output2_as_base16 Func=DynamicFunc__crypt_md5_in2_to_out1 # These are test strings for this format. Test=$dynamic_1006$1ec1f32398f64cab51183f63630eceea:test1 Test=$dynamic_1006$f66b339ac21d6fd6af216f2b70aab2c9:thatsworking Test=$dynamic_1006$e9d38522b5eeec753332e576e2e0fe5d:test3 #################################################################### # Simple DYNAMIC type for vBulletin md5(md5($p).$s) Included here to 'exercise' the script parser #################################################################### [List.Generic:dynamic_1007] # expression shown will be the string: dynamic_1007 md5(md5($p).$s) [vBulletin] Expression=md5(md5($p).$s) (vBulletin) # Flag needed here, is Salt. There is no 'fixed' saltlen. Flag=MGF_SALTED Flag=MGF_KEYS_BASE16_IN1 # vBulletin has a 'fixed' 3 byte salt, so list the fixed size SaltLen=3 # here is the optimized 'script' to perform vBulletin hash Func=DynamicFunc__set_input_len_32 Func=DynamicFunc__append_salt Func=DynamicFunc__crypt_md5 Test=$dynamic_1007$daa61d77e218e42060c2fa198ac1feaf$SXB:test1 Test=$dynamic_1007$de56b00bb15d6db79204bd44383469bc$T &:thatsworking Test=$dynamic_1007$fb685c6f469f6e549c85e4c1fb5a65a6$HEX$5C483A:test3 #################################################################### # Dynamic type for algorithm used in RADIUS User-Password attrinute md5($p.$s) #################################################################### [List.Generic:dynamic_1008] # expression shown will be this string: Expression=md5($p.$s) (RADIUS User-Password) # Flag needed here, is Salt Flag=MGF_SALTED # The salt has a fixed length of 16 bytes Saltlen=16 Func=DynamicFunc__clean_input Func=DynamicFunc__append_keys Func=DynamicFunc__append_salt Func=DynamicFunc__crypt_md5 Test=$dynamic_1008$b962b0d40fc9111ce5f8efab424bad73$NormalSaltNormal:secret Test=$dynamic_1008$8bfccd9d67ec0bcdc38e9ae3c19a2903$FinishingwitHEX$:secret Test=$dynamic_1008$bf239357f3aa95508a53fe41b7e5f2e3$inthem$HEXiddle6:secret # unfortunately, these next 2 have embedded NULLs, so at this time they have been removed. # later we will get dynamic working with these also. #Test=$dynamic_1008$7fe3c4d1bf2ac68e94ee9f2bf75b9601$HEX$00000000000000000000000000000000:secret #Test=$dynamic_1008$658bbf9f04538d6bede09a4a52a77504$HEX$626c6168003637383930313233343536:secret ###################################################################### # Dynamic Type for algorithm used in RADIUS Responses md5($s.$p) ###################################################################### [List.Generic:dynamic_1009] Expression=md5($s.$p) (RADIUS Responses) Flag=MGF_SALTED Saltlen=-16 Func=DynamicFunc__clean_input Func=DynamicFunc__append_salt Func=DynamicFunc__append_keys Func=DynamicFunc__crypt_md5 Test=$dynamic_1009$0b9b9fdf75fc79d85c5b69aa1de26288$Salt:test1 ###################################################################### # Dynamic Type for algorithm used in RAdmin v2.x Responses md5($p.NULL-to-100-bytes) # v2, where keys are in input, and set_input_len_100 'cleans' up if needed. ###################################################################### [List.Generic:dynamic_1010] Expression=md5($p null_padded_to_len_100) RAdmin v2.x MD5 Flag=MGF_NOTSSE2Safe Flag=MGF_KEYS_INPUT Func=DynamicFunc__set_input_len_100 Func=DynamicFunc__crypt_md5 Test=$dynamic_1010$B137F09CF92F465CABCA06AB1B283C1F:lastwolf Test=$dynamic_1010$14e897b1a9354f875df51047bb1a0765:podebradka Test=$dynamic_1010$02ba5e187e2589be6f80da0046aa7e3c:12345678 Test=$dynamic_1010$b4e13c7149ebde51e510959f30319ac7:firebaLL Test=$dynamic_1010$3d2c8cae4621edf8abb081408569482b:yamaha12345 Test=$dynamic_1010$60cb8e411b02c10ecc3c98e29e830de8:xplicit