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]