实测一款IoT路由的安全性怎样?从web到硬件,我们进行了周全的破绽发掘和剖析(下) | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

实测一款IoT路由的安全性怎样?从web到硬件,我们进行了周全的破绽发掘和剖析(下)

申博_新闻事件 申博 97次浏览 已收录 0个评论

上一篇文章,我们讲了IoT路由的装备在理论上的平安性和可以的平安破绽,本文,我们就来实测一下。

NAND闪存转储

在阅历了最初的波折以后,我们把NAND闪存的焊接都给拆了,并把它和DATAMAN读卡器相连。几分钟后,我们胜利地举行了一次Flash转储。为了准确起见,我们转储了两次,效果都是雷同的。

如今我们已胜利举行了NAND转储,这意味着我们可以最先提取固件并最先剖析文件的构造了。

起首,我们下载了转储东西,它异常棒,是任何NAND转储的首选东西。

我们在网上搜刮了一些关于NAND 闪存芯片组MT29F1G08ABADA的信息。只管该芯片的申明书上写的是1G的存储空间,但现实上,读卡器的NAND转储量为138.4 MB。

然后我们查了芯片组的idcode。老实说,这花了不少时候搜刮,PTP的Dave (@tautology0) 上有许多关于这方面的申明。

如今让我们看看Binwalk会给我们带来什么输出效果:

Binwalk是用于搜刮给定二进制镜像文件以猎取嵌入的文件和代码的东西。 详细来说,它被设想用于辨认嵌入固件镜像内的文件和代码。

可以看出,该文件中有许多风趣的部份。让我们先来看看UBI部份,我们将运用DD从dump.bin文件中提取该部份内容。

提取很顺遂!让我们看看它是不是真的云云:

果真是!那我们继承吧!

统统出人意料的顺遂!

如今已胜利地提取了固件,看起来我们也同时具有了root文件体系和Ewon应用程序文件体系。

我们将起首引见Root文件体系,因为我们以为这将使你能更好地相识Ewon体系是怎样构建的。

老实说,“init.d”中只需一个文件是有意义的,这个文件的作用就是启动Ewon效劳。“init.d”中没有其他用户,没有ssh的私钥,没有暗码哈希。

如今,让我们进入Ewon SquashFS。

SquashFS文件构造看起来像是特地针对Ewon环境的,并安装在/opt/ewon/上。

我们提取的大多数文件夹都是空的,但bin/和patch/文件夹有许多有价值的信息。patch/ folder以下所示:

patch/folder中的这些文件仅用于从上次运转的固件、一些较新的二进制文件和一些较新的库中举行更新。

一样,该文件夹的大部份都很无聊,但它确切表明它们经常在装备的更新中增加linux-arm二进制文件和库。

在Andrew (@cybergibbons) 提醒以后,我们如今老是扫描文件夹构造来寻觅任何可实行剧本(bash剧本):

这两个文件,虽然都运用了基础的bash剧本,但现实上只供应了构建信息,如今还没有任何协助我们的东西。

进入bin/folder尝尝:

如今,我们有一个二进制文件,一些设置剧本和一些bash剧本。别的,另有看起来像Java二进制文件和jar文件的文件。我想我们先从设置文件最先,然后再议论Ewon二进制文件。

设置文件异常简朴,正如你所看到的,显著是针对一组差别的运转环境,At91sam9g (AT91SAM9G35是400 MHz的ARM926嵌入式MPU,支撑高带宽通讯和先进的用户界面),QEMU(可以用于调试目标)和RaspberryPi(一样用于调试和构建目标)。

设置异常相似,大多数值完整雷同,只需称号和操纵体系相干的内容发作了变化。

以下是all_config.conf文件的一个示例:

第二行写的是 “一切产物的合营部份”,并列出了Flexy和Cozy Ewon产物,这是不是意味着它们是同一种产物?

虽然有许多相似的地方,但也有一些庞大的差别。比方,指在经由历程互联网供应轻松的长途接见。

另外,就是端口443(HTTPS)。为何Cozy的浏览器运用https,而Flexy却没有呢?

我们试图运转Java二进制文件,不过它却出错了,我们愿望从该文件中,可以确切给我们供应更多有效的信息:

运用JD-Gui (JD-GUI是一个用于Java编程言语源代码“.class”文件反编译软件,你可以运用JD-GUI中文版浏览和重修源代码的马上接见要领和字段,以代码高度体式格局来显现反编译过来的代码),我们对它试图接见的JAR文件举行了反编译:

稍后,我们可以会深入研究该JAR文件,然则如今让我们先来看看Ewon二进制文件。

对Ewon二进制文件举行逆向剖析

正如你从之前的截图中看到的那样,我们在NAND 内存转储中并没有看到太多有价值信息。我们愿望web界面运用预先构建的东西(如apache2、lighthttpd或nginx)举行设置,并使用vsftpd或相似的东西对FTP举行设置。

