工业互联网安全测试技术:施耐德NOE固件逆向分析.docx

上传人:太** 文档编号:86646764 上传时间:2023-04-14 格式:DOCX 页数:7 大小:132.59KB
返回 下载 相关 举报
工业互联网安全测试技术:施耐德NOE固件逆向分析.docx_第1页
第1页 / 共7页
工业互联网安全测试技术:施耐德NOE固件逆向分析.docx_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《工业互联网安全测试技术:施耐德NOE固件逆向分析.docx》由会员分享,可在线阅读,更多相关《工业互联网安全测试技术:施耐德NOE固件逆向分析.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、施耐德NOE771固件逆向分析实验原理固件逆向分析方法是在不对嵌入式系统进行实际运行的情况下,通过对固件文件进行 逆向解析,分析固件中各代码模块的调用关系及代码内容,从而发现嵌入式系统中可能存 在的漏洞及后门的一种技术手段。实验目的掌握使用binwalk、ida pro软件使用方法,对固件逆向分析工实验环境Windows 10, kali-Linux 计算机,binwalk、ida pro6. 8推荐课时数推荐课时数:2课时实验步骤本实验用到的固件时施耐德的NOE77101_Exec_V64.bin,可在以下网站下载。 140NOE77111 Firmware For Unity and No

2、n Unity Users 固件 | Schneider 日ectric (schneider-)步骤一:固件的识别和解压(1)使用Binwalk来确认NOE77101_Exec_V64.bin的压缩类型,发现385的压缩类型 是为zlib类型如图。I(kali - kali)-/Desktop$ binwalk 140NOE77101 Exec V6C.binDECIMALHEXADECIMALDESCRIPTION9010x385Zlib compressed data, default compression(kali kali)-/Desktopl(2)使用Binwalk提取zlib压

3、缩的文件,解压时会在同一目录下新建文件夹 o 解压后的文件 385 存储在目录中,并以文件在固件升级包中的起始位置来命名。将385复制 到桌面。(3)使用Binwalk对385文件进行分析,发现固件中的一些路径名、操作系统版本和 符号表地址等关键信息。该固件的操作系统版本是VxWorks2.5。VxWorks系统的符号表 包含了函数及函数名的对应关系,因此要找到符号表在固件中的位置,使用Binwalk分析 固件时,发现固件中的符号表位置为0X301E74。如图。(kali kali)-/Desktop*$ binwalk 385DECIMALHEXADECIMALDESCRIPTION2054

4、2520X1F586CEST flat binary20889360X1FDFE8HTML document header21085320x202C74HTML document footer21100480x203260HTML document header21155640x2047ECHTML document footer21195280x205768XML document, version: 1.021197960x205874XML document, version: 1.021199120x2058E8XML document, version: 1.021925120x21

5、7480Base64 standard index table21925800*2174c4Base64 standard index table22116040x21BF14VxWorks WIND kernel version 2.522252640x21F470Copyright string: Copyright Wind River Systems, Inc., 1984-2000-23219520x236E20Copyright string: copyright_wind_river31189880x2F978CCopyright string: Copyright, Real-

6、Time Innovations, Inc.,1991. Allrights reserved.31266280x2FB564Copyright string: Copyright 1984-1996 Wind River Systems,Inc.31535240x301E74VxWorks symbol table, big endian, first entry: type: function, codeaddress: 0X1FF058,symbol address: 0x27655C步骤二:固件加载地址提取由于嵌入式系统的固件需要加载到内存中的特定位置进行运行,这个特定的位置叫做固 件

7、加载地址(base address)。嵌入式系统固件的函数调用地址是基于固件加载地址所计算出的内存位置,而不是固件 中的偏移量位置。因此,为了使反汇编工具软件(如IDA Pro)能够正确的分析函数调用关系,我们需要 分析出固件加载地址,否那么所有的函数调用关系都将是错误的。针对使用ELF封装的固件文件,在ELF文件的头部有特定的数据位记录了该固件的加载 地址,因此我们可以直接读取ELF文件头,从而直接获取到固件的加载地址。如果固件没有使用任何封装,那么就需要对固件的代码进行逆向,从而分析出固件的加 载地址。这个方法比拟复杂,针对不同的嵌入式系统及CPU架构都有区别。针对NOE771的固件,我们

