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

Ғылым және технология

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

Пікірлер: 88

  • @Lifeless11111
    @Lifeless111112 ай бұрын

    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
    @marcosscriven2 ай бұрын

    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

    2 ай бұрын

    haha yeah that wait always seems to take forever!

  • @neilblunden1266

    @neilblunden1266

    2 ай бұрын

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

  • @bertblankenstein3738
    @bertblankenstein37382 ай бұрын

    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.

  • @NyahStuff
    @NyahStuff2 ай бұрын

    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

    2 ай бұрын

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

  • @micahrunyon2743
    @micahrunyon27432 ай бұрын

    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.

  • @roguesecurity
    @roguesecurity2 ай бұрын

    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.

  • @elektroschmaus
    @elektroschmaus2 ай бұрын

    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
    @Hyp3rb34m2 ай бұрын

    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

  • @samhorowitz7593
    @samhorowitz75932 ай бұрын

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

  • @DrXJ
    @DrXJ2 ай бұрын

    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." 😂

  • @Garock2
    @Garock211 күн бұрын

    Congratz. This video opened my mind for these kind of modifications xD keep up the good work

  • @inq752
    @inq7522 ай бұрын

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

  • @TechieGanesh
    @TechieGanesh2 ай бұрын

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

  • @j_r_-
    @j_r_-2 ай бұрын

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

  • @jake7112
    @jake71122 ай бұрын

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

  • @Rilch
    @Rilch2 ай бұрын

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

  • @Lachlan.Wright
    @Lachlan.Wright2 ай бұрын

    incredible. Love this stuff man!

  • @RickDkkrd
    @RickDkkrd2 ай бұрын

    Good stuff, thanks for putting the whole process together

  • @foobar9761
    @foobar97612 ай бұрын

    Very interesting stuff, do please continue!

  • @mikehensley78
    @mikehensley782 ай бұрын

    Awesome murderfication! :)

  • @DataToTheZero
    @DataToTheZero2 ай бұрын

    Excited for this one!

  • @mikehensley78

    @mikehensley78

    2 ай бұрын

    hell yeah!

  • @Th3V01d73
    @Th3V01d732 ай бұрын

    Really cool video. Love your content :)

  • @richardj163
    @richardj1632 ай бұрын

    Awesome video, thank you once again :)

  • @ThanassisTsiodras
    @ThanassisTsiodras2 ай бұрын

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

  • @tangerinq
    @tangerinq2 ай бұрын

    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
    @Saturate08062 ай бұрын

    damn, I'm impressed over the upload rate

  • @Alfred-Neuman
    @Alfred-Neuman2 ай бұрын

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

  • @al_lazy3519
    @al_lazy35192 ай бұрын

    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

    2 ай бұрын

    yeah that makes sense!

  • @georgzimmer4627
    @georgzimmer46272 ай бұрын

    Awesome!

  • @dieSpinnt
    @dieSpinntАй бұрын

    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:)

  • @zisumevoli96
    @zisumevoli962 ай бұрын

    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

  • @memejeff
    @memejeff2 ай бұрын

    Great video

  • @seba123321
    @seba1233212 ай бұрын

    nice! great good tutorial.

  • @DawidKellerman
    @DawidKellermanАй бұрын

    Earned you a subscribe! ;)

  • @memejeff
    @memejeff2 ай бұрын

    YEAHHH BABY, YEAH

  • @deniz-akkaya-x
    @deniz-akkaya-x2 ай бұрын

    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

    2 ай бұрын

    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.

  • @pablopoo
    @pablopoo2 ай бұрын

    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

    2 ай бұрын

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

  • @Rilch

    @Rilch

    2 ай бұрын

    @@mattbrwn 12 years ago x D

  • @Spudz76

    @Spudz76

    2 ай бұрын

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

  • @thomapple
    @thomapple2 ай бұрын

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

  • @AnthonyZenrick
    @AnthonyZenrick2 ай бұрын

    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

    2 ай бұрын

    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-Electronic2 ай бұрын

    Great

  • @Gritaremos
    @Gritaremos2 ай бұрын

    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

    2 ай бұрын

    "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

    2 ай бұрын

    @@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?

  • @AymanAlhkeemi
    @AymanAlhkeemiАй бұрын

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

  • @xrafter
    @xrafter2 ай бұрын

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

  • @AlfaOxTrot.
    @AlfaOxTrot.2 ай бұрын

    You will become viral

  • @HandFromCoffin
    @HandFromCoffin2 ай бұрын

    I wish I was smart like this..

  • @RobertGallop
    @RobertGallop2 ай бұрын

    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

    2 ай бұрын

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

  • @RobertGallop

    @RobertGallop

    2 ай бұрын

    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!

  • @xrafter
    @xrafter2 ай бұрын

    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

    2 ай бұрын

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

  • @Spudz76

    @Spudz76

    2 ай бұрын

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

  • @chaman469
    @chaman4692 ай бұрын

    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

    2 ай бұрын

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

  • @mikehensley78
    @mikehensley782 ай бұрын

    Whats up, everybody!?!

  • @robertkeyes258
    @robertkeyes2582 ай бұрын

    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

    2 ай бұрын

    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)

  • @NikiBretschneider
    @NikiBretschneider2 ай бұрын

    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

    2 ай бұрын

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

  • @Reiner.
    @Reiner.2 ай бұрын

    nice

  • @PrimalNaCl
    @PrimalNaCl2 ай бұрын

    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

    2 ай бұрын

    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

    2 ай бұрын

    @@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. :)

  • @CandyGramForMongo_
    @CandyGramForMongo_2 ай бұрын

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

  • @al73r
    @al73r2 ай бұрын

    sent you a msg on linkedin :-)

  • @kockry
    @kockry2 ай бұрын

    Disassemble hikvision camera to hack firmware

  • @avri210984
    @avri2109842 ай бұрын

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

  • @xrafter

    @xrafter

    2 ай бұрын

    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

    2 ай бұрын

    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

    2 ай бұрын

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

  • @garyl6031
    @garyl60312 ай бұрын

    firmware murderfication ... priceless.

  • @Chris-kx5lp
    @Chris-kx5lp2 ай бұрын

    This was great

  • @MichaelLindsey
    @MichaelLindsey2 ай бұрын

    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.

Келесі