逆向二进制文件时,可以直接处置惩罚字符串。

我在二进制文件“暗码,通报和私有”中,对字符串做了一些基础的grep操纵

将二进制文件运用IDA Pro(反汇编东西)剖析,可以马上举行反汇编。IDA Pro(并不圆满,但却异常有用。

我们想要观察的第一件事就是对设置文件中的存储值(VPN密钥、暗码)举行加密,经由一段时候的搜刮,我们发明了这个函数cfgcrypt_DecryptCfgStr。

下面是该函数的IDA规划图:

以下是更细致的图:

在Dave的协助下,我们可以盘算出标头“#_1_”运用了什么加密要领。

另外,在现实的Ewon comcfg.txt文件中有一个“CryptMode:1”设置,对我们的剖析异常有协助。

实测一款IoT路由的安全性怎样?从web到硬件,我们进行了周全的破绽发掘和剖析(下)

在此期间,我们没有看到任何此标头的其他变化情势,然则我们以为这就是在Ewon二进制文件中屡次涌现雷同密钥和IV硬编码的缘由。

假如CryptMode设置为> 2,则该函数将举行毛病输出并将该值设置为0。

我们置信,假如它设置为“#_0_”,就将运用“blowfish”而且我们运用了Key和IV,但在这类情况下,它被设置为“#_1_”。

那末“#_1_”做什么的呢?

有一个名为“cfgcrypt_CheckCryptmode”的函数,它担任搜检加密字符串的标头并依据标头值集返回一个值,记着,它老是被视为“#_1_”。

但是,这个函数在应用程序中从未被挪用。奇怪的是,“cfgcrypt_DecryptCfgStr”函数中有相似的代码库。

这看起来像是完整的代码重用,因为基础上一切的加密息争密函数都归结为“ctr_encrypt”函数。

另有就是“ctr_decrypt”函数:

会聚黑客的伶俐 | KCon 2019在京隆重落幕

KCon 黑客大会,汇聚黑客的智慧。 知道创宇出品,追求干货有趣的黑客大会。 KCon 2019 ——无 界 时间:8 月 23 – 25 日 地点:北京·昆泰嘉瑞文化中心   8月24日,由知道创宇主办的第八届KCon黑客大会(简称KCon 2019)在北京昆泰嘉瑞文化中心正式拉开大幕。KCon 2019以「无界」为主题,旨在与大家一同开启关于“∞”的探索,钻研技术宇宙中的无穷奥秘。   在首日两场专业的闭门培训结束后,伴随着热情洋溢的摇滚乐演出,KCon 2019演讲日干货技术分享

详细缘由我们就不讲了,但“ctr_encrypt”代码中包括一个XOR函数。

对固件举行逆向剖析

本文一最先,我们就遇到了固件题目,你可以从Ewon网站轻松下载该固件。

但仔细观察一下,就会发明加密在起作用:

很显著,因为版本号、宣告日期等都是以明文情势存在,所以它们得落款都是按着递次来的。

如今想一想我们剖析过的Ewon二进制文件,可以从中寻觅援用固件文件名的任何东西。

第一组效果是对SDcard的援用:

因而,假如固件出如今SD卡上,它会尝试更新。老实说,这是相称规范的,然则,从用户文档中,你只需将“ewonfwr.edf”文件上传到FTP(假如你有身份验证)。然后,Ewon将依据须要处置惩罚固件。

我们花了很长时候寻觅一些可以满足我们对固件文件感兴趣的东西,直到有时发明一个名为“loem_UncryptFile”的函数,它看起来像是在打开一个文件并挪用解密功用。

本质上来说,正在发作的事变历程以下:Ewon二进制检测固件文件是不是上传到ftp效劳器或SD卡上,加载清单(搜检固件版本、日期等),然后解密固件文件和数据。

固件加密是基于Blowfish,而且对二进制文件的密钥举行了硬编码。

如今,找到固件文件。

检察数据后,我们决议加密部份从0x0140h最先,一向继承到文件的末端。我们在这些位置剪切文件,并尝试运用二进制文件中的给定密钥举行解密。

我们可以对数据举行恰当的解密,但好像它只解密了一半。这就奇怪了,按说只须要领准确,应当悉数解密才是。

检察二进制文件,好像供应的IV是二进制文件在晋级之前建立固件的备份,那末我们须要的这个IV到底在那里?

为此,我们请教了Dave,Dave示意假如它不在二进制文件中,那就可以在固件中,这显著很罕见。

让我们返回固件并检察对应的标头,此时要寻觅可以运用的8位数据流。删除加密的渣滓后,这就是我们剩下的,唯一显著的8位数据流是底部凸起显现的,背面是一些空字节,然后是固件加密数据。

然后将其反应到python剧本中,看看会发作什么:

如今,才算完整解密!

让我们来看看文件体系,特别是“update.sh”文件:

“update.sh”文件只是来自于NAND闪存转储的Ewon / opt文件夹。所以,没有新的东西可以发掘!

假如有的话,让我们看看位于二进制文件中的历程。

实测一款IoT路由的安全性怎样?从web到硬件,我们进行了周全的破绽发掘和剖析(下)

我们发明了潜伏的敕令实行!

为此,我们变动了update.sh,从新编译了固件,并从新上传了固件的更高版本号。

令人恼火的是,这也没有见效。看起来这是一个CRC文件,因为我们在Ewon日记中获得一个“rift – invalid checksum”毛病:

让我们返回二进制文件搜检一下:

可以看出,有一个CRC16x2校验(CRC是一种罕见的校验,而CRC16呢,重要是因为校验效果是16个位)。如今,我们还不能100%肯定它是不是在固件中的加密blob上,照样在squashfs blob预加密上。SquashFS是一套基于Linux内核运用的紧缩只读文件体系。该文件体系可以紧缩体系内的文档,inode以及目次,文件最大支撑2^64字节。

以下是两个固件版本之间的比较,显著,为了削减差别,我们将每一个文件中雷同的位设置为雷同的。

赤色部份代表标头中的差别的地方,再仔细看,我们可以看到两个文件之间的赤色地区有一些相似的地方。

实测一款IoT路由的安全性怎样?从web到硬件,我们进行了周全的破绽发掘和剖析(下)

让我们在固件文件的加密博客上运转一些CRC校验和,看看是不是可以在标头中看到任何相干信息!

Ver 13_2s1 = 8.433 mb (Latest)
CRC16 (encrypted blob) = AF3C
CRC32 (encrypted blob) = F388096F
Ver 13_0s0 = 12,589 mb (Not Latest)
CRC16 (encrypted blob) = A65D
CRC32 (encrypted blob) = 259BC946

输出的信息以下所示:

这是加密blob的CRC32值,在标头文件中的0x00B0处,让我们尝试修正一下:

效果发明,修正不胜利。末了,又得返回Ewon二进制文件。在搜刮二进制文件时,我们遇到了一个函数,它对标头部份做了一个扼要引见。

“riftp_EDFHeaderPtr”是固件文件的开首,所以我们把它设为“0”。在第144行,假如它不即是v10(CRC16×2的盘算效果),就会和rfiftp_EDFHeaderPtr + 168的值举行比较。

在固件中的0xA8处,存在CRC值。太好了!我们还会从二进制文件中的其他信息位中绘制了一些其他位:

不过,令我们疑心的一件事是CRC盘算历程。我们晓得它是从二进制代码盘算加密blob上的CRC16x2,但盘算历程倒是以下历程:

因而,Dave和我们决议重写CRC16x2函数,看看我们能获得什么:

实测一款IoT路由的安全性怎样?从web到硬件,我们进行了周全的破绽发掘和剖析(下)

虽然我们获得了差别的效果,但我们置信我们在朝着准确的方向举行。

应用重写的函数,我们还对固件文件举行了暴力破解,以检察是不是有任何部份与标头中存储的值婚配:

经由测试,没有婚配的部份。

我们尝试了大批差别的CRC16校验,差别的poly对象以及xor位,但没有任何效果。这意味着,我们没法婚配0xA8处的值。

假如你想继承,发起你浏览该链接。

破绽表露时候表

2019-01-29:初次与Ewon联络,并向他们报告了相干破绽;

2019-02-04: Ewon确认了破绽;

2019-05-28:来自Ewon的复兴,供应了测试固件;

2019-06-04:对Ewon的破绽举行公然;

2019-06-18: 更新后的FW 13.3s0最先宣告;

减缓步伐和发起

1.不要将你的Ewon Flexy或任何ICS装备,接入大众互联网

2.变动默许凭证;

3.运用恰当的接见掌握,将你的IT和OT收集举行切割;

4.将免费的Talk2M平安衔接云与你的Ewon装备合营运用,HMS Networks公司宣告推出Talk2M® Easy Setup,这是免费VPN客户端eCatcher中的一个新的设置导游。Talk2M Easy Setup仅需USB驱动或SD卡即可以让Ewon® Cosy在线完成Talk2M平安长途云端衔接。 在Talk2M Easy Setup中,新的导游可指导用户完成最一般的Internet衔接设置。设置完成后,可以将天生的设置文件保存在当地PC、USB闪存盘或SD卡上。末了,将存储介质插进去到对应的Ewon产物中,以后路由器就可以衔接到Talk2M Secure Cloud了。

5.更新你的Ewon Flexy固件并使其保持最新版本;

6.假如你没法更新ICS(比方,装备太旧),请斟酌缭绕它构建分外的平安掌握。

本文翻译自:https://www.pentestpartners.com/security-blog/ewon-flexy-iot-router-a-deep-dive/


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明实测一款IoT路由的安全性怎样?从web到硬件,我们进行了周全的破绽发掘和剖析(下)
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址