xiaomiR4c openwrt

文章目录

openwrt 安装

  • Router:xiaomi R4C
  • 官方固件:openwrt 23.05.5 (下图标红处)
  • 官方教程
  • 下载 OpenWRTInvasion
  • python remote_command_execution_vulnerability.py
    • 按照提示输入。路由器后台地址是192.168.31.1,密码就是后台密码(stok参数可以自动获取,不用记)
  • 然后通过 telnet 192.168.31.1 登录进路由器 (User: root - No password)
    • cd /tmp
    • 下载openwrt.bin文件,路由器中的wget无法下载https,我是先下载到本地
  • mtd -r write /tmp/openwrt.bin OS1 ,如下图所示

接着,WiFi 信号消失,最初以为又要变砖了。去B站看了视频,发现up主用的是以太网访问了 192.168.1.1,于是想到用网线连上路由器和电脑进行配置,果然成功了。

致谢:UP主DUX2468的视频

openwrt 配置

Status System Network
Overview Routing Firewall System Log Processes Administration Software Startup Scheduled Tasks Interfaces Wirelesss Switch Routing DHCP and DNS

开启WiFi

openwrt 安全和开启WiFi

添加WiFi密码

记得 Enable,以及Save & Apply

救砖

小米有个救砖工具,原理应该是通过网线连接电脑和路由器,将原版固件导入到Router,之前刷坏了一个R4A(刷breed后无WiFi),救砖工具没有奏效,刷 breed 有风险。

minieap

首次启动可能出现如下错误

[E] 无法打开配置文件: No such file or directory (2)
[W] 配置文件解析出错,请注意命令行参数是否完整

启动认证命令

shell 复制代码
minieap -u username -p password -n eth0.2 --module rjv3 -w
  • 重要文件:/etc/minieap.conf, /var/log/minieap.log
  • -w 会将命令行的参数更新到配置文件

编译

Reference: https://www.cnblogs.com/yellowsea/p/17152106.html

  1. 确定路由器的架构 Architecture(路由器后台管理会有),比如xiaomi R4C是 MT7628
  2. 到 OpenWrt 官网下载对应的sdk源码(我的是23.05.5),https://downloads.openwrt.org/releases/23.05.5/targets/ramips/mt76x8/,找到 openwrt-sdk-23.05.5-ramips-mt76x8_gcc-12.3.0_musl.Linux-x86_64.tar.xz
  3. 在Linux环境编译:
shell 复制代码
# 源码解压
xz -d <xxxx.tar.xz> # 先进行第一层解压
tar -xvf <xxxx.tar> # 再进行第二层解压
cd <解压后sdk文件夹内>

# 依赖安装
apt install  libncurses5-dev  zlib1g-dev  gawk  flex  patch   git-core g++   subversion

# 克隆仓库到 ./package/minieap 位置
git clone https://github.com/KumaTea/openwrt-minieap.git package/minieap
# 选择要编译的package, 会进入 UI界面
make menuconfig

依次选择Network、选中minieap(按y键选中,选中后左边会显示[*])、选择Save、ok、Exit,退出到shell即可

shell 复制代码
# 开始编译
make package/minieap/compile V=s

在编译完成后,我们可以在 <sdk目录>/bin/packages/mipsel_24kc/base 目录下找到 minieap_0.93-1_mipsel_24kc.ipk 软件包。

登录到Openwrt 后台,System -> Software -> Upload Package,install

通过ssh连接到路由器,which minieap 看是否安装成功

参数帮助

shell 复制代码
root@OpenWrt:/tmp# minieap -h
    --kill, -k [1]  终止其他实例并退出。加任意非 0 参数表示终止其他实例后继续进行认证
    --save, -w #    保存本次认证所用参数
    -u <...>   # 用户名
    -p <...>   # 密码
    -n <...>   #  监听的网卡, `ip a` 查看
    --stage-timeout, -t <num>       单个认证阶段的超时时间 [默认5]
    --wait-after-fail, -r <num>     认证失败后重新认证前的等待时间(但当服务器要求重新认证时将直接开始认证)[默认30]
    --max-fail, -l <num>    最大允许认证失败次数 [默认3]
    --no-auto-reauth, -x    认证掉线后不允许自动重连 [默认1]
    -b <0-3>  # 后台运行方式: 
              #   0 = 不后台 [默认]
              #   1 = 后台运行,关闭输出
              #   2 = 后台运行,输出到当前控制台
              #   3 = 后台运行,输出到日志文件
    --proxy-lan-iface, -z <...>     代理认证时的 LAN 网络界面名 [默认无]
    --auth-round, -j <num>  需要认证的次数 [默认1]
    --max-retries <num>     最大超时重试的次数 [默认3]
    --pid-file <...>        PID 文件路径,设为none可禁用 [默认/var/run/minieap.pid]
    --conf-file <...>       配置文件路径 [默认/etc/minieap.conf]
    --if-impl <...>         选择此网络操作模块,仅允许选择一次 [默认为第一个可用的模块]
    --pkt-plugin <...>      启用此名称的数据包修改器,可启用多次、多个 [默认无]
    --module <...>          同上。当命令行选项中存在 --module 或 --pkt-plugin 时,配置文件中的所有 module= 行都将被忽略
    --log-file <...>        日志文件路径 [默认/var/log/minieap.log]
    --script <...>  事件脚本 认证成功后运行此命令[默认无]

