渗透测试和逆向工程
什么是渗透测试?
随着高度复杂的攻击的强劲增长,渗透测试全年都在发展。现在每个组织都意识到网络攻击造成的损害。私人和政府组织现在每三个月或更短时间进行一次预定的渗透测试。攻击每天都在增加,现在几乎每台设备都容易受到未修补的零日漏洞的攻击。 Meltdown 和 Spectre 等攻击的深度太深,以至于它利用了处理器级别的漏洞。同样,固件也是重要的攻击媒介之一。本文讨论了对路由器固件进行逆向工程的多种方法及其后门过程。
什么是固件?
固件用于通过软件控制一个硬件。固件预装在路由器、智能手机、计算机和其他物联网设备等设备中。固件是特定于硬件的。它们不仅与其他制造商的设备不同,而且与同一制造商的设备也不同。固件通常充当高度复杂设备中的操作环境。另一方面,在不太复杂的设备中,它们充当操作系统并负责完整的硬件控制。固件保存在 ROM 中;非易失性存储器。在大多数路由器中,固件文件系统是基于 Linux 操作系统的。固件可以更换,但用户不能删除
什么是逆向工程?
逆向工程是对产品进行反编译以公开其内部架构并了解其构建方式的过程。路由器固件大多是二进制格式,因为它们是特定于硬件的,无法读取。
因此,它们被逆向工程以解压缩其中存在的文件系统。解压文件系统后,可以看到文件系统内的文件。然后由安全研究人员分析该文件,以发现代码中的安全漏洞。或者文件系统中的文件可以被操纵,并且可以在文件系统中添加一个后门,允许攻击者控制路由器以及网络和其他连接到网络的设备。逆向工程使研究人员能够了解文件系统、代码流和固件的功能。
有多种方法可用于对路由器固件进行逆向工程。最近,美国国家安全局 (NSA) 发布了其逆向工程工具——Ghidra。 Linux 有几个内置实用程序,允许用户在不使用任何第三方工具的情况下解压缩固件文件系统。
逆向工程工具:
- Binwalk –是一个内置的 Linux 实用程序,允许我们雕刻和分析二进制文件。
- Unsquashfs –是一个解压或解压 squashfs 文件系统的工具。
- Hexdump –允许用户查看特定输入数据的十六进制视图,并能够将文件内容提取为多种格式,如十进制、八进制和 ASCII。
- Objdump –显示有关目标文件的信息并用于反汇编可执行文件。
- 字符串——提取嵌入在二进制文件和其他可执行文件中的字符串
- GDB – GNU 调试器有助于反编译用嵌入式 C、C++ 等编写的可执行文件和二进制文件。
- Radare2 –是为逆向工程和分析二进制文件而构建的框架。
- Ghidra –由一组逆向工程工具和 NSA 许可的开源软件组成。
- IDA –是允许从可执行文件调试和反编译源代码的商业软件。
- 固件模块套件——允许解压缩嵌入式设备中的各种固件。它支持各种文件系统和版本,例如 SquashFS 2.0、3.0 和 4.0。