首页 > 其他分享 >快速挖掘设备逻辑洞方法分享

快速挖掘设备逻辑洞方法分享

时间:2023-05-03 20:45:15浏览次数:44  
标签:危险 逻辑 github 函数 漏洞 挖掘 工具 分享

前言

接触iot也快有一年的时间了,一年来也挖掘了大大小小几十个洞,虽然能有些产出但是却逐渐对人工审计感到无趣和疲惫。在此之间我也尝试过通过使用污点分析fuzz等方法去进行自动化漏洞挖掘,但总因为目标不明确而导致挖掘效果不是很好。于是就产生了写一款可以用来辅助跨文件分析危险函数的工具的想法,正好最近在看到https://conference.hitb.org/hitbsecconf2023ams/materials/D1T1%20-%20Your%20Not%20So%20Home%20Office%20-%20Soho%20Hacking%20at%20Pwn2Own%20-%20McCaulay%20Hudson%20&%20Alex%20Plaskett.pdf时,看到了文章中dcalls这个工具。他的效果可以很好地满足我之前的想法,但是这款工具貌似并没有开源,于是我就自己尝试去实现了一下这个工具。写完之后感觉效果还行(但是由于时间匆忙,笔者能力有限等原因,此工具也存在很多bug,希望师傅们海涵),又恰好想起了当时自己刚入门iot,还不怎么清楚如何进行漏洞挖掘时,不知从何下手却又着急想要出一些成果的场景。于是写下这篇文章,分享给刚入门,并且希望能快速挖掘到漏洞的师傅。

最常见的逻辑洞

在我看来,在一些中小型厂商的设备中,最常见的逻辑洞应该是命令注入了。不仅exp简单,并且危害大,经常可以很容易实现rce。想要快速寻找到命令注入漏洞,可以从一些危险函数下手,看看这些危险函数的参数是否可以被我们用户控制。常见的危险函数如systemexecve等。但是很多厂商会在自定义的动态链接库中定义自己的函数,并且在其内部调用这些危险函数。往往这些函数是最有可能被我们忽略掉的,如果在审计时可以注意到这些函数那我们挖掘到漏洞的概率也就会大大提高了。

如何快速进行漏洞挖掘

