Are you measured DI, DO, CLK and CS from SPI?Is the same with pins from NAND? GND and VCC is sure, but I don't know how enable CHIP_SELECT after, because I don't have any jumper on mainboard. As far as I know pin 9 on the NAND is the one responsible for CHIP_SELECT but possible to be something else. Unfortunately under NAND don't have any SPI circuits:
Yes I know, but I have the modified firmware of the RM2100 in my R2100, therefore I can only upgrade with the R2100 software. The good thing is that it works without any problems, I still would prefer to have the right kernel for my device installed that I can install the right original firmware.
So is there any way to extract a flashable kernel image from the firmware.bin or can we only do it from an installation by dumping the kernel partition??
It seems PatrickM managed to get it working (eventually) earlier in the thread, so at least I know it works on at least one other person's unit...
Do note that it does target 1.0.14, as that's the one image downloadable on the Xiaomi site one can recover to at the moment. I would encourage people to save themselves a copy. I don't think Xiaomi would be able to effectively stop downgrades/recovery to that image without flashing a new u-boot version with the image blacklisted, but I don't think they'd do that in the field as they haven't done it before.
I've been working on documenting the general process on the OpenWrt wiki and getting the RM2100/Redmi Router AC2100 into master in the meantime.
To make the exploit a bit easier I made a script simulating a PPPoE server. I tested it on Windows and Linux with the RM2100 router and it was able to successfully set up the connection. I only tried the reboot exploit and it successfully triggers it. If anyone could try it with the black cylinder and see if it works with the reverse shell I would be thankful
EDIT: If your router mac address doesn't start with 88:c3:97 (mine starts with 8c:53:c3) the exploit script might send the package the wrong way. In that case you have to switch dst an src or hardcode your mac address @namidairo any idea if this could be fixed?
It should be possible to get router MAC from the PADI packet.
To make it really easy it would be nice to use only the WAN port, so i'm going to try to setup a working PPPoE connection for accessing the shell. But i have to figure out how to change exploit payload first :P.
The PADI doesn't contain the necessary Session ID (Could be hardcoded in my script) and if the exploit triggers to early it doesn't respond to the MD5 Challenge.
Yeah would be great if it would work with WAN port only. I'm currently helping someone with the setup and wrote a small tutorial how to do it with WAN + Android phone^^ Since I'v already written it I'll attach it if anyone is interested.
Download "NetTools" and "Simple-HttpServer"
In NetTools check Listen and enter 31337 for Port
In Simple-HttpServer go to Setting and set the Document Root to "/storage/emulated/0/Download"
Hi Percy, great work! One question... Can I directly modify the Mac ID in the script ?
' if src.startswith("88:c3:97") :
src,dst = dst,src '
' if src.startswith("8c:53:c3") :
src,dst = dst,src'