MASTG-TECH-0074: 信息收集 - 网络通信

您可能会遇到的大多数应用程序都会连接到远程端点。 即使在执行任何动态分析(例如,流量捕获和分析)之前,您也可以通过枚举应用程序应该与之通信的域来获取一些初始输入或入口点。

通常,这些域将作为字符串存在于应用程序的二进制文件中。 可以通过检索字符串(如上所述)或使用 Ghidra 等工具检查字符串来提取域。 后一个选项具有明显的优势:它可以为您提供上下文,因为您可以通过检查交叉引用来查看每个域在哪个上下文中使用。

从这里开始,您可以使用此信息来获得更多见解,这些见解可能在您以后的分析中有用,例如,您可以将域与固定的证书进行匹配,或者对域名执行进一步的侦察,以了解有关目标环境的更多信息。

安全连接的实现和验证可能是一个复杂的过程,需要考虑很多方面。 例如,许多应用程序除了 HTTP 之外还使用其他协议,例如 XMPP 或纯 TCP 数据包,或者执行证书锁定以试图阻止 MITM 攻击。

请记住,在大多数情况下,仅使用静态分析是不够的,与动态替代方案相比,甚至可能效率极低,动态替代方案会获得更可靠的结果(例如,使用拦截代理)。 在本节中,我们只触及了表面,所以请参阅 "iOS 基本安全测试" 章节中的 基本网络监控/嗅探 并查看 "iOS 网络通信" 章节中的测试用例以获取更多信息。