Inspiration

We were inspired to make a "de-hashing" program for Smart Tech Challenge #1 due to a combination of our skill sets. Two of the group members were familiar with web programming. The other group member was familiar with cybersecurity concerns. We decided to combine our expertise to make a web-based cybersecurity tool that anyone can use to learn about and undo hashes.

What it does

Essentially, a user inputs into a form a hashed text generated from a common hashing algorithm. These include MD5, SHA1, SHA256, NTLM, and more. The program then sends a request to our API to "dehash" the following hashed text. The backend API of our program receives the user input, determines the most likely hashes that it could be, and then for each likely hash, runs a dictionary attack against the hashed text using a common password file (rockyou.txt) It stops until a match is found or no match is found.

How we built it

We made the front end of this tool using React and JavaScript. On the back end side, we used Azure Virtual Machines to host a Kali Linux image that also hosts our Flask API, written in Python. We were able to connect the Python to the JavaScript using fetch() requests to the Python API in Flask.

Challenges we ran into

First, we ran into the challenge of our original challenge idea being removed from the list. However, this did not stop us from producing a unique software artifact to present to you all. We pivoted and redirected our plans to instead make our own tool to "dehash" common Hhashes. Second, we had trouble figuring out the overall architecture of our own software. We decided that a REST API model would be best suited for us due to the functionality needed (an unhashed text being returned) and time constraints.

Accomplishments that we're proud of

We are proud of the fact that we have a simple, yet working API that is intertwined with our UI. We are also proud of the fact that we are using Azure to host our API and run the hashcat programs for us.

What we learned

We've learned how to "de-hash" many different types of hashes. Also, we have learned how to host an API on a full-fledged Virtual Machine and make it accessible.

What's next for De-Hash

One feature that could be added to this project in the future is the ability to change/upload custom wordlists.

Share this project:

Updates