8、将通过分析固件头部的代码调用来大致猜想固件的加载地 址。获取CPU架构,选择正确的反汇编引擎。(1)使用Binwalk - A命令来获取目标固件的CPU架构等信息,该信息有助于选择正 确的反汇编引擎,如下图目标固件的CPU架构为PowerPC big endian。MkaUkali: -/Desktop_ File Actions Edit View Helpr(kalikali)-/Desktop*$ binwalk A 385|moreDECIMAL HEXADECIMAL DESCRIPTION0xA0PowerPC big endianinstructions,function epi

9、logue0x190PowerPC big endianinstructions,function epilogue0x198PowerPC big endianinstructions,function prologue0xlCCPowerPC big endianinstructions,function epilogue0xlD4PowerPC big endianinstructions,function prologue0x204PowerPC big endianinstructions,function epilogue0x20CPowerPC big endianinstruc

10、tions,function prologue0x268PowerPC big endianinstructions,function epilogue0x270PowerPC big endianinstructions,function prologue0x2A4PowerPC big endianinstructions,function epilogue02ACPowerPC big endianinstructions,function prologue0x2E4PowerPC big endianinstructions,function epilogue0x2ECPowerPC

11、big endianinstructions,function prologue0x314PowerPC big endianinstructions,function epilogue031CPowerPC big endianinstructions,function prologue034CPowerPC big endianinstructions,function epilogue0x354PowerPC big endianinstructions,function prologue0x384PowerPC big endianinstructions,function epilo

12、gue0x3B0PowerPC big endianinstructions,function epilogue0*3B8PowerPC big endianinstructions,function prologue0xA0PowerPC big endianinstructions,function epilogue0x190PowerPC big endianinstructions,function epilogue0x198PowerPC big endianinstructions,function prologue0xlCCPowerPC big endianinstructio

13、ns,function epilogue0xlD4PowerPC big endianinstructions,function prologue0x204PowerPC big endianinstructions,function epilogue0x20CPowerPC big endianinstructions,function prologue0x268PowerPC big endianinstructions,function epilogue0x270PowerPC big endianinstructions,function prologue0x2A4PowerPC bi

14、g endianinstructions,function epilogue02ACPowerPC big endianinstructions,function prologue0x2E4PowerPC big endianinstructions,function epilogue0x2ECPowerPC big endianinstructions,function prologue0x314PowerPC big endianinstructions,function epilogue031CPowerPC big endianinstructions,function prologu

15、e034CPowerPC big endianinstructions,function epilogue0x354PowerPC big endianinstructions,function prologue0x384PowerPC big endianinstructions,function epilogue0x3B0PowerPC big endianinstructions,function epilogue0*3B8PowerPC big endianinstructions,function prologue(2)使用IDA Pro加载PowerPC big endian架构的

16、反汇编引擎进行分析。d 哈力*上a r rr*tia “ Fillxtt。3 BR9ttCru FUT OP0U4 *1 pxtLax*tExxl.“Crt ia7)rtt t4M,p9e W- description7%6。B197 41 locating wrury for b trrr.7V6ttlW 411oc4tin9 wriiiry for virtual M*r”. tit? allocating wmiry for imim* pointw%.726total Rmory aiecit”nq processor mdule C:CK1M 4.Sprocspc.32 ftr mt

