How We Hacked a TP-Link Router and Took Home $55,000 in Pwn2Own

  Рет қаралды 370,480

Flashback Team

Flashback Team

Күн бұрын

Learn tricks and techniques like these, with us, in our amazing training courses!
flashback.sh/training
In this video we will show you how we found and exploited a chain of vulnerabilities in the TP-Link Archer AC1750 to win $5,000 in Pwn2Own Tokyo 2019.
We bagged a total of $55,000 hacking routers in this competition!
00:00 Intro
01:48 Finding debug interface
04:35 Finding the vulnerability
06:23 Vulnerability details
15:20 Exploit demo
16:33 Outro
For in-depth details, refer to our advisories:
www.flashback.sh/blog/lao-bom...
www.flashback.sh/blog/mineswe...
The two advisories complement each other. The first one describes the process we used to pwn this router in 2019, and the second one how we found in 2020 that TP-Link improperly patched the command injection. We used that knowledge to improve the exploit so that it works on old and newer "patched" firmware.
The command injection described in this video is the improved one.
The vulnerabilities exploited in this video are:
- CVE-2020-10882
- CVE-2020-10883
- CVE-2020-10884
- CVE-2020-28347
All vulnerabilities have been fixed by TP-Link in current firmware versions.
Intro material comes from the ZDI KZbin channel under CC-BY.
Did you enjoy this video? Then follow us on Twitter, and subscribe to our channel for more awesome hacking videos.
~ Flashback Team
flashback.sh
/ flashbackpwn

