Tag: 渗透测试

Frida小工具补丁(异议)问题和解决方案的集合

在过去的几个月中,我使用Frida小工具修补程序做了很多iOS应用程序测试。 结果,我遇到了各种各样的问题,所以我记下了它们,并想在这里分享。 Objection是基于Frida脚本构建的移动应用程序渗透测试(iOS / Android)的运行时框架。 感官/异议 📱异议–运行时移动探索 github.com 另外,如果您是shell脚本的忠实拥护者,可以使用ipa-resign.sh 。 基本上,它执行相同的操作,即解压>将dylib修补为二进制>压缩>辞职> ggez。 #1 ios-deploy [28867:2152173] [!! 错误0xe8008015:找不到此可执行文件的有效配置文件。 AMDeviceSecureInstallApplication(0,设备,URL,选项,install_callback,0) 解: 通过使用XCode编译虚拟应用程序来重新生成配置文件(.mobileprovision)。 #2 ios-deploy [81588:2299477] [!! ]错误0xe80000c8:此应用程序不是为此设备构建的。 AMDeviceSecureInstallApplication(0,设备,URL,选项,install_callback,0) 解: $ vim有效负载/xxx.app/Info.plist //添加 242 UISupportedDevices 243 254 iPhone8,2 #您的iOS版本 //然后,重新打包 #3 错误:进程启动失败:安全性 (lldb) 解: 设置>常规>设备管理>信任开发人员应用程序配置文件 #4 ios-deploy [21336:960517] [!! 错误0xe8000067:内部API错误。 AMDeviceSecureInstallApplication(0,设备,URL,选项,install_callback,0) ios-deploy [22004:973130] [!! 错误0xe8008021:未知。 AMDeviceSecureInstallApplication(0,设备,URL,选项,install_callback,0) “应用程序安装失败” “达到免费开发配置文件的应用程序的最大数量。” […]

对iOS应用程序进行渗透测试而无需越狱

这是一篇文章,总结了我在伦敦AppSec EU 2018上演讲的一个实际部分。 从理论上讲,在不越狱的情况下对iOS应用进行渗透测试的一般概念包括5点: 下载应用程序包 搭建环境 注入自定义dylib和修改可执行文件 重新包装并签署包裹 以调试模式在设备上安装应用 每个应用程序包都使用iOS设备的加密密钥加密。 该机制称为Apple FairPlay(https://en.wikipedia.org/wiki/FairPlay)。 因此,如果您没有应用程序包,则将无法使用此方法-您仍然需要越狱的iDevice。 这不是针对赏金计划参与者的解决方案。 幸运的是,在“最忙碌的世界”中,客户端通常会交付应用程序包😉。 *您当然可以从https://www.iphonecake.com/等网站下载IPA文件,但不建议这样做-应用可能感染了恶意软件,并且通常已经过时。 在我们的示例中,我们将使用漏洞赏金计划中可用的Etsy应用程序。 首先,您需要注册为开发人员。 在此示例中,我们将使用免费的开发人员帐户,因此不需要$ 99的付费开发人员帐户。 然后,您必须注意两件事:签名证书和Embedded.mobileprovision文件。 处理它的最简单方法是创建一个空的XCode项目。 按下一步进入项目设置。 插入您的iOS设备,在XCode(在顶部栏中)中将其选中,然后选中“自动管理签名”复选框。 XCode将为您完成所有工作。 然后,按“生成并运行”按钮,然后等待应用程序安装。 如果您使用免费的开发者帐户,则还必须在iDevice的“设置”中信任该应用程序。 我的演讲中详细描述了3点和4点。 如果您想深入了解这些内容,请查看OWASP的记录。 最简单的方法是打开终端并输入: 安全查找身份-p代码签名-v 这将为您显示所有有效的代码签名。 然后,您需要复制ID并使用以下参数运行异议: 异议patchipa-源./etsy.ipa-codesign-signature SIGNATUREHERE 该过程应如下图所示: 安装修补的ipa的最便捷方法是留在同一终端中并键入: 解压缩etsy-frida-codesigned.ipa 然后使用ios-deploy工具: ios-deploy-捆绑./Payload/Etsy.app -W -d 下面是描述过程的记录: 由于现在已经准备好环境,因此需要将您喜欢的工具连接到Frida的dylib。 在演示中,我使用了百香果-(ChiChou和oleavr)的荣誉。 伙计们! 现在,您可以在未越狱的iDevice上执行渗透测试! 💪🏻 本文介绍有关iOS应用程序安全测试期间的技术挑战。 如果您对更一般的移动应用程序安全性要求和最佳实践感兴趣, 请查看我们的指南 。 您还应该符合iOS安全套件 —一个Swift库,可简化iOS应用程序中防篡改机制的实现。

iOS应用程序的请求和响应

介绍 我们都准备从监视和分析应用程序与服务器之间的通信开始。 在完成流量分析的设置之后,我们将不再等待开始。 请参阅上一篇文章,以获取有关设置Burp Suite的帮助。 关于HTTP的简介 HTTP是Internet的语言。 正如我们与人交流一样,iOS应用程序也与应用程序服务器进行交流。 一个简单的区别是,一个人只能提出问题(请求),而另一个人只能回答那些问题(请求)。 所有这些通信都必须使用共同商定的语言(HTTP)进行。 让我们直接了解我们所要求和回应的意思。 资料来源: http : //www.steves-internet-guide.com/http-basics/ 上图显示了应用程序发送到服务器的HTTP请求的典型格式以及作为响应收到的响应。 响应由应用程序分析,必要的行为会在UI上向用户显示内容。 要了解有关HTTP基础知识的信息,请参阅 http://www.ntu.edu.sg/home/ehchua/programming/webprogramming/HTTP_Basics.html。 移动应用程序的典型工作流程 这些天,其他所有移动应用程序都遵循如下所述的工作流程: 登录前屏幕 —这些信息可能包括诸如搜索页面,关于页面,联系页面,注册页面等信息。 登录屏幕 -应用程序可以向用户提供任何数量或类型的登录过程。 最常见的登录过程使用手机号码,电子邮件地址或用户ID,并将其与单点登录密码,OTP或任何其他参数结合在一起以标识用户。 应用程序功能 -包括应用程序为其最终用户提供的主要功能。 它可能涉及交易,社交网络,电子商务等。 注销功能 -应用程序还可以提供可选的注销或类似功能,以结束用户在移动设备上的会话。 恢复功能 -此功能对于开发人员也是可选的。 它可能被标记为忘记密码或任何其他类似的名称。 识别请求和响应参数 一旦了解了目标应用程序的工作流程,我们就可以推动自己揭开应用程序工作流程背后的秘密。 “秘密”是指使功能成为可能的请求的输入和输出。 用技术术语来说,这些“秘密”被称为参数。 因此,我们有请求参数和响应参数。 典型的请求参数可能是以下之一: PATH参数 :它们出现在URL本身中。 考虑下面的请求行。 GET / api / profile / users / 2 HTTP / 1.1 […]