ToriTech
Joined 6 months ago
Joined 6 months ago
Now, if you're into something more arguably "niche" like AI Security, IoT security, or Reverse Engineering, you're pretty much gonna have to combine a mish-mash of resources and make some of your own.
For AISec: I'd recommend Gandalf by Lakera AI, it teaches direct prompt injection with a variety of guardrails. It's also wise to check out HackAPrompt, they're an AI hacking challenge but they also have labs and learning materials. Again, they focus mostly on prompt injection. If you're feeling like that's too basic for you and you want more, then I highly suggest you build and break your own stuff, that's what I'm doing. Download Ollama (you can install the models themselves onto a USB drive so you don't fill up your hard drive with LLMs) and some kind of vector database system (I use ChromaDB with Python) so you can experiment with indirect prompt injection, and maybe even data poisoning.
For IoT security: Definitely download FirmAE on a virtual machine, docker container, or your own device, if you know what you're doing. It allows you to emulate devices like routers, switches, and even cameras. You can mess around with those until you get bored.
For Reverse Engineering: Go to "https://crackmes.one" and download some beginner crackmes to practice with. It would be smart to start with a few of the free-tier "intro to reversing" TryHackMe rooms first, but once you complete those you should be okay. You can definitely get AI to review the code with you and try to help you figure out what's going on, but beware, it will make stuff up. I've chased nonexistent leads for hours because of that, so trust but verify.
In my opinion, making stuff and breaking stuff is the best way to go. Research a vulnerability, build something based off that vulnerability, then break it, and document it. Teaches you both sides and keeps it fun.
If you want to try your skills against a system you know nothing about, then you want to start with the OWASP Juice Shop, and maybe even VulnHub for vulnerable virtual machines you can hack.
And if you're feeling extra bold and want to apply your skills in the real world, go to platforms like HackerOne and BugCrowd and do some bug bounty hunting.
In any case I wish you luck.
(https://github.com/Tori-Tech/Mandating-Honeypots-Project)
In that project, I also proposed a tool with heavily redundant password protection that parents could use to keep kids from tampering with the service so the government can stop saying that this is for the kids. I'm planning on doing a mobile device version and/or an ID database focused version, but that's still in the planning phase.
I also want to do a Windows version when they release their 'GetUserAgeRangeAsync' API, but idk if I'll be able to. Windows is always a pain to work with.
It'd be nice if someone had advice or ideas to share, too.
Thank you for this, it's inspired me to look into ways I can protect our privacy.
Still, I didn't want to root the device because my whole family uses it and I don't want to break it, so I got out a spare Ethernet cable, plugged it into the TV and the other end into my laptop, set up a bridged VM and changed the settings on my Ethernet card so there was no gateway or DNS, and used Wireshark to capture the data. Surprisingly, I didn't see anything other than ARP, MDNS, and DHCP requests looking for devices to connect to. I even ran nmap on it to look for services, but it all seemed to be standard LG stuff.
I wonder if it only logs things after you connect it to the Internet? Or if there's something I'm missing. Have any of you done anything similar?
Anyway, when it comes time to make a project, I first figure out what I want to build. Then I research the steps I would need to take to build it. For example, if I wanted to make a webapp that has a deliberate SQL injection for a CTF, I would need a database, a login page, and a dashboard to navigate to after logging in. For larger projects, I might use AI to help me figure out the components required.
Then I save those notes and then focus on a single component. Continuing with this example, I'll start with the login page. I'll get AI to generate the code on that. Sometimes it doesn't cooperate and makes the SQL query secure, so I have to manually go in there and fix it myself, rather than ask it to redo it again. I get serious imposter syndrome whenever I use AI to generate code, so I make sure I can understand some of it before I run it, and I try to manually fix bugs before I ask for help.
Once all the components are built, I tie them all together and start testing the program.