MIPS 图像的 IDA Pro

逆向工程 艾达 拆卸 二元分析 米普
2021-06-22 22:47:51

我有这个文件:

[ytti@lintukoto ~/tmp/ida]% file cat3k_caa-universalk9.SPA.03.03.00.SE.150-1.EZ.bin
cat3k_caa-universalk9.SPA.03.03.00.SE.150-1.EZ.bin: data

这是 Cisco Catalyst 3650 交换机的图像。交换机本身正在运行 Cavium,可能是 Linux 上的 Cavium Octeon CPU。

我认为它上面的文件有一些专有标题(也可能是文件完整性的散列)。如果我删除我认为是标题的内容,我会得到:

cat3k.mips: mc68010 demand paged executable not stripped

我无法在 IDA Pro 上打开它,因为它说它是二进制文件,我需要选择入口点。

我很确定它是自解压图像,所以我可能也希望能够解压它。但至少 unzip 和 gzip 对我来说失败了。

我想要完成的是,开关有某些命令你用来转义专有进程并访问 Linux shell,在此命令执行之前,它会向你提出一个挑战,你必须给出匹配的响应,否则没有汤^Wshell你。

我正在考虑找到抱怨不正确响应的字符串,看看代码的哪一部分跳转到那里。我希望在那里找到一些比较,然后我只是翻转比较。有了预期的结果,将来不正确的响应会成功(而正确的响应失败)。
我不希望思科做出任何特别的努力来避免客户故意破坏自己的工具包,这对他们来说更容易证明,客户没有通过进入 linux shell 并杀死某些进程而意外破坏它。

如果对文件进行某种完整性测试,那么我可能会不走运。

但我想知道一些如何实际操作的技巧

  1. 解压这个
  2. 以有意义的方式在 IDA Pro 中打开它

我可以根据要求共享文件(没有开关就没有用,如果你拥有开关,你就有资格获得图像,所以我不认为它是“warez”)。

挑战看起来像这样:

SWITCH#request system shell
Activity within this shell can jeopardize the functioning of the system.
Are you sure you want to continue? [y/n] y
Challenge:
aa1344d4d0dfbf85b22a719e54fe1365b5be267344223bd66c3b6368b3bd2b7f6b8b03fe87ab57e6360634d8fb>586c42c0918a3786f81a3a60
Please enter the shell access response based on the above challenge (Press "Enter" when do>ne or to quit.): 
kakka
Key verification failed
1个回答

我首先使用binwalk来绘制文件的熵,它也是firmware-mod-kit 的一部分这将使您了解文件的布局(引导加载程序、第二阶段、主固件等),以及部分或整个文件是否已加密/压缩。接下来,您可以使用相同的工具,让它尝试根据签名自动查找已知文件类型和/或压缩算法。

您可以使用将这两个步骤合二为一

binwalk -B -E <input>

有关 binwalk 使用的更多信息,请参阅 FAQ/Wiki。从那里你可以开始提取独立的块并将它们加载到 IDA 中。