整体流程
- 编程器提取固件。
- binwalk获取文件结构。
- 搜集系统信息,获取例如ssl,openssl,samba,ndp,等常见的工具信息,判断是否可以有漏洞可以利用。
- objdump或者使用二进制分析,IDA等工具进行具体的行为分析。汇编语言等。
- 总结。
其他链接索引
其他的不同方式的逆向。 今天看Freebuf,有专门模拟路由器环境和测试固件挖固件漏洞的,如果是搭建成功后,那真是极好的了。 获取了异常后进行分析,能获取漏洞,但是这种的问题比较大的一点是进一步分析还是人工的,如果借助GPT的话,速度确实快很多。但是一个人的问题还是比较大的。
AFL
AFL主要用于C/C++程序的测试,所以这是我们寻找软件的最优先规则。 目标开源与否不是很重要。 对于开源软件:AFL软件进行编译的同时进行插桩,以方便fuzz(效率更高 对于闭源软件:配合QEMU直接对闭源的二进制代码进行fuzz
沙箱的辅助功能
auxiliary模块,如果我们将自动化测试的脚本以及自动化点击的脚本放在虚拟机内部,并进行fuzz测试会发生了什么。获取到了CVE之后又会如何呢? 在黑盒测试中,是否有合适的内容来供给对应的考虑呢?
漏洞挖掘
目前漏洞挖掘已经国内外已经开始出现了拆分,然后国内的微步居然出了漏洞0-day平台,可能这个是放在hvv中用吧。
web的fuzz怎么搞?fuzz主要是对于系统层面的。例如android的fuzz。
如果是车机的fuzz呢?在这里选择进行代码覆盖面审计的对应软件很重要。
AFL的qemu分支
也有针对无源码的,像Qemu、PIN、Dyninst这些工具的引入,尽管说afl自带的系统里有qemu等但是效率不理想,所以就有一些别的大牛单独做的新的分支,甚至还有跟Frida结合的应用–这个好接近沙箱的特定的内容啊。