安全矩阵

 找回密码
 立即注册
搜索
查看: 2489|回复: 0

阅读笔记 I 挖掘0day的新“姿势”

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-11-24 10:48:02 | 显示全部楼层 |阅读模式
原文链接:阅读笔记 I 挖掘0day的新“姿势”

0day漏洞,又称“零日漏洞”(zero-day),是已经被发现(有可能未被公开),而官方还没有相关补丁的漏洞。通俗地讲,除了漏洞发现者,没有其他人知道这个漏洞的存在,并且可以有效地加以利用,发起的攻击往往具有很大的突发性与破坏性。
近年来,大量的0day漏洞出现在全国及各省市的网络安全攻防演练活动中,没有补丁的新漏洞往往让厂商和用户措手不及。漏洞挖掘从业者每天的主要工作就是挖掘各种各样的漏洞,而想要更快的找到漏洞,就需要依赖趁手的“兵器”--漏挖工具。如今,行业内其实已经有大量的漏挖工具可供使用,但有很多业内高手仍在不停探索和创造挖洞速度更快、准确率更高的自动化工具。
本文给大家介绍一篇研究面向嵌入式设备固件自动化漏洞挖掘的文章:

该文章源于上海交大和奇安信的研究人员发现的一个规律:现有嵌入式系统中的许多流行漏洞都位于其脆弱的web服务中,寻找这些漏洞的关键:如何定位后端程序中用于处理与用户输入数据相关的代码,而Web前端文件(html、js、xml等)中存在的一些关键字符串通常与后端二进制文件之间是共享的,也就是说承载用户输入数据的某个参数名称在前端文件与后端文件中都会存在。基于这个发现,该文章研究人员提出一种创新技术,设计并实现了SaTC,使用SaTC在39个嵌入式系统固件中自动化挖掘漏洞,最终发现了33个未知bug,其中有30个被CVE/CNVD/PSV确认为0day!
该文章研究人员设计了如下图所示工具(SaTC),漏洞挖掘从业人员在拿到嵌入式系统固件之后,先将固件解压,再将解压后的文件系统目录路径作为输入给到工具,然后工具就可以全程自动化完成提取关键字符串、定位后端程序中关键字符串的引用位置、以引用点为起始位置进行污点分析,最终输出了所有可能存在漏洞的指令位置,同时还给出了从输入点到漏洞指令位置的函数调用链条。

以Tenda AC18路由器上发现的漏洞为例,我们来看看该漏洞是什么原因所造成?

Front-End为该路由器的USB管理功能界面,用户通过浏览器可以访问该页面进行USB管理。Back-end为该路由器的后端接口服务函数调用图,用于接收前端发起的http请求并进行业务处理。通过查看前端js代码可以发现Unmount功能的接口请求地址为goform/setUsbUnload,接口请求参数为deviceName。查看后端程序可以找到对Unmount功能接口的处理函数formsetUsbUnload,同时可以发现deviceName参数值被接收后未做任何校验,直接被用于字符串拼接,拼接后的字符串被作为doSystemCmd(可用于执行系统命令,如通过执行nc命令实现shell反弹)函数的参数进行使用。这是典型的命令注入漏洞,产生该漏洞的根因是程序未对用户可控的输入进行有效净化校验就被拼接成字符串用于命令执行。攻击者可以通过发送恶意构造的deviceName参数值,注入恶意命令并获取设备权限。
同时,作者还展示了其他存在漏洞的代码段,这些代码到底是哪里存在了安全问题?
样例一


左滑查看该样例存在的安全问题
样例二


左滑查看该样例存在的安全问题
样例三


左滑查看该样例存在的安全问题
研究人员对6个品牌的39个路由器和IP摄像头进行了挖掘,一共发现了包括buffer overflow、命令注入、错误的访问控制等33个未知bug,其中有30个被确认为0day漏洞。


研究人员将SaTC与KARONTE进行对比,通过对比发现在挖掘漏洞的数量上,SaTC更胜一筹!

上海交大与奇安信的研究人员研发的SaTC工具主要面向嵌入式设备系统,包括路由器和IP摄像头。经笔者验证,该工具在Netgear、D-Link、TP-Link等路由器上确实可以挖掘到漏洞,但对于小米路由器、极路由之类的还不太适用。总体来看,该工具对于挖掘路由器或摄像头漏洞的新“玩家”可能是一个福音,推荐大家尝试看看,也许很快你也能加入挖掘0day漏洞的队伍了。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-5-10 12:49 , Processed in 0.013928 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表