0x00
本教程需要wsl环境,需要在wsl中安装、配置好python3环境。以及后续编译固件需要访问国外网站 从中访问国外网站的工具,我使用proxychains,具体配置详情见百度~
0x01
首先对小米路由原生固件进行破解,通过Github搜索,找到exp脚本。 目前只支持破解原生固件 2.28.62 到 2.28.132 于是clone下来。
代码语言:javascript复制proxychains git clone https://github.com/acecilia/OpenWRTInvasion.git
cd OpenWRTInvasion
sudo proxychains pip3 install -r requirements.txt
sudo proxychains python3 remote_command_execution_vulnerability.py
提示输入Router IP address [press enter for using the default 直接回车 当提示输入stok的时候,你需要登录小米路由后台,在浏览器参数stok中获取值,复制并粘贴 若中间破解失败,检查下是否已具备科学上网条件。
0x02
路由破解成功后,我们需要telnet的方式,连接上路由并刷入breed。
代码语言:javascript复制telnet 192.168.31.1
dd if=/dev/mtd3 of=/tmp/eeprom.bin
用WinSCP的FTP把eeprom.bin备份到本地
代码语言:javascript复制cd /tmp && wget https://breed.hackpascal.net/breed-mt7688-reset38.bin && mv breed-mt7688-reset38.bin breed.bin
mtd write breed.bin Bootloader
按住路由Reset按键3秒通电进入Breed,刷eeprom后双清。
0x03
在上面我们已经成功的刷入breed了,那么开始编译Openwrt固件,我首先选用的是lede,主要能保证编译成功。由于官方并不支持小米路由4c,通过论坛搜索,找到国外老哥**@MacTavishAO**的仓库:https://github.com/MacTavishAO/openwrt,但是他的dts文件的分区,并不适用于本教程,因此改动成如下
代码语言:javascript复制 partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
partition@50000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x50000 0x1000000>;
};
但是具体的改动了哪些文件,详情见链接
代码语言:javascript复制https://github.com/ITJoker233/lede/commit/7c46ed3605def221b749fcf356dba5c865a9c54e
以下是编译过程
代码语言:javascript复制proxychains git clone https://github.com/ITJoker233/lede
cd lede
sudo proxychains apt-get update
sudo proxychains apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs gcc-multilib g -multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler antlr3 gperf swig
sed -i 's/#src-git helloworld/src-git helloworld/g' ./feeds.conf.default
proxychains ./scripts/feeds update -a
./scripts/feeds install -a
cp xiaomi-router-4c.config .config
开始下载dl等配置并编译
代码语言:javascript复制proxychains make download -j8
make -j1 V=s
具体速度取决于你的电脑配置,大概10-30分钟左右编译完成~ 这有一份已经编译好的固件,均带科学上网插件,推荐无ipv6版本,可以自行下载通过Breed刷入 固件下载(中文)不带ipv6版本 固件下载(中文)带ipv6版本