以下是可用的网络操作模块:

    sockraw (采用RAW Socket进行通信的轻量网络接口模块)

以下是可用的数据包修改插件及其选项:

    插件名称: printer (将流经此插件的数据包内容打印出来)
        此插件无选项可用

    插件名称: rjv3 (来自 hyrathb@GitHub 的 Ruijie V3 验证算法)
    --heartbeat, -e <num>           心跳间隔秒数 [默认60]
    --eap-bcast-addr, -a <0-1>      Start 包广播地址: [默认BROADCAST_STANDARD]
                                        0 = 标准地址
                                        1 = 锐捷私有地址
    --dhcp-type, -d <0-3>   # 0 = 不使用 DHCP
                            # 1 = 二次认证
                            # 2 = 认证后 DHCP[默认]
                            # 3 = 认证前 DHCP
    --dhcp-script, -c <...>         二次认证之间及认证完成后运行此命令 [默认无]
    --rj-option <type>:<value>[:r]  自定义认证字段,其中 type 和 value 必须为十六进制串
                                        如 --rj-option 6a:000102 表示新增一条类型为 0x6a、内容为 0x00 0x01 0x02的字段
                                        :r 表示替换内置生成的字段,如 --rj-option 6f:000102:r 表示将内置算法生成的类型为 0x6f 的字段内容替换为 0x00 0x12 0x02
                                        当命令行与配置文件中同时存在此选项时,两处的选项都将发挥作用。若认证失败,请检查配置文件中是否有错误的参数
    --service <str>                 自定义服务名 [默认internet]
    --version-str <str>             自定义版本字符串 [默认RG-SU For Linux V1.0]
    --fake-dns1 <str>               自定义主 DNS 地址(点分十进制 IPv4 格式) [默认自动获取]
    --fake-dns2 <str>               自定义次 DNS 地址(IPv4 / IPv6 不限) [默认自动获取]
    --fake-serial <str>             自定义硬盘序列号 [默认自动获取]
    --max-dhcp-count <num>          二次认证时等待 DHCP 结果的允许超时次数 [默认3]
        从 --service 到 --fake-serial(除 --fake-dns1)都是对应的 --rj-option 的简单形式,可直接使用 ASCII 字符串作为参数,不需转化为十六进制表示
相关推荐
我要学编程(ಥ_ಥ)4 小时前
初始JavaEE篇 —— 网络原理---传输层协议:深入理解UDP/TCP
java·网络·tcp/ip·udp·java-ee
百事可乐☆4 小时前
全局webSocket 单个页面进行监听并移除单页面监听
网络·websocket·网络协议
深圳启明云端科技4 小时前
WiFi、蓝牙共存,物联网无线通信技术,设备无线连接数据传输应用
网络·物联网·智能家居
dengjiayue5 小时前
OSI 网络 7 层模型
网络
cnsinda_sdc5 小时前
信创数据防泄漏中信创沙箱是什么样的安全方案
运维·网络·安全·源代码管理·源代码防泄密·源代码加密
深圳启明云端科技6 小时前
潮玩设备AI语音交互方案,ESP32-S3芯片模组物联网通信技术
网络·物联网·音视频·智能家居
搬砖的果果7 小时前
爬虫代理服务要怎么挑选?
网络·爬虫·网络协议·tcp/ip
HackKong8 小时前
高校网络安全_网络安全之道
java·网络·c++·python·学习·web安全·黑客技术
只抄8 小时前
随身 WiFi 连接 X-Wrt 共享网络与 IPv6 中继配置
网络·智能路由器
coniting1238 小时前
【H3CNE邓方鸣】IPv6+2024.12.23
网络