Inspiration
We were inspired by using testing frameworks such us pytest, by its efficient yet elegant usage. So we wanted to see how it actually looks like to do the similliar UX, but automated . How do you create a penetration tesing UI, that can be understood by people with and without all the necessary tech knowledge?
What it does
Nefrit is an automated pen-testing tool where the pen-tester inputs the desired vulnerabilities to be tested and lets the system do the actual testing for you - automated. The pen-tester then simply look at the overall pen-tests successfully executed, can look over the steps to recreate the exploit, the script that automated it and other attachments.
How we built it
First, we've set out to actually map out the flow and the ideal use-case of the end user, we then mapped out the actual exploits that were feasible to pen-test automatically and researched way to actually do it efficiently. At the same time we've worked on the UI of the project and with time everything came together.
Challenges we ran into
Going into this Hackathon, we were prepared for everything. If it will be mobile app, we'll go with iOS native swift, if web, then React + Go and in the first few hours, everything was going pretty well. We had a good idea of what we wanted to do, we had everything planned out, etc. Designing the whole process pipeline was probably the biggest challenge for us, since we had to learn about as much possible about pen-testing, as humanely possible within the first hours.
Then the work started to pile, but that's okay, it's not as bad. There's only so much 2 people can do, when it comes to coding a designing. Then things started to break.
This algorithm didn't work, the IDE didn't want to find the desired directory, the landing page broke. Feeling little bit exhausted we decided to take a hour nap. The worst thing that could have happend at the time was to fall asleep. So of course our little nap set us behind even further, since we overslept by a bit. Even through all of this, we managed to create a solution, that we're both very happy with.
Accomplishments that we're proud of
Before the hackathon began we were joking, that there'll certainly be cybersecurity challenge. For us, cybersec was a no-brainer. For the record we both have absolutely ZERO experience in cybersecurity, but we both like pushing our boundaries and after 24 hours we realized, just how far we've managed to come.
From unpredictable AI behaviour in a field, famous for it's high learning curve, to learning completely different programming language and workflow, we've managed to overcome it all and at the end of the day, that's what makes the feeling of accomplishment so much more fullfilling.
{
"timestamp": "20241124_103849",
"vulnerability": "URL redirection to untrusted site 'open redirect'",
"target_url": "http://localhost:3000",
"results": {
"success": true,
"evidence": [
"Open redirect successful to: http://malicious.com"
],
"screenshots": [
"results/20241124_103848_initial_state.png",
"results/20241124_103848_before_redirect.png",
"results/20241124_103849_success_state.png"
],
"steps_to_reproduce": [
"1. Navigate to the vulnerable URL redirection endpoint with a malicious redirect parameter"
],
"console_logs": [
"Failed to load resource: the server responded with a status of 500 (Internal Server Error)"
]
}
}
Real success report
What we learned
Generally we've learned a lot - all the way from creating a UI in Vue, to implementing a complexly cooperating collection of pentesting tools and even what actually ARE some of the more severe vulnerabilities. In general, we found the challenge fascinating and would love to work on it further.
What's next for Nefrit-2
In the future we'd like to implement a system to rate the overall severity of the security breach, add pentesting script that test additional vulnerability types, let the user filter the vulnerabilities, export the results, change/fine-tune the models, let the user add additional pen-testing docs and build upon the GUI...
Log in or sign up for Devpost to join the conversation.