• 欢迎大家分享资料!前往留言板评论即可!

网卡模式下获取Air720的运行状态

合宙 模组资料网 8个月前 (05-15) 213次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

背景

  1. 需要获取联网状态,设备识别号(IMEI),ICCID,重启设备
  2. 通过AT可以获取网络状态,SIM的ICCID
  3. linux下需要修改内核驱动才能出AT口

效果预览

获取信息

{
   "sysinfo": {
      "hardware_version": "NZ_SSG_V20",
      "device_name": "MIFI",
      "version_num": "NZ_NZ_CP_2.174.000X",
      "version_date": "Oct  6 2018",
      "model_name": "LV01",
      "main_chip_name": "PXA1802",
      "ssg_version": "LV01MVL01",
      "ssg_compile_time": "Oct  6 2018 10:38:24",
      "current_device_mac": "ac:3d:d3:d5:6d:af"
   },
      "wan": {
          // ...
         "IMEI": "869300038716XXX"
         // ...
    }
   //... 剩下的省略
}

突破口

  1. 设备自带一个网页管理工具
  2. 该工具需要登录,基于变种的Digest realm登录验证
  3. 网页是通过ajax访问/xml_action.cgi读取和操作设备
  4. 必须先完成一次登录,才能通过普通的Digest realm机制访问xml_action

操作流程

1. 访问/login.cgi,服务器返回header WWW-Authenticate
2. 解析WWW-Authenticate,得到nonce
3. 先使用uri=/cgi/protected.cgi生成签名,作为url参数. 这点非常重要
4. 再使用uri=/cgi/xml_action.cgi生成普通的Digest realm签名,放入header
5. 使用上两步的参数和签名,访问/login.cgi, 服务器返回200代表登录成功,500代表失败
6. 使用普通Digest realm签名,访问/xml_action.cgi, 可以读取和操作设备

Digest realm签名算法简介

https://zh.wikipedia.org/wiki/HTTP%E6%91%98%E8%A6%81%E8%AE%A4%E8%AF%81

HA1 = md5_hex(username:realm:password)
HA2 = md5_hex(method:uri) // method是GET/POST/PUT等, uri是/cgi/protected.cgi(仅登录)或/xml_action.cgi
// 其中nonce是访问/login.cgi时获取的
// nonceCount是16进制自增数列,login总是1,后续请求逐次+1
// clientNonce是客户端随机字符串,长度12字节,数字+字母就行
// qop总是auth
RE = md5_hex(HA1:nonce:nonceCount:clientNonce:qop:HA2)

演示代码

基于Java的示例代码,2018-10-06的AT固件验证有效
https://gitee.com/wendal/Air720Master

附上部分可以操作

module总是duster,还没发现例外

    // http://192.168.0.1/xml_action.cgi?method=get&module=duster&file=status1
    // 全部状态? status1
    // 流量信息 statistics
    // 上网配置 wan
    // 局域网配置 lan
    // PIN/PUK设置 pin_puk
    // USSD设置 ussd
    // 联网设备 device_management_all
    // 设备统计 device_management
    // 日志 detailed_log
    // 自定义防火墙 custom_fw
    // 端口过滤 port_filter
    // 端口转发 port_forwarding
    // 电话本 phonebook
    // 短信 message
    // 管理员配置 admin
    // 固件版本 firmware
    // 重启 reset

转载请注明原文链接:网卡模式下获取Air720的运行状态
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址