Пікірлер: 363
@coreyfournier3345
@coreyfournier3345 Жыл бұрын
As a software developer I would have liked to hear what could have been done to prevent this. Obviously not running everything as root to start with.
@FlashbackTeam
@FlashbackTeam Жыл бұрын
Several mistakes were committed: - running everything as root - mounting the root file system as read-write - hardcoding the encryption key - enabling a network service when it's not necessary (we hadn't configured this feature, it is enabled by default) But most importantly, input wasn't sanitised. Notice that it expects a MAC address, which has a very strict and well known format: aa:bb:cc:dd:ee:ff After copying to an intermediate buffer with a limited size (as they did correctly), they should have validated the MAC address before proceeding. This could have easily been done with a regex, such as: ^[a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}$ In addition, they could have introduced additional security controls, such as a properly configured firewall, sandboxing, etc.
@supermaster2012
@supermaster2012 Жыл бұрын
@Ralph Reilly there's a reason for this, it saves manufacturing costs as they can just flash the same exact image over and over and let the device bootstrap when it's booted up for the first time.
@itzurabhi
@itzurabhi Жыл бұрын
for the C, C++ devs : -Wall -Wextra -Wconversion -Werror
@TonyLee_windsurf
@TonyLee_windsurf Жыл бұрын
@@supermaster2012 One can use public key encryption, at lease hide the private key. Harder for hacker to create diff encrypted pkt.
@thoriumbr
@thoriumbr Жыл бұрын
@@TonyLee_windsurf You can't "hide" the private key, as the software will need it to decrypt the packet. Hard coding the key is terrible because every single router using the same firmware uses the same key. If the key was saved on a file, and checked and generated if the file was missing, it would not be possible to hack every router without physical access to it first.
@HritikV
@HritikV 3 жыл бұрын
It wasn't rushed at all. A perfect explanation at a perfect pace.
@jaimedpcaus1
@jaimedpcaus1 Жыл бұрын
What was "connected pin to line" what was that? What did he say?
@johntoterhi6293
@johntoterhi6293 3 жыл бұрын
Great work guys! Pedro’s explanation of the team’s process of auditing system calls is exceptional. This kind of breakdown is something I rarely see covered in detail.
@ryanduke6784
@ryanduke6784 27 күн бұрын
My god. I think this is the best channel ive seen so far. These dudes are legit
@TheGrimSniper14
@TheGrimSniper14 3 жыл бұрын
We absolutely love these kinds of detailed breakdown of your thought process while looking at a target. Definitely continue doing these types of videos
@Raintiger88
@Raintiger88 Жыл бұрын
I just found your channel yesterday and I'm really enjoying your videos. The information and quality is unmatched!
@prox5784
@prox5784 3 жыл бұрын
That was fantastic and very well put together. Very educational. So excited to see more of this!
@jacoblpeterson
@jacoblpeterson 2 жыл бұрын
Excellent video. I couldn't stop laughing at the `echo urmom>d` hahaha
@myname-mz3lo
@myname-mz3lo 11 ай бұрын
the way you created a file one character at a time is so smart . i would have felt so stuck with the 13 characters .
@surferbum618
@surferbum618 3 жыл бұрын
This was awesome, and thanks for showing your thought process when discovering this vuln. Hope to learn more from you guys in the future
@gauravhksharma5760
@gauravhksharma5760 3 жыл бұрын
Congratulations guys. Looking forward to learning more. Thank you for starting this channel 👍🏼👌🏽
@sombramurk793
@sombramurk793 Жыл бұрын
Awesome guys! What a video... very clear and objective. The exploit sending one char at a time was really dope
@HK-sw3vi
@HK-sw3vi 3 жыл бұрын
mad respect for you guys, what's better than learning from the bests.
@NetworkITguy
@NetworkITguy Жыл бұрын
I never get tired of your voice ;)
@ninoivanov
@ninoivanov Жыл бұрын
... fiiiiinally an actually GOOD channel on such topics...
@kltr007
@kltr007 Жыл бұрын
Thank for sharing this. I like the no-nonsense style. For your first video this is a great piece of work. Like your graphics - a picture says more than thousand words. Must have been a lot of work but it pays back.
@thefastjojo
@thefastjojo 3 жыл бұрын
explanation in the state of art! Brilliant, and waiting for more, congratulations!
@Barqi
@Barqi 3 жыл бұрын
You guys did an amazing job in explaining the exploitation process. For a next video I would love to see more on how you reverse engineer/decrypt the code and the process of analyzing it. Thanks for giving back to the community! You rock!
@FlashbackTeam
@FlashbackTeam 3 жыл бұрын
Thanks for the feedback! We will show that in detail in future videos. Bear in mind there was a serious reverse engineering effort behind all of this. Most functions in the binary were not even defined, and all symbols are our names (the binary had few symbols).
@Barqi
@Barqi 3 жыл бұрын
@@FlashbackTeam I understand. But what for me personally would be super interesting to see, is how to start turning that binary code into code. I think that there are not that many videos on hardware > code > recognising exploitable functions. Again, thanks for giving back to the community!
@RafaelKarosuo
@RafaelKarosuo Жыл бұрын
@@FlashbackTeam I was thinking "how on earth you got all those symbols if the code wasn't compiled for debugging", thanks for the clarification, a lot of effort indeed.
@Harshitshukla88
@Harshitshukla88 Жыл бұрын
You guys rocked🔥 lot of learning in a single video from hardware to binary, reverse engineering to maintaining access .....😃
@paramatus3531
@paramatus3531 Жыл бұрын
I like what you have done there. Very straight forward explenation, and I have to slightly disagree with you saying it was rushed. It was perfect. Longer videos are harder to follow and the amount you put in and the little backstories like being in Laos spiced it up a little. I am looking forward to more of your exploits.
@13DarkWolf
@13DarkWolf 3 жыл бұрын
Really nice and clear breakdown guys and congrats on the bounty!
@0xbitbybit
@0xbitbybit 2 жыл бұрын
Loved it, great explanation with the reversing, thanks guys!
@kshitijnalawade8554
@kshitijnalawade8554 3 жыл бұрын
idk what I should comment now.. Everything I wanted to say like 'this is awesome' and stuff has been said by everyone.. But I'm still commenting to let you guys know that we really need more of this great content from you guys!! Really appreciate it!!
@sven5666
@sven5666 Жыл бұрын
Thank you guys. Absolutely awesome video! Really well structured and presented.
@tehnics-optics4560
@tehnics-optics4560 12 күн бұрын
Hi , Great work guys!!!!!! I just found your channel yesterday and I'm really enjoying your videos !!!!!!!! Everything I wanted to say like 'this is awesome' !!!!!!! Please make longer video about setup your environment and witch program use for exploit for router !
@jvidsonyt
@jvidsonyt Жыл бұрын
Awesome video! Great pace and explanation. The file buildup within the 13 char limit is genius haha. Well done!
@orenishay4175
@orenishay4175 3 жыл бұрын
This video was amazing! Right to the point and I understood everything! thank you!
@JK-pb3vj
@JK-pb3vj 2 жыл бұрын
Blyat, this is the best router exploit video on KZbin by a long way! More of this guys ✌️
@wowimoldaf
@wowimoldaf Жыл бұрын
This is very, very well graphiced exploit explanation. Huge thanks, there are million exploit explanations but i never seen like this one.
@JoshDavidLevy
@JoshDavidLevy 3 жыл бұрын
Really enjoyed this explanation. Great job guys
@kevinnyawakira4600
@kevinnyawakira4600 3 жыл бұрын
That was pretty cool. I will like to see more videos like this one. Also a video of how someone can get started in hardware hacking, tools required will be appreciated
@danielmonzon7396
@danielmonzon7396 3 жыл бұрын
Wow, impressive work guys, learnt so much in a single video. As feedback I would say that it would be cool to have a quick look on the exploiting writing process ;)
@FlashbackTeam
@FlashbackTeam 3 жыл бұрын
Thank you for your feedback! We will go into depth on that in the next videos!
@danielmonzon7396
@danielmonzon7396 3 жыл бұрын
@@FlashbackTeam u are welcome, can't wait to watch them :P
@KaleshwarVhKaleshwarVh
@KaleshwarVhKaleshwarVh 3 жыл бұрын
@@FlashbackTeam yes, I guess, the length of the video doesn't matter for people who will wanna learn. So go for it.
@somsiri9319
@somsiri9319 3 жыл бұрын
Great work! Looking forward to the next video.
@geraldamasi1559
@geraldamasi1559 2 жыл бұрын
The explanation is quite good and making it seem easy. Good guys
@murrij
@murrij Жыл бұрын
Wow! Thank you so much for your work on this video. Explanations are great for someone starting out like me.
@aracystic28
@aracystic28 3 жыл бұрын
This is amazing. Good job guys!
@thebrotherhood1675
@thebrotherhood1675 3 жыл бұрын
brilliant waiting for more!
@EJohnson688
@EJohnson688 3 жыл бұрын
Nice work, thanks for the great deep dive! Keep up the great work on developing that specialty education platform :)
@FlashbackTeam
@FlashbackTeam 3 жыл бұрын
Thanks, will do!
@rdarkmind
@rdarkmind Жыл бұрын
Money well deserved! This was just beautiful. Thanks for sharing guys. I'd have to re-watch the reverse engineering part of the system calls a few times to understand what's happening though 😅
@localman9341
@localman9341 3 жыл бұрын
Amazing content guys. Waiting for more🙃
@cq_YT
@cq_YT 3 жыл бұрын
Awesome work! Wait for more and learn from you.
@davidbristoll195
@davidbristoll195 Жыл бұрын
Very cleverly done. I really enjoyed watching 👍
@brotatobrosaurus5411
@brotatobrosaurus5411 Жыл бұрын
Nice exploit, even better explanation! Great work.
@neuronwave
@neuronwave Жыл бұрын
Absolutely fantastic explanation. Really enjoyed it and understood it!
@iikon69
@iikon69 Жыл бұрын
Great work, love the thought behind constructing the final final in chunks due to the character limitation.
@pincombe
@pincombe Жыл бұрын
Great video, first time I've been aware of a reverse shell before really interesting stuff!
@karolinajoachimczyk3168
@karolinajoachimczyk3168 Жыл бұрын
Panowie, super robota, jako początkujący embeddeddev bardzo dziękuję za content!
@DefconUnicorn
@DefconUnicorn Жыл бұрын
Really nice work dudes, love the idea of building it one char at a time.
@MarKac9090
@MarKac9090 3 жыл бұрын
awesome video! very interesting to watch because you explain it VERY well
@th3p1tbulll
@th3p1tbulll Жыл бұрын
Very nice job! Congratulations boys!!!
@markooo4429
@markooo4429 3 жыл бұрын
Amazing, cant wait for next video
@marcos251
@marcos251 3 жыл бұрын
This is amazing! Great work
@ui4lh
@ui4lh Жыл бұрын
Pure genius the writing to a shell script and then executing lol
@zillzone
@zillzone 3 жыл бұрын
Excellent walkthrough thank you!!
@JBarszczu
@JBarszczu 2 жыл бұрын
This is the best hardware hacking video I have seen in my life. Thank you!
@teslastellar
@teslastellar Жыл бұрын
Thank you so much for explaining the process.
@simyaci12
@simyaci12 3 жыл бұрын
Very inspiring, you both are epic. Thank you for sharing.
@hanshansli2238
@hanshansli2238 10 ай бұрын
thank you guys, great video!
@DursunX
@DursunX Жыл бұрын
non-programmer here i love this breakdown. i get to witness the mindset of successfully exploiting a vulnerability (within a 13 character limitation). i actually got it. most of it made sense even to an 'illiterate' bystander like myself. pwn bounty well deserved!
@bobbydedman5899
@bobbydedman5899 Жыл бұрын
Great job guys. And great video.
@anitsh
@anitsh 3 жыл бұрын
Loved the experience watching the video. As a n00b, I'm thankful for the details presented and would request that even more videos with even more details would be much appreciated. And wish both of you the very best.Cheers,
@nsknyc
@nsknyc 3 жыл бұрын
ah so late for this, but absolutely worth the watch. Congrats guys on this fantastic job. "Looks juicy" my new favorite phrase :p
@aaryanbhagat4852
@aaryanbhagat4852 3 жыл бұрын
Excellent explanation, super cool method of exploit!
@1337BR3AK
@1337BR3AK 2 жыл бұрын
Great video and explanation!
@thatguyinelnorte
@thatguyinelnorte 3 жыл бұрын
Well done Flashback Team!
@ivanprincipato
@ivanprincipato 2 жыл бұрын
Thank you so much for sharing , I learned a lot from this video 🙏
@electrowizard2658
@electrowizard2658 Ай бұрын
great video loved it !!
@ruslanshuster9124
@ruslanshuster9124 Жыл бұрын
Great video, enjoyed a lot! Clever exploit:)
@rizkvn
@rizkvn Жыл бұрын
even this video is more than 10 minutes, I'm take a break from my workload to watch this video nice education video bro, from me who interest on vulnerability hardware
@helmutzollner5496
@helmutzollner5496 Жыл бұрын
Great stuff! Thank you for sharing.
@depth5322
@depth5322 Жыл бұрын
It’s awesome guys. It’s very interesting. Thank you for explanation
@jamesrussell-ui6gd
@jamesrussell-ui6gd Жыл бұрын
great breakdown!
@recepyoldas9894
@recepyoldas9894 3 жыл бұрын
was perfect exploit and explaning
@saketsrv9068
@saketsrv9068 2 жыл бұрын
You guy's are insane, please release nore videos. Highly appreciated
@ogiogi2714
@ogiogi2714 3 жыл бұрын
Got damn it congrats flashback team !!!!
@randomguy3784
@randomguy3784 3 жыл бұрын
Excellent work!
@lucasamorim1300
@lucasamorim1300 3 жыл бұрын
Great explanation! Thank you!
3 жыл бұрын
Awesome, thanks for sharing it!
@jamesarber904
@jamesarber904 Жыл бұрын
Didn't expect to see Dashie in this video. But I'll take it!
@der-andy2407
@der-andy2407 Жыл бұрын
Great work guys
@florianmaetschke9054
@florianmaetschke9054 Жыл бұрын
Great Job! Super good video! keep on
@trevorsmith5991
@trevorsmith5991 Жыл бұрын
Worked , thanks a lot!
@DrewMarold
@DrewMarold Жыл бұрын
Very cool, nice job, guys.
@neroux712
@neroux712 Жыл бұрын
From a developer sight of view, it makes me now think twice about validation of strings from not trust able sources, as the exploit would break if any function in the call chain would check the input values fully also for injection. Very interesting how "easy" it is to gain access when you reach a specific level of knowledge, very nice video and remote Injection method of the remote shell!
@tyaprak
@tyaprak Жыл бұрын
A perfect explanation. Great.
@alreadyputitup
@alreadyputitup Жыл бұрын
great presentation, very clearly communicated
@MagicPlants
@MagicPlants Жыл бұрын
Printing one char at a time to a file due to the charlimit then executing the file was genius!
@greob
@greob 3 жыл бұрын
Well done, no problem with the video. Thanks for sharing.
@flinkiklug6666
@flinkiklug6666 Жыл бұрын
Verry nice job. I don’t understand what you exactly does but it is so a nice idea. I want to learn this. Sooo nice
@niczoom
@niczoom Жыл бұрын
Great video, thanks for the tips.
@leonvolq6179
@leonvolq6179 Жыл бұрын
Perfect explanation, I'm going to copy the part where you go in motorcycles 😄
@loocatme6779
@loocatme6779 Жыл бұрын
You, Sir, are a scholar and a certified badass.
@crazyhacker2437
@crazyhacker2437 2 жыл бұрын
you guys are awesome. Love from India 😍🙏🏻
@gcberto
@gcberto 3 жыл бұрын
Great work!
@outsiderlost
@outsiderlost 2 жыл бұрын
Someone help me with a little "slap" on how to get the online interface login once I'm in it. 🤔 (I know the basics and the location of the hash required for encryption. But it has nothing to do with the online superficial passw) I had a lot of fun with the video anyway! Anyway, I had a great time with the video, let there be more of these tplink stuff..! ✔ 😎
@TheErixcode
@TheErixcode Жыл бұрын
Very educational, thanks alot :)
@machazard009
@machazard009 Жыл бұрын
Nice work guys. Congratulations on the win. Have you always come across routers with root? What about routers with embedded microcontrollers.
@josephseed3393
@josephseed3393 9 ай бұрын
Amazing video! You guys are convincing me to get into IoT and hardware hacking
@fusca14tube
@fusca14tube 2 жыл бұрын
FANTÁSTICO!! Awesome!! Thanks for sharing!
@theblankuser
@theblankuser Жыл бұрын
Dope and well explained
Hacker's Guide to UART Root Shells
17:40
Flashback Team
Рет қаралды 459 М.
DNS Remote Code Execution: Finding the Vulnerability 👾 (Part 1)
29:31
ХОТЯ БЫ КИНОДА 2 - официальный фильм
1:35:34
ХОТЯ БЫ В КИНО
Рет қаралды 2,9 МЛН
1❤️#thankyou #shorts
00:21
あみか部
Рет қаралды 18 МЛН
How Hackers Move Through Networks (with Ligolo)
20:01
John Hammond
Рет қаралды 252 М.
Finding UART and Getting a Root Shell on a Linux Router
20:11
Matt Brown
Рет қаралды 29 М.
Extracting Firmware from Embedded Devices (SPI NOR Flash) ⚡
18:41
Flashback Team
Рет қаралды 534 М.
Fun With HARDWARE HACKING!!! - UART ROOT SHELLS and Finding SECRETS!
31:15
everything is open source if you can reverse engineer (try it RIGHT NOW!)
13:56
Low Level Learning
Рет қаралды 1,2 МЛН
DNS Remote Code Execution: Writing the Exploit 💣 (Part 2)
41:22
Flashback Team
Рет қаралды 17 М.
Hack everything: re-purposing everyday devices - Matt Evans
50:39
Linux.conf.au 2012 -- Ballarat, Australia
Рет қаралды 797 М.
Не обзор DJI Osmo Pocket 3 Creator Combo
1:00
superfirsthero
Рет қаралды 1,3 МЛН
Mi primera placa con dios
0:12
Eyal mewing
Рет қаралды 598 М.
Выложил СВОЙ АЙФОН НА АВИТО #shorts
0:42
Дмитрий Левандовский
Рет қаралды 1,9 МЛН