7

安全设备的漏洞挖掘

 3 years ago
source link: https://bbs.pediy.com/thread-267854.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
安全设备的漏洞挖掘-智能设备-看雪论坛-安全社区|安全招聘|bbs.pediy.com

无论是做多完美的安全解决方案,顶层设计。部署多么高大上的安全产品,例如防火墙,入侵检测,隔离网闸等最终还是需要落地的。而在落地实现过程中,往往存在非常多的安全问题,特别关于安全设备自身存在的安全漏洞。最近几年hvv也爆出了非常多安全产品的漏洞,具体就不说了,网上也有很多资料,但是大多是谈漏洞原理,但是在这篇文章我想谈谈这些安全设备的挖掘方法。(注:本文不会指明具体的厂商,如有雷同,纯属巧合)

对安全设备的挖掘,当然最好有实际的设备,获取安全设备是非常关键也是非常困难的的一步,首选购买安全设备价格昂贵,少则几万,多则几十万,对于经济拮据的研究员来说无疑是难以迈过的门槛。特别购买时不止有钱就行,还面临着各种流程,各种合同,走各种项目,特别是安全公司一听你要挖他的漏洞,绝对不会出售他们产品。
这些不是问题,某鱼可以帮你解决这个问题,出售的设备都相对便宜,不止安全类设备,一些IoT设备,工控设备都可以在这上面购买,甚至几千块就可以买到隔离网闸。值得注意的是,这些设备大多都是淘汰下来的产品,要确定该产品是否还有研究价值,否则买来发现市面上都没人用了,那么挖出的漏洞价值也不大。

大多数安全产品官方网站可能提供固件下载,必须询问经销商,或者需要填入合同号,最大的问题是固件下载很多都是加密的,当然,有了设备这些都不是问题。可以直接拆焊PCB版上的flash,使用编程器读取上来,特别是有些是X86架构的设备,用的存储单元一般很有可能是硬盘,可以把硬盘拆下来,接一根硬盘线读取其中的内容。然后利用binwalk之类的解包工具,直接解开文件系统。
值得注意的是,有些安全厂商可能相对注重安全,即使在获取到硬盘里面的Linux文件系统或者内核,但很可能是加密的(当然,这是一小部分),这里我给大家介绍分析的方向:

  1. Linux文件系统加密,就去分析Linux内核,一般不大有厂商自己实现一个文件系统,无非是简单的读文件,然后用某种算法解密。
  2. Linux内核加密,就去分析uboot/grub等,里面肯定存在有解密算法,对其进行分析即可。
  3. 用安全芯片做安全加密启动,个人没遇到过,不做展开。

谁都知道未授权的RCE是漏洞挖掘的“圣杯”,但是一开始不建议研究员挖掘未授权的RCE漏洞,大多数安全设备在认证环节都做得不错,基本移除了后门密码,找到未授权的漏洞相对困难,可以在授权情况下进行挖掘,这样登陆后可以找到更多攻击面,熟悉后可以尝试多个漏洞结合达到未授权的RCE效果。那是不是预授权的RCE就毫无用处了呢?其实不然,如果是一个低权限的用户可以触发RCE那就可以达到提权的效果,而RCE的漏洞也会造成设备的源码泄露(即使在用户不接触设备情况下),甚至非法分子会利用漏洞破解设备授权,对安全厂商的收益造成威胁。

在安全界大厂OEM小厂的安全设备再正常不过,也就说某些设备的漏洞会影响到多个厂商,最重要的是由于是安全小厂,开发人员相比大厂来说安全意识较为薄弱,在漏洞挖掘初期可以选择OEM的设备进行分析,这类设备漏洞产出最高。

web端漏洞

Web端的攻击面最多,不同厂家使用的主流web编程语言不同(PHP,JAVA,python etc),但是挖掘方法基本类似,特别有些开发者在实现过程中,认为用户无法接触到源代码,硬编码各种密钥,带来各种安全问题,这种想法当然是错误的,好的安全设备,即使在用户完全能够获取web端源码,也无法GetShell。
挖掘web漏洞在有源码能审计的情况下更加如鱼得水,这里也值得注意的是,有些安全设备会魔改解释引擎,例如LUA,python等,这就需要对解释引擎进行分析,还原原始的字节码,还有一些使用商业的混淆工具,混淆web端代码,具体问题,具体分析,就不一一列举了。

包括一些VPN协议,这些协议一般是用C/C++实现的,其中可能会存在一些内存破坏漏洞,对于这类协议的服务端,一般最常见的方法就是分析加密和认证及各种数据交互协议,利用fuzz框架例如boofuzz里面对该服务端进行fuzz。

安全设备肯定具有各种安全功能,例如恶意流量的阻断和检测,而这些功能实现过程中有可能会存在安全机制绕过的漏洞,尤其对一些工控防火墙,支持解析各种工控协议,这些解析插件都是厂商自己实现的,这些防火墙可能对一些非正常的数据流量解析过程中会导致一些经典的溢出造成的DoS,发现这类漏洞可以使用fuzz,fuzz对象是实现协议解析检测的安全设备,当然经验丰富的研究人员可以分析其实现,来绕过检测规则。

无论是出于道德黑客还是获取赏金的动机,挖出的漏洞最好还是直接上报给安全厂商的SRC。当然有些安全厂商SRC确实难找,官网上没入口,还得通过朋友的关系来找。大部分的安全厂商都非常重视自身的漏洞,你的付出终将会得到相对合理的回报!

本文主要是想让一些喜欢挑战安全设备的研究人员了解如何开始挖掘安全设备的一篇入门级文章,安全厂商也可以根据该文章中的分析方法来进一步加固自身的安全产品,以攻促防。
PS:有人就会问了:这篇文章看下来都在吹牛,没啥干货,一张图都没有,没啥意思。其实我呢也想贴些图,分享一些自己挖到的安全问题,非不能,实不为也,安全设备非常敏感,本文只是把我研究的一些经历抽象成一些方法论,具体的设备图片和漏洞详情今后也不会涉及。

第五届安全开发者峰会(SDC 2021)议题征集正式开启!

最后于 7小时前 被wmsuper编辑 ,原因:

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK