论坛首页 漏洞分析研究区 阅读主题

[原创]极路由远程命令执行漏洞-漏洞分析

267 浏览 2 回复
#1 楼主 2026-06-01 21:09:04
本篇主要介绍cloud_token的计算方式和远程命令执行漏洞的代码分析。cloud_token是开启远程ssh的token,如果知道cloud_token就可以远程开启ssh服务。按照上文的模拟环境运行方式,打开 7f2K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5J5y4#2)9J5k6e0m8Q4x3X3f1H3i4K6u0W2x3g2)9J5c8X3I4G2j5$3q4D9i4K6u0V1M7%4y4Z5i4K6u0r3 连接。出现远程开启ssh服务的页面。 正常情况下local token的输入框显示的是路由器local token的值,因为是模拟环境,没有板载信息,所以显示的为空。这里提供一组历史数据:uuid就是路由器的固件信息,每个路由器都不同,获取的路径是 bdcK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5J5y4#2)9J5k6e0m8Q4x3X3f1H3i4K6u0W2x3g2)9J5c8X3y4Y4K9g2)9J5k6r3u0A6L8W2)9J5c8Y4c8#2M7X3u0G2i4K6u0r3M7s2u0G2P5s2W2Q4x3V1k6J5L8%4g2@1k6i4u0Q4y4h3k6A6L8X3k6G2 通过查看nginx的配置文件,可以找到local_ssh的解析路径为 /usr/lib/lua/luci/local_ssh/local_ssh.lua;然后使用luadec对local_ssh.lua和local_ssh_util.lua进行反编译,luadec需要使用luadec-openwrt的版本。可以使用luadec直接反编译,也可以使用luadec -dis 先转为lua的反汇编形式,再使用AI转为lua代码;local_ssh.lua的反编译代码如下:local_ssh_util.lua的反编译代码如下:local_token的计算方式是:base64(mac_address,ssh,current_time,hmac_token),主要代码如下:cloud_token的计算方式是: lua_hmac_sha1_with_uuid(mac_address,ssh,current_time+1),主要代码如下:lua_hmac_sha1_with_uuid 的函数在libauth.so中,主要代码如下:调用的hmac_sha1_with_uuid函数在libauth.so中,主要代码如下:tw_get_uuid(v9)是获取固件信息的fac_uuid,也就是固件的uuid。在libtw.so.0.1.0中,代码如下:然后调用SHA1对uuid进行哈希运算做为HMAC的密钥,HMAC使用的是sha1模式进行哈希运算。根据以上的分析结果生成计算cloud_token的python代码如下:远程命令执行的漏洞分析比较简单,漏洞代码就位于以上的local_ssh.lua中。漏洞代码如下:在method=valid时,对于传来的data参数没有做任何的过滤就直接传进了exec_cmd进行了执行。远程命令执行的POC代码如下: ab1K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5J5y4#2)9J5k6e0m8Q4x3X3f1H3i4K6u0W2x3g2)9J5c8X3I4G2j5$3q4D9i4K6u0V1M7%4y4Z5i4K6u0r3j5i4m8A6i4K6y4r3L8h3g2@1K9r3!0V1i4K6y4p5N6X3q4D9K9h3c8Q4x3U0k6S2L8i4m8Q4x3@1u0V1j5i4c8S2i4K6y4p5i4K6N6o6L8s2x3`. local_token:RDRFRTA3MjI0MjFFLHNzaCwxNjEyNTA5ODU1NTI4LN/Gtg9ilqUoIsFFNGeHCHIA237Q

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-288916.htm
#2 2026-06-01 21:09:04
不错 cloud_token代码弄出来,不怕网站关闭了。。。
#3 2026-06-01 21:09:04
极路由都倒闭了吧

请登录后参与讨论

立即登录 注册账号