I originally posted this question on the Reverse Engineering site, but there were no answers. They told me to also post this question here. OK, my friends and I have Lego NXT sumo bot competitions for fun. Basically, you build a robot that waits five seconds and competes against a robot to stay on a board. We normally focus on the mechanical side to win against other robots (find them and push them off the board), but I had the idea to try a software attack. My idea was to:
- Find some sort of Bluetooth vulnerability that I could exploit from another NXT (I write my programs in NXC).
- Upload a malicious program that makes the robot drive backwards forever.
- Somehow execute the program (and win)!
I have tried testing the NXT Bluetooth for vulnerabilities (I have knowledge of Windows/Linux exploitation and debugging) and I can't find anything. The main problem is that the NXT firmware handles Bluetooth connections, in other words you connect the devices with a pass code before running the program that requires Bluetooth. So, my questions are:
- Is this even slightly possible or is it just a waste of time?
- If there was a NXT Bluetooth vulnerability, could I even send it from another NXT that's not connected?
- Was this the right place to post this question?
- Would NXT debugging even be possible?
Update First, thanks for all of the ideas and answers. Secondly, several of the answers note about the legality of what I am trying to do. Yes, it is legal where I live. Third, I talked with main guy and judge of the competition and he said that he would love to see a software attack like this.
Where I'm at now I have Kali Linux and the mac address has been found. I also found a paper here on the control protocols. The main dilemma I am still facing is the fact that a Bluetooth passcode has to be entered on the device I intend to connect to. Any updates will be posted here!
Maybe you can disable their bots control by continually trying to pair with it while your opponent is trying to control it.
– John Meacham Jun 28 '16 at 10:26