Hacking The Mojo C-75 - Root Shell via Firmware Modification

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 พ.ค. 2024
  • The Mojo C-75 is a professional grade Wi-Fi router. In this video, we modified the extracted firmware to update the root password hash in the /etc/shadow file to a password we know. Then we reattach the flash chip to the PCB and get a root shell.
    mkfs.jffs2 man page:
    man.archlinux.org/man/mkfs.jf...
    XGecu Software Mirror:
    github.com/Kreeblah/XGecu_Sof...
    XGecu Wine USB Driver DLL:
    github.com/radiomanV/TL866/tr...
    IoT Hackers Hangout Community Discord Invite:
    / discord
    🛠️ Stuff I Use 🛠️
    🪛 Tools:
    XGecu Universal Programmer: amzn.to/4dIhNWy
    Multimeter: amzn.to/4b9cUUG
    Power Supply: amzn.to/3QBNSpb
    Oscilloscope: amzn.to/3UzoAZM
    Logic Analyzer: amzn.to/4a9IfFu
    USB UART Adapter: amzn.to/4dSbmjB
    iFixit Toolkit: amzn.to/44tTjMB
    🫠 Soldering & Hot Air Rework Tools:
    Soldering Station: amzn.to/4dygJEv
    Microsoldering Pencil: amzn.to/4dxPHwY
    Microsoldering Tips: amzn.to/3QyKhrT
    Rework Station: amzn.to/3JOPV5x
    Air Extraction: amzn.to/3QB28yx
    🔬 Microscope Setup:
    Microscope: amzn.to/4abMMao
    Microscope 0.7X Lens: amzn.to/3wrV1S8
    Microscope LED Ring Light: amzn.to/4btqiTm
    Microscope Camera: amzn.to/3QXSXsb
    About Me:
    My name is Matt Brown and I'm an Hardware Security Researcher and Bug Bounty Hunter. This channel is a place where I share my knowledge and experience finding vulnerabilities in IoT systems.
    - Soli Deo Gloria
    💻 Social:
    twitter: / nmatt0
    linkedin: / mattbrwn
    github: github.com/nmatt0/
    #hacking #iot #cybersecurity #righttorepair #jailbreak
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 87

  • @Lifeless11111
    @Lifeless11111 24 วันที่ผ่านมา +33

    One advice i have for you when soldering , is lower your soldering temperature, its way too high , thats why u knock off that resistor so easily. Also you run the risk of just taking off pads at that temperature. I usually just have my soldering station at around 300c for this small thermal mass jobs. Great video btw

  • @marcosscriven
    @marcosscriven 24 วันที่ผ่านมา +16

    I absolutely love that you didn't edit out the agonising wait on booting up to confirm it worked. Great videos as always. Thanks.

    • @mattbrwn
      @mattbrwn  24 วันที่ผ่านมา +4

      haha yeah that wait always seems to take forever!

    • @neilblunden1266
      @neilblunden1266 24 วันที่ผ่านมา +1

      those are the times when i start deep cleaning my keyboard , otherwise it never gets done.

  • @bertblankenstein3738
    @bertblankenstein3738 24 วันที่ผ่านมา +5

    This was a great vid. The soldering is doable, the firmware mod is doable too. The important bits are explained well. And bonus points for using Vim. Thank you.

  • @micahrunyon2743
    @micahrunyon2743 24 วันที่ผ่านมา +10

    So many things to say.
    1. love the videos. it's refreshing to have a old youtube style walk through including and explaining mistakes.
    2. I appreciate you reading and using comment suggestions like zooming in on the command line.

  • @NyahStuff
    @NyahStuff 24 วันที่ผ่านมา +10

    A bit of advice when soldering those types of chips with more than 6 pins:
    I've found it easiest to do when there isn't any solder applied to the pads beforehand - what I do is I put a blob of flux in the middle to just hold the chip in place and then carefully go around and manually apply solder to each pin with the soldering iron once the chip is aligned. Maybe also loog into getting a pointier tip for the soldering iron for that.
    Cheers for the great content!

    • @bertblankenstein3738
      @bertblankenstein3738 24 วันที่ผ่านมา +3

      One of the benefits by soldering the chip by iron is that it doesn't get another cycle of hot air baking.

  • @roguesecurity
    @roguesecurity 23 วันที่ผ่านมา

    Really loved the section where you covered improper soldering let to flash chip not being recorgnized. When working with hardware modifications, there are truly many potential points of failure - such as chips not being soldered correctly, components getting damaged from overheating during the soldering/desoldering process, firmware corruption, other PCB components on PCB getting dislodged etc etc. This type of work undoubtedly demands a tremendous amount of hardwork and patience. Great work, Matt, and thank you for sharing this. I really enjoy your videos.

  • @inq752
    @inq752 22 วันที่ผ่านมา

    one of the best channels. keep pumping out the content in same format

  • @DrXJ
    @DrXJ 24 วันที่ผ่านมา +9

    Some people are just going through products because they have money.. others go throug them like.. "hey, let's go meet your makers and find out what they didn't tell you... you could do." 😂

  • @j_r_-
    @j_r_- 24 วันที่ผ่านมา +1

    Loving the hacking series. we can re-use/re-purpose old devices

  • @elektroschmaus
    @elektroschmaus 24 วันที่ผ่านมา

    I love your style of presentation and the information with/of all the failed attempts. Very instructive and good to follow. Lerned a lot over the time with your videos. Thanks for sharing. I'm already looking forward to the continuation :)

  • @Hyp3rb34m
    @Hyp3rb34m 22 วันที่ผ่านมา

    Great Job! Looking forward to the next one to see what you found in the network traffic; as we used to do some crazy things specifically around spectrum jamming/etc

  • @TechieGanesh
    @TechieGanesh 24 วันที่ผ่านมา +2

    Hey matt, just wanna say I absolutely love your videos!

  • @samhorowitz7593
    @samhorowitz7593 24 วันที่ผ่านมา

    Digging your videos Matt!! Thanks for taking the time to make them!

  • @jake7112
    @jake7112 23 วันที่ผ่านมา

    Great content, love your stuff man. Keep it up! Looking forward to seeing that traffic you mentioned

  • @Lachlan.Wright
    @Lachlan.Wright 24 วันที่ผ่านมา

    incredible. Love this stuff man!

  • @Th3V01d73
    @Th3V01d73 22 วันที่ผ่านมา

    Really cool video. Love your content :)

  • @Rilch
    @Rilch 24 วันที่ผ่านมา

    This stuff is really interesting! Thanks for another cool video! Look forward to the next one one this device :D

  • @RickDkkrd
    @RickDkkrd 24 วันที่ผ่านมา

    Good stuff, thanks for putting the whole process together

  • @mikehensley78
    @mikehensley78 24 วันที่ผ่านมา +1

    Awesome murderfication! :)

  • @foobar9761
    @foobar9761 24 วันที่ผ่านมา

    Very interesting stuff, do please continue!

  • @Alfred-Neuman
    @Alfred-Neuman 24 วันที่ผ่านมา +2

    Now, let's try to find where they installed the backdoor on this system! ;D

  • @dieSpinnt
    @dieSpinnt 4 ชั่วโมงที่ผ่านมา +1

    Just some technicalities and nothing of importance, Matt: "... now, that the solder turned COLD ...".
    Hehehehee. Don't talk that way if professionals are in the room. I may be wrong, because I am German, but I sense that "cold" in conjunction with solder-joints also means a VERY BAD THING in english: Unstable, weak and bad connections (romantics ... the old days ... with LEAD ... were so much better! Just joking. You could see cold solder joints easier with that poison as pat of the solder-alloy). May I suggest: "... until it turns SOLID"? Which is actually what it does, changing its state of aggregation and forming a mechanical and electrical, reliable connection. Well, until you move or shake the joint while the solder is cooling down, which may result in that so called "cold solder joint". A reason for headaches, failures, I mean unrepeatable sporadic failures, in the future.
    I'm sorry if I got too emotional when I am talking about our(my?) NEMESIS as e-engineers and service personal, etc. Hehehehe:)

  • @DataToTheZero
    @DataToTheZero 24 วันที่ผ่านมา +1

    Excited for this one!

  • @richardj163
    @richardj163 24 วันที่ผ่านมา

    Awesome video, thank you once again :)

  • @tangerinq
    @tangerinq 21 วันที่ผ่านมา

    Nice video. As to XGecu issues, I'm also using an XGecu programmer (TL866II Plus) but I've never experienced any of these. Possibly because I don't use flux when removing the chip, so chip legs don't get covered in non-conductive thing. As to erase failing, never seen this before as well. I suspect this might be an artifact of running the software in wine.

  • @Saturate0806
    @Saturate0806 24 วันที่ผ่านมา

    damn, I'm impressed over the upload rate

  • @ThanassisTsiodras
    @ThanassisTsiodras 24 วันที่ผ่านมา

    Nice work, Matt! Looking fwd to what you'll do now that you are root :-)

  • @memejeff
    @memejeff 23 วันที่ผ่านมา

    Great video

  • @georgzimmer4627
    @georgzimmer4627 19 วันที่ผ่านมา

    Awesome!

  • @seba123321
    @seba123321 24 วันที่ผ่านมา

    nice! great good tutorial.

  • @denizakkaya4497
    @denizakkaya4497 24 วันที่ผ่านมา +2

    This is very nice work. One question though.. non of the firmware or password file is not verified with a check sum or some sort of signature with other chip. That’s a little bit interesting. You said you have done this first time but is this way a common implementation?
    One more time, great job!

    • @mattbrwn
      @mattbrwn  24 วันที่ผ่านมา

      Yes some embedded systems will use secure boot to verify the kernel, filesystems, etc. but in practice you don't see it implemented much on consumer IoT devices.

  • @al_lazy3519
    @al_lazy3519 24 วันที่ผ่านมา

    Great job on your work! My guess on the write fail at 25MHz is that the second socket for the smd adds too much capacitance to have a reliable communication.

    • @mattbrwn
      @mattbrwn  24 วันที่ผ่านมา +1

      yeah that makes sense!

  • @memejeff
    @memejeff 23 วันที่ผ่านมา

    YEAHHH BABY, YEAH

  • @pablopoo
    @pablopoo 24 วันที่ผ่านมา +4

    Tried to imagine when a developer/contributor committed the “cowardly” message to the upstream code as a joke, and that message is still there to these days. 😁😂

    • @mattbrwn
      @mattbrwn  24 วันที่ผ่านมา +6

      github.com/torvalds/linux/blob/eb6a9339efeb6f3d2b5c86fdf2382cdc293eca2c/fs/jffs2/scan.c#L266

    • @Rilch
      @Rilch 24 วันที่ผ่านมา

      @@mattbrwn 12 years ago x D

    • @Spudz76
      @Spudz76 22 วันที่ผ่านมา +1

      "Cowardly refusing" is widespread, such as if you try to tell tar to make an empty archive. Basically the oldest meme in the UNIXsphere.

  • @zisumevoli96
    @zisumevoli96 24 วันที่ผ่านมา +1

    I've seen a similar behavior when writing custom bootloader code where it fails to respond in time to the erase command, or responds with failure, although the erase was successful

  • @Gritaremos
    @Gritaremos 24 วันที่ผ่านมา

    this is awesome stuff! How would have you dealt with it if the microchips had the "erase if read" bit set and the name/logo had been scratched off the surface? This is what I usually see when manufacturers want to add protection to these products.

    • @mattbrwn
      @mattbrwn  24 วันที่ผ่านมา +4

      "erase if read"
      I've never seen something like this before on an discrete flash chip. You might be thinking of an internal flash on a microcontroller?
      Think about it: How would the CPU ever read flash data if it erased itself on a read operation?

    • @Gritaremos
      @Gritaremos 22 วันที่ผ่านมา

      @@mattbrwn Great point! I guess I was thinking of a microcontroller. I am assuming at that point it may be easier to find the flash chip and attack it instead?

  • @AnthonyZenrick
    @AnthonyZenrick 24 วันที่ผ่านมา +1

    I'd have binary edited the flash image directly. The salted hash is the same length, so it's a drop in replacement. The image is unencrypted and uncompressed, and the filesystem image within it, is unencrypted and uncompressed. No change in file size, and a bunch of recombination steps, get skipped.

    • @mattbrwn
      @mattbrwn  24 วันที่ผ่านมา

      This is a good idea, however:
      "the filesystem image within it, is ... uncompressed"
      This is not true.
      > strings u8fw.bin | grep 'root:$1' | wc -l
      0

  • @Electrically-Electronic
    @Electrically-Electronic 24 วันที่ผ่านมา

    Great

  • @thomapple
    @thomapple 23 วันที่ผ่านมา

    Isn't it way easier to resolder the chip with the soldering iron instead of hot air? I always do it this way

  • @RobertGallop
    @RobertGallop 24 วันที่ผ่านมา +1

    Are you going to follow up with a way to root without hardware mods? Is there any setuid, or something that a stock box could be rooted with? Not sure if there is anything, but maybe? Or are you closing this series out?

    • @mattbrwn
      @mattbrwn  24 วันที่ผ่านมา

      not closing the series out, but haven't found a way to root without firmware mod yet.

    • @RobertGallop
      @RobertGallop 24 วันที่ผ่านมา

      Good luck sir, your skills are awesome to observe, if there is one you’ll get it! And I look forward to learning what you find!

  • @AlfaOxTrot.
    @AlfaOxTrot. 24 วันที่ผ่านมา

    You will become viral

  • @HandFromCoffin
    @HandFromCoffin 24 วันที่ผ่านมา +1

    I wish I was smart like this..

  • @Kilogya
    @Kilogya 24 วันที่ผ่านมา

    Are able or going to do phones at some point? I'm probably asking too much, but my own research is leading to dead ends. I also want to modify a phone with a snapdragon one of these days. I have a J7 Prime (Metro) and the bootloader is locked. Essentially the settings for bootloader unlocking in developer options seems to be permanently disabled. The phone is made by samsung and it's a Galaxy J7 Prime (MetroPCS) model. Probably impossible for me, but I am aiming to have a cool lab too one day.

  • @chaman469
    @chaman469 22 วันที่ผ่านมา

    I've just discovered your channel and... whaou ! Now I'm looking for any device in my home where I can try to hack 😅 my concern is that I've heard that some chips may have some safety erase function in case of unauthorized access 😢 have you ever encountered this case ?

    • @mattbrwn
      @mattbrwn  21 วันที่ผ่านมา

      Never encountered this. Just go for it. Make sure it's a device you are ok bricking!

  • @xrafter
    @xrafter 24 วันที่ผ่านมา

    Does it default to little endian or your native system endian?
    Either case it is good to have the -b to make it repudicable.

    • @mattbrwn
      @mattbrwn  24 วันที่ผ่านมา +1

      you might be right. might be the native system's endianness.

    • @Spudz76
      @Spudz76 22 วันที่ผ่านมา +2

      "File systems are created with the same endianness as the host, unless the -b or -l options are specified." from the manpage

  • @xrafter
    @xrafter 24 วันที่ผ่านมา

    Didn't know mkfs could make a binary image from a "regular" directory. I thought they used dd or something for that.

  • @AymanAlhkeemi
    @AymanAlhkeemi 3 วันที่ผ่านมา

    Hello friends anyone know how i can repacking the firmware and bypass the crc signatures

  • @NikiBretschneider
    @NikiBretschneider 23 วันที่ผ่านมา

    After seeing this I am happy I've bought "older" version of that programmer called TL866-II, because there is minipro - the alternative control software for that programmer made by David Griffith, which is perfectly hassle free…and it has command line interface which is easy to integrate with other parts of build chain like gmake. As far as I know there is also some experimental support for newer programmer in the last version, so maybe, just maybe, there would be some way how to modify it to your device too…which, in fact, would be great. The original software is horrible.
    Is it possible to mount jffs filesystem in rw mode through loop device? Idk, but if this is possible, then it would be much easier way how to modify that firmware file. Some FS cannot be mounted this way (e.g. iso9660) but sometimes, well, you are lucky enough :3.

    • @mattbrwn
      @mattbrwn  23 วันที่ผ่านมา

      Yeah I saw that project for the TL866-II. Really want that for the T56

  • @robertkeyes258
    @robertkeyes258 24 วันที่ผ่านมา

    Couldn't you have avoided lots of erase block size and endianness by mounting the original firmware as a loopfs, modify /etc/passwd, and then unmount and unloop it?

    • @Spudz76
      @Spudz76 22 วันที่ผ่านมา

      Not without using mtdram or nandsim both of which also need to be told how to act like the real flash chip (aka still have to know the right eraseblock size and all)

  • @mikehensley78
    @mikehensley78 24 วันที่ผ่านมา

    Whats up, everybody!?!

  • @PrimalNaCl
    @PrimalNaCl 24 วันที่ผ่านมา

    It would have been much easier to mount your copy of the image file with the loop device, alter the shadow file, and unmount it. No having to dork around with trying to repackage the exploded contents.

    • @Spudz76
      @Spudz76 22 วันที่ผ่านมา

      Not without using mtdram or nandsim both of which also need to be told how to act like the real flash chip (aka still have to know the right eraseblock size and all)

    • @PrimalNaCl
      @PrimalNaCl 18 วันที่ผ่านมา

      @@Spudz76 mtdram or block2mtd; nandsim is a brutal pita to get right. Regardless, outside of nandsim, it's a faster/easier iterative process (even in a pure brute-force scenario) than repackaging the exploded fs, writing to actual nand, resolding to the board, and holding one's breath during the boot process. :)

  • @Reiner.
    @Reiner. 24 วันที่ผ่านมา

    nice

  • @kockry
    @kockry 24 วันที่ผ่านมา

    Disassemble hikvision camera to hack firmware

  • @avri210984
    @avri210984 24 วันที่ผ่านมา

    You could have just changed the config user shell and you could gain root that way without overwriting the root user password

    • @xrafter
      @xrafter 24 วันที่ผ่านมา

      If config isn't able to run sh then that won't work. However it seems all of that is provided by busybox. So I would assume you can't change the permissions of one command withoud affecting the entire suite.

    • @xrafter
      @xrafter 24 วันที่ผ่านมา

      Also the config user has a UID 0 shared with another 2. I didn't know this was possible. Anyway, UID 0 means he should be able to run sh.

    • @mattbrwn
      @mattbrwn  24 วันที่ผ่านมา +1

      I could have just changed X and gained root, where X is an infinite set of firmware modifications.
      ;)

  • @garyl6031
    @garyl6031 24 วันที่ผ่านมา

    firmware murderfication ... priceless.

  • @al73r
    @al73r 24 วันที่ผ่านมา

    sent you a msg on linkedin :-)

  • @pgriggs2112
    @pgriggs2112 11 วันที่ผ่านมา

    Why not just he edit the disk image directly with the hash? Skip all the mkfs stuff.

  • @Chris-kx5lp
    @Chris-kx5lp 24 วันที่ผ่านมา

    This was great

  • @MichaelLindsey
    @MichaelLindsey 24 วันที่ผ่านมา

    informative, and entertaining, and I would give ya a B on the solder job. LOL, I like the comment also from @lifeless11111 however the heat isn't as much an issue is the tip size when work with surface mount parts.