Custom MD5 types
#1
Hi there, first time post. I hope this isn't an odd question to start off with.

I have been using oclhashcat on and off for testing various hash types, but I have run into one which I am unsure how to approach. I have worked out the method used to generate the hash, and have tested a known string against it successfully, but I do not know how to go about testing unknown keys using this tool now I have the method.

Some details: 

The hash should be generated via: md5(CONCAT(password_salt, md5(password), md5(password_salt) 

As an example, I have used key 12345678 and salt a44df81d4c:
(salt) = a44df81d4c

md5(12345678) = 25d55ad283aa400af464c76d713c07ad

md5(salt) = 8423c5011319fe3d0ba4cf4b1d9fd8e2

md5(a44df81d4c25d55ad283aa400af464c76d713c07ad8423c5011319fe3d0ba4cf4b1d9fd8e2) = 17312b4dbe847ad315bd3e04a4144c91 - the expected result.

I may be wrong but I believe this would correspond to: md5($salt.md5($pass).md5($salt)) which I see is not available (unless I missed it?). 

Am I overthinking this to assume I will need to request a new method? Or is there a simpler way to do this sort of custom type? I would hate to request a feature that is unnecessary or a waste of the dev's time.


Thankyou for reading this post, any help would be appreciated.
#2
You are right that there is no kernel for md5($salt.md5($pass).md5($salt)). Since this is probably not a very common hash type I don't think the developers will add it, but if you want to write your own kernel you should start by reading this: https://hashcat.net/forum/thread-5302-po...l#pid28754

Unfortunately I have never written my own kernels for hashcat so I have no idea how to do that, but you could try asking in the developer forums, perhaps someone will help you out there. :)
#3
Thankyou for the reply.

I have looked at the link you have provided, and realized I neglected to search for this very thing before posting to get an idea of the scope if I had to tackle this myself. Unfortunately, I am the first to admit this sort of coding is far outside and beyond my skill level. I would be more comfortable modifying an existing code than starting from scratch with a new module, even with help.

In my travels, I came across this post which seems to be similar to my issue. https://hashcat.net/forum/thread-3472-po...l#pid19941 . I will instead be working off 3710 as it seems the closest fit to my needs. md5($salt.md5($pass)) if very close and appending the md5 of the salt for each hash may work if I figure out how to do it. If I do find a solution it seems unlikely to work on multiple hashes at once but I will be happy if I can get it to work at all even one hash at a time. Then I can attempt to improve upon it if the speed is unsatisfactory.

I will report back if I make any progress.