当前位置: 首页 > news >正文

xiaomiR4c openwrt

文章目录

  • openwrt 安装
  • openwrt 配置
    • 开启WiFi
  • 救砖
  • minieap
    • 编译
    • 参数帮助

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 配置

StatusSystemNetwork
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] 配置文件解析出错,请注意命令行参数是否完整

启动认证命令

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环境编译:
# 源码解压
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即可
在这里插入图片描述

# 开始编译
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 看是否安装成功

参数帮助

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 字符串作为参数,不需转化为十六进制表示

http://www.mrgr.cn/news/81065.html

相关文章:

  • 免费开源!推荐一款网页版数据库管理工具!
  • nodejs:nodejs的技巧有哪些
  • 景联文科技:精准语音标注,驱动语音技术新发展
  • 音视频学习(二十五):ts
  • python rabbitmq实现简单/持久/广播/组播/topic/rpc消息异步发送可配置Django
  • Conda 使用全解析:从入门到精通
  • 2.6 网络面试问题
  • 音视频入门基础:AAC专题(13)——FFmpeg源码中,获取ADTS格式的AAC裸流音频信息的实现
  • strongswan测试证书生成
  • css
  • CDN信息收集(小迪网络安全笔记~
  • FLV视频封装格式详解
  • dockerfile文档编写(3):构建失败后清理缓存(删除容器和镜像相关命令)
  • Day13 用Excel表体验梯度下降法
  • 某狐畅游24校招-C++开发岗笔试(单选题)
  • 一起学Git【番外篇:如何在Git中新建文件】
  • 【全栈开发】----用pymysql库连接MySQL,批量存入
  • Vue3:uv-upload图片上传
  • 数智化医院分布式计算框架融合人工智能方向初步实现与能力转换浅析
  • SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql
  • UITableView实现通讯录效果
  • javaEE-多线程编程-3
  • 某政银行APP登陆逆向
  • go聊天系统项目6-服务端发送消息
  • SSH特性|组成|SSH是什么?
  • 精通Redis