三星基带逆向工具发行

阅读量131064

|

发布时间 : 2016-07-21 12:25:59

x
译文声明

本文是翻译文章,文章来源:安全客

原文地址:https://comsecuris.com/blog/posts/shannon/

译文仅供参考,具体内容表达以及含义原文为准。

t0125b2289938ac0777.jpg

6月份,我们曾使用Recon(一款远程控制软件),解释说明了关于三星基带工具的安全性能。在这篇文档中,我们加入了一些演示操作的幻灯片,以图文并茂的方式,向读者介绍了三星公司这款基带逆向安全工具。


首先,我们讨论了应如何充分理解专有的固件格式,如何实现RTOS(实时操作系统)的逆向工程操作的步骤;接着,弄清该工具的安全结构;对安全性能进行分析,试图找到能够实施网络攻击的漏洞;最后,我们编写了一个可执行RCE(远程代码执行)攻击的程序。


在这一测试过程中,我们找到了一些有效的操作方式,可以帮助我们很好地将一些嵌入式设备,应用到基带工具的逆向工程中,并发挥了很好的作用。我们希望,在此次测试过程中,我们所使用的逆向工程工具库,能给今后想要对三星Shannon基带工具,或基带安全性做进一步研究的安全人员,提供一些有用的指导和帮助。我们将会兑现承诺,在Github社区上上传所使用的工具库,感兴趣的读者可以自行下载使用。


如果你有任何的问题和想法,请在Github社区上与我们进行交流。

相关工具下载地址:https://github.com/comsecuris/shannonRE

代码详情:

├── 010
│   └── sam.bt [010 template for Shannon's TOC header format]
├── android
│   ├── collect-ramdump.sh [Collect ramdumps using cbd directly, requires root]
│   └── download-dump.sh [Collect ramdumps using the menu, does not require root]
├── idapython
│   ├── loader
│   │   └── sam_modem_ramdump.py [IDA loader for the Shannon MAIN image]
│   ├── misc
│   │   └── clean-IDC.sh [Clean up an IDC by removing {comments, filenames, *_something named labels, deletes}]
│   │   └── typeinfo.idc [Structure definitions for a Shannon idb]
│   └── plugins
│       ├── def_arm32_functions.py [Auto-find more functions by scanning for prologues]
│       ├── find_mcr.py [Find and label all the mcr instructions in an idb]
│       ├── label_functions.py [Label function names automatically using string references]
│       ├── name_msg_handlers.py [Name an L3 task's message handlers in its dispatch table automatically]
│       ├── parse_mpu.py [Parse the modem's MPU config table and pretty print all the configuration rules]
│       ├── pseudocomments.py [Save/Restore pseudocode comments from/to an idb. This is useful because IDCs lack these.]
│       ├── register_map.py [Label the register map inside a modem ramdump]
│       ├── stackscan.py [Identify possible stackframes inside a modem ramdump]
│       └── taskscan.py [Walk the task linked list in a modem ramdump to enumerate and label tasks]
└── modem
    ├── memdump.py [Dump memory ranges live from the modem]
    ├── readmem.py [Read memory from a modem address]
    ├── unpack_modem.py [Split up a modem image into its TOC parts (Boot, Main, etc)]
    └── writemem.py [Write memory to a modem address]
本文翻译自安全客 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
ResoLuT1On
分享到:微信

发表评论

内容需知
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全客 All Rights Reserved 京ICP备08010314号-66