17、jpc.0Knjlyslshas been lalti4Mzed. 188 Down(3)分析固件加载地址,进行正确的反汇编。当未修改固件加载地址时,IDA Pro仅仅分析出的函数,如下图。;wewwi 心 312202“ 匕 Window% 7 x64 (f: Wirxiowt XP PfC.Windows 10x6-Fwrt* fMV;口 *J*M4C5 n 工必.18 工心JC z出水 工心M 工3桂6116 工.0ZU7 33Zg” ZSBX J. girt。g丽 Zgx Zgnc4工台 工心.3 Zw gw aw “gIbI be IcHfJl Es “ wt Hnistef. 5

18、j IIMi VU Pwb OlMi m通过对固件头上的代码进行分析后,可以发现在0x09f8的位置有一段非常可疑的函数调用。该函数调用地址为一个偏移量0X339AB8+一个绝对地址0x10000,有相当大的可能 0x10000就是我们所需要的固件加载地址。汇编语言中,1 :第0位-15位比特,0x80008000l变为0xffff8000o h :第16位31 位比特,0x80008000h 变为 0x80000000 ha :第 16 位-31 位比特+0x10000,0x80008000ha 变为 0x80010000。故 ROM:00009F8:dword_339AB8ha,为 0x0

19、0330000+KUH:UUUUUVLcnpiwicri, ru, ux/t-t-i-r ? ROH:OO9009ECblecr1, loc 9F4! R0H:000009F0bIoc_fi10 Kun.uuuuijym w; RON:O0UO09F4 RON:OOOO09Fi| loc_9Fi|:tt CODE XREF: ROM:000009ECTj RON:OO0009FI|Iwzr0, 0xC(r31)ROH:OO0099F8lisr9, dword 339AB8QhaRON:O00OO9FCaddir11, r9, duord_339AB8lROH:OOO0OA0ORON:OOO00

20、AOO loc_fi00:n DATA XREF: ROM:GG1F71B61oRON:606OMOOtt ROM:O01FZB1Aio .RON:OO00On00addr9, r0, r11ROH:OOO09A01*ROH:OOOOOA04 loc_A04:tt DATA XREF: 5Ub_192c58281。, ROM:00000A映11r0 0ROt4:O00O0An8RON:OOO00A08 loc_fi08:tt DATA XREF: ROM: O01FCB6E1ORON:OO00On08# ROM:O021EBD6ioROH:OOOO0A08stbr0, 0(r9)RON:O0O

21、O0AOCIwzr0, 0xC(r31) R0H:00000A10addler9 r0 0x28 R0N:0000OA14stwr9 0xC(r31)_: ROH:0O00OA18bloc_9ENdan- flAnnnA-ir ttnun. uuuuuti lb hROH:88O0M1CR0H:00000A1C 1OC_A1C:M CODE XREF: ROM:O000O9FO1j所测试的固件的符号表起始地址为0x301e64+0xl0000,结束地址为0x3293a4+0x10000o (4)编写脚本插件修复函数名。在得到了符号表的位置后,需要使用IDA Pro的API来修复函数名,这里将使

22、用如下的 Python脚本from idaapi import *import timeloadaddress=0x 10000caStart=0x301 c64+0x 10000eaEnd=0x3293a4+0x 10000ea=eaStarteaWnd=eaEndwhile eaeaEnd:offset=0MakeStr(Dword(ea-offset),BADADDR)sNamc=GctString(Dword(ca-offset),-1 ,ASCSTR_C)print sName if sName:eaFunc=Dword(ea-offset+4)MakeName(eaFunc,sNa

23、me)MakeCode(eaFunc)MakeFunction(eaFunc,BADADDR)ea=ea+16(5)运行脚本插件修复反汇编代码中的函数名。在IDA Pro中利用script file运行Python脚本,如下列图所示。登 IDA - C:UsersyanDesktop385File Edit Jump Search View Debugger Options Windows HelpNew instance添#/产磁)Open.Load fileProduce fileScript file.Alt+F7Script command.Shift+F2SaveCtrl+WSave

24、 as.lake databasesnapshot.Ctrl+Shift+WCloseQuick start0. C:UsersyanDesktop3851. C:UsersyanDesktop、新5件夹385.idb2. C:UsersyanDesktop385.idbExitAh+XInstruction ExternauIDA View-A3 C8 00 00 01 11 3 B8 00 00 01 13 3 AC FF FF FF FF 3 64 00 00 00 0( 3 06 00 20 0( I3 D8 00 06 0C D 3 DC 00 06 20 岫 3 CC 00 15

25、66 A8 3 40 00 03 FF E& 3 A0 00 15 66 88 3 84 00 06 42 2C 3 00 00 27 65 6C 3 00 00 27 65 5C 3 00 00 27 65 48 3 00 00 27 65 3c3 00 00 27 65 1C 3 09 00 27 65 08:3 00 00 27 64 F8 )3 00 00 27 64 E& 13 00 00 27 64 CCCIPParam:CIPParam(void)COUNTACalc0O3O1E(00301EI00301EI0脚本执行完毕后,IDA Pro中的函数名,如下列图所示。l.l.Lt.f,t-*&L_0 二二二二二.二二 sssss

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