fdcalls是我编写的一款用来辅助我们寻找危险函数调用以及可能的危险函数的一款工具,已在github上开源(https://github.com/fxc233/fdcalls)。

接着我们就来看一下如何使用这个工具快速的发现可能的漏洞点,以及可能存在的危险函数。这款工具分为两个模式,第一个模式仅匹配目标文件可能存在命令注入漏洞的地方,并且返回漏洞点及危险函数调用链。如下图,此时我们就可以去显示的地址对是否存在漏洞做进一步的判断。当然由于时间问题,我并没有尝试测过很多不同厂商的设备,这就导致可能会在运行脚本时多出一些错误信息的提示,但是只要脚本不是中断报错,那么就还是可以正常进行分析的。当然显示出来的路径也可能会存在误报的现象。

第二个模式会显示所有可能的危险函数。加上这个模式的原因是,因为笔者的能力有限,所以一些函数调用处可能处理的不是很好,故有一些危险函数虽然会被会被调用却没能在上面的路径当中显示出来。如下图所示,我们可以看到可能存在的危险函数以及定义他们的动态链接库。我们在模式以扫描出的路径中不能发现漏洞或者扫描不出路径时,可以去二进制文件中搜索这些函数名,如果函数存在那么也有存在漏洞的可能。

实战应用

笔者这里就拿在github上看到某个的今年新出的cvehttps://github.com/kagehutatsu/IOT_Vulnerability/tree/main/LB-Link/WR450H/CVE-2023-26697),来看一下这个工具效果。看漏洞提交报告可知,漏洞函数是./lib/libshare-0.0.26.so里的定义的bs_SetForwardingInfo

我们分析的二进制文件是./bin/goahead,尝试直接用工具扫描试试。

很可惜我们并没能直接定位到漏洞函数调用的位置,不过好在我们能识别到存在这个危险函数,对我们漏洞挖掘还是能有一定的帮助的。

结语

祝各位师傅每天都能挖到新的0day。最后如果有师傅在使用这个工具是出现了bug,欢迎师傅们在github上提issue。

链接

项目地址:https://github.com/fxc233/fdcalls

文章首发:https://mp.weixin.qq.com/s/jZd5BpAmwFZOZuNjc4-oqA

标签:危险,逻辑,github,函数,漏洞,挖掘,工具,分享
From: https://www.cnblogs.com/pwnfeifei/p/17369551.html

相关文章

  • TiCDC 源码解读(5)-- TiCDC DDL 事件处理逻辑 与 Filter 实现介绍
    作者:asddongmen内容概要本文是TiCDC源码解读的第五篇,本文将会介绍TiCDC对DDL的处理方式和Filter功能的实现(基于TiCDCv6.5.0版本代码),文章将会围绕以下4个问题展开。为什么TiCDC只用Owner节点来同步DDL?DDL事件会对同步任务的进度有什么影响?TiCDC是怎么在内......
  • 服务器如何测试网速?服务器测试带宽常用方法分享
    相信大家都知道服务器的性能决定了服务器的稳定和速度,比如运算速度,传输速度这个直接影响着每毫秒可以处理多少数据,这个就类似U盘读写速度目前都是光纤,光纤的质量差别并不会很大,如果访问速度不好的话,会让网站加载非常慢,在选择服务商时,首先一定要选择有保障的,方便日常维护其次就是就......
  • 论文分享:使用查找表的SR-LUT实用单图像超分辨率
    随着移动的设备和显示硬件的发展,对实用SR技术的需求已经增加。当前最先进的SR方法是基于DNN以获得更好的质量。然而,它们在通过使用并行计算模块(例如GPU)执行时是可行的,并且难以应用于诸如终端用户软件、智能电话和电视机的一般用途。我们用小感受野训练深度SR网络,并将学习的深度模......
  • 如何避免单点风险:基于实践经验分享服务拆分原则的一些思考
    缘起:系统崩了具体情况:1%的请求影响了剩余90%的请求架构演进:拆分热点服务【进程级隔离】复盘总结拆服务的经典实践 不能变形的变形金刚也叫变形金刚?缘起系统崩溃了?别惊慌!这里有快速恢复的方法!分析发现,网站崩时服务X被流量打垮,继而依赖服务X的其它服务开始......
  • openGauss 逻辑备份恢复_openGauss课程_openGauss3.0.0
    一、opengauss的背景和行业现状2022年,七大openGauss商业版发布,是基于openGauss3.0推出商业发行版目前海量数据库Vastbase表现最佳,一直是TOP1作者认为之所以海量数据库Vastbase目前无法被同行超越,和各家研发实力和技术背景有关众所周知,opengauss起源于postgresql,在此......
  • 时序逻辑基础
    时序逻辑基础1简单概要同步所有触发器的状态变化都是在同一时钟信号作用下同时发生的。非同步没有统一的时钟脉冲信号,各触发器状态的变化不是同时发生,而是有先有后。米利输出状态不仅与存储电路的状态Q有关,而且与输入也有关。摩尔输出状态仅与存储......
  • 答题积分小程序云开发实战-界面交互篇:答题页布局样式与逻辑交互开发
    微信小程序云开发实战-答题积分赛小程序界面交互篇:答题页布局样式与逻辑交互开发答题页原型稿实现思路分析:1)答题未选中状态;2)答题已选中状态,点击确定提交选中结果;3)显示答案以及题目解析,如回答正确,自动进入下一题;如回答错误,停留在当前答题页面;4)每次答完10题,答对分数才会计入积分;5)最后......
  • [逻辑代数基础]#1 基本运算与复合运算
    基本运算运算表达式真值表与(AND)$A·B$或(OR)$A+B$非(NOT)$A'$、$\overline{A}$、$\simA$、$\negA$均可。出于便利的考虑。下文使用$A'$表示非运算。非运算优先级高于与或。复合运算运算逻辑表达式真值表与非/NAND$Y=(A·B)'=A'+B'$......
  • 【数据挖掘&机器学习】招聘网站的职位招聘数据的分位数图、分位数-分位数图以及散点图
    一.本次需求背景本文主题:招聘网站的职位招聘数据的分位数图、分位数-分位数图以及散点图、使用线性回归算法拟合散点图处理详解之前的文章我们已经对爬取的数据做了清洗处理,然后又对其数据做了一个薪资数据的倾斜情况以及盒图离群点的探究。我们这次的需求是:使用散点图、使用......
  • 【教程分享】一键部署Redis,轻松搞定Docker安装和配置!
    1下载下载6.2.7版本:[root@service-monitoring~]#dockerpullredis:6.2.76.2.7:Pullingfromlibrary/redis025c56f98b67:Pullcomplete060e65aed679:Pullcompleteb95291e865b7:Pullcompletee3023c0b11d1:Pullcomplete143500497a02:Pullcompletec38298c......