From e490b635eda36525934c90216f028c77eb05c7c8 Mon Sep 17 00:00:00 2001 From: neilwu Date: Thu, 16 Jul 2020 21:23:38 +0800 Subject: [PATCH] add doc --- README.md | 4 +- doc/af_debug.png | Bin 0 -> 38507 bytes doc/swift_data.jpg | Bin 0 -> 112165 bytes howto.md | 196 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 doc/af_debug.png create mode 100644 doc/swift_data.jpg create mode 100644 howto.md diff --git a/README.md b/README.md index 9194289..62ac2e5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ ### FridaHookSwiftAlamofire -A frida tool that capture GET/POST HTTP requests of iOS Swift library 'Alamofire' and disable SSL Pinning. +A frida tool that capture GET/POST HTTP requests of iOS Swift library 'Alamofire' and disable SSL Pinning. + +[中文文档及过程](./howto.md) ### Features diff --git a/doc/af_debug.png b/doc/af_debug.png new file mode 100644 index 0000000000000000000000000000000000000000..1219c33253ad5880ab6c5eb0a0103c7c8347e56b GIT binary patch literal 38507 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 VV>$_rgBSn+002ovPDHLkV1jbucj*8C literal 0 HcmV?d00001 diff --git a/doc/swift_data.jpg b/doc/swift_data.jpg new file mode 100644 index 0000000000000000000000000000000000000000..971027dda766b20e547eb2500253244532566f6c GIT binary patch literal 112165 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≶r7A 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

AGQtVHM}=B-H$mgjvRC^1AnYkgB%fCgQ&U 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 literal 0 HcmV?d00001 diff --git a/howto.md b/howto.md new file mode 100644 index 0000000..c9a88f8 --- /dev/null +++ b/howto.md @@ -0,0 +1,196 @@ +初探Swift Runtime:使用Frida实现针对Alamofire的抓包工具 + +### 0x00 背景 +Swift自2014年发布以来,在Apple的开发生态下占据的位置越来越重要,国外友人在2019年统计过超过半数的非游戏类app已经使用swift,淘宝技术团队曾发文介绍过他们的[swift实践](https://mp.weixin.qq.com/s/UfOJK07Lhw72dGf0z1znbA)。随着swift5在2019年的发布,swift也终于进入ABI稳定,这无疑具有里程碑的意义,相信会有更多的App将离不开swift。 + +从逆向的角度看,关于swift的研究分析却较少,一些好项目还由于面向的swift的版本过老而与swift5存在兼容问题无法使用,比如 [swift-frida](https://github.com/maltek/swift-frida)。 + +笔者最近粗略学习了一下swift相关的文档,从swift类型在Mach-O文件中的结构入门,逐步到运行时分析。已经实现了一个从Mach-O文件中获取swift对象定义的命令行工具[SwiftDump](https://github.com/neil-wu/SwiftDump),包括其Frida版本[FridaSwiftDump](https://github.com/neil-wu/FridaSwiftDump/)。 + +在本文中,将着重从Swift Runtime数据结构入手进行分析,面向Github上3.3万star的swift HTTP网络库[Alamofire](https://github.com/Alamofire/Alamofire),实现一个基础版本的抓包工具,具备:打印GET/POST请求;屏蔽SSL Pinning。过程中会介绍到swift的内存布局,函数调用约定,参数传递,运行时函数调用。 + +**项目地址:[FridaHookSwiftAlamofire](https://github.com/neil-wu/FridaHookSwiftAlamofire)** + +### 0x01 测试环境 +新建空的iOS Swift工程,并使用cocoapods 引用 Alamofire 5.2.1作为framework。 +使用的Xcode版本为Version 11.5 (11E608c),swift 5.2,在ARM64的真机下运行。 + +### 0x02 确认关键函数 + +我们先从正向的开发环境入手,搞清楚Alamofire的请求过程,挖掘出合适的函数进行Hook。使用Frida完成一个可用的版本后,对其他app进行测试查看实际的使用效果。 + +#### 1. Alamofire Get请求示例 + +发送一个简单的GET请求,测试代码如下: +``` Swift +import Alamofire + +let urlstr = "https://httpbin.org/get?time=\( Int(Date().timeIntervalSince1970) )"; +AF.request(urlstr).response { (rsp:AFDataResponse) in + if let data = rsp.data { + let str = String(data: data, encoding: String.Encoding.utf8) ?? "nil" + print("rspstr=", str); + } else { + let str: String = "faild, err=\(rsp.error?.errorDescription ?? "nil")" + print(str); + } +} +``` + +#### 2. Alamofire的实现分析 + +AF 是 Session.default,`Session` 是Alamofire中创建和管理`Request`。 +调用 AF.request 后, Session会新建一个DataRequest, 并将其加入requestQueue中执行setup过程进行创建。 +查看DataRequest,在新建出来后,会调用: +`override func task(for request: URLRequest, using session: URLSession) -> URLSessionTask` +熟悉OC的朋友都知道,OC里有个NSURLSessionTask,此处的URLSessionTask正是为了兼容OC而存在的,可以[查看其源码](https://github.com/apple/swift-corelibs-foundation/blob/master/Sources/FoundationNetworking/URLSession/URLSessionTask.swift)。 + +既然是与OC兼容,那我们就以Hook OC的方式Hook函数 `open func dataTask(with request: URLRequest, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask`。具体实现在 HookDataTaskWithRequest.ts 中,此处比较简单,不再赘述。 + +运行Frida Hook,重新发送GET请求,发现确实触发了该Hook,但是completionHandler参数为空。为什么呢? + +继续回到Alamofire源码,看到 Session.swift 的init里可以看到默认URLSession的delegate为SessionDelegate,由其处理请求的各种数据和状态回调。 + +找到`open func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data)`,在此函数内接收回包的数据。我们在此进行Hook。这是一个swift函数,并不能用刚才OC的方法进行hook。swift导出的函数在被编译的时候,函数符号名会被name mangle,在swift5下,变为以$开始的一个字符串,其中包含类型信息,比如该函数被修饰为: +`$s9Alamofire15SessionDelegateC03urlB0_8dataTask10didReceiveySo12NSURLSessionC_So0i4DataF0C10Foundation0J0VtF` + +我们可以用以下命令来将符号还原(注意$符号前面的\): + +`swift demangle "\$s9Alamofire15SessionDelegateC03urlB0_8dataTask10didReceiveySo12NSURLSessionC_So0i4DataF0C10Foundation0J0VtF"` +输出结果为 +`Alamofire.SessionDelegate.urlSession(_: __C.NSURLSession, dataTask: __C.NSURLSessionDataTask, didReceive: Foundation.Data) -> ()` +确认是我们需要的函数符号。 + + +### 0x03. Foundation.Data的内存布局 + +接着以上步骤,在Frida中使用 getExportByName,来获取函数指针并Hook。第一个参数和第二个参数都是兼容OC的类型,可以转为Frida的ObjC.Object类型进行访问。第三个参数为Swift的Foundation.Data类型,怎么获取其数据呢? + +先来研究Foundation.Data,Swift的Foundation库已经[开源](https://github.com/apple/swift-corelibs-foundation),可以一探究竟。找到 `Data.swift`,将其简化一下,只保留相关定义: + +```Swift +public struct Data : ReferenceConvertible, Equatable, Hashable, RandomAccessCollection, MutableCollection, RangeReplaceableCollection, MutableDataProtocol, ContiguousBytes { + // A small inline buffer of bytes suitable for stack-allocation of small data. + struct InlineData {// max=15 bytes + var bytes: Buffer // 15 bytes + var length: UInt8 // 1 bytes + } + // A buffer of bytes too large to fit in an InlineData, but still small enough to fit a storage pointer + range in two words. + struct InlineSlice { // max=HalfInt.max + var slice: Range + var storage: __DataStorage + } + final class RangeReference { + } + // A buffer of bytes whose range is too large to fit in a signle word. Used alongside a RangeReference to make it fit into _Representation's two-word size. + struct LargeSlice { + var slice: RangeReference + var storage: __DataStorage + } + + // The actual storage for Data's various representations. + internal enum _Representation { + case empty + case inline(InlineData) + case slice(InlineSlice) + case large(LargeSlice) + } + internal var _representation: _Representation +} +// Underlying storage representation for medium and large data. +internal final class __DataStorage { + // +} +``` + +基本结构已知,根据的Data大小不同有不同的表示方式,具体参考上面代码的注释。在arm64环境下,我们的测试请求响应数据大小只有几百bytes,符合InlineSlice。结构如下图所示: + + +[Swift ABI调用约定](https://github.com/apple/swift/blob/master/docs/ABI/CallingConvention.rst#id13)里有介绍,swift非常注重第一类型,并且能够在寄存器中直接传递类型值。 + +在此处的Data类型就用到了这种方法。Data类型的数据被分为两个寄存器来传递:args[2]传递range信息,args[3]传递__DataStorage指针(args[0]指向NSURLSession,args[1]指向NSURLSessionDataTask,函数原型只有三个参数,但实际上调用时会有4个参数)。 +![](./doc/swift_data.jpg) + +``` +args[2] = 0x1e000000000 => 0x0,0x1e0 => range from 0 to 0x1e0 +args[3] = DataStorage's address +``` + +而__DataStorage是swift class,可以根据[class memory-layout](https://github.com/TannerJin/Swift-MemoryLayout/blob/master/Swift/Class.swift),解析出对应的地址(参考上面的结构关系图,代码实现在 SDSwiftDataStorage.ts中)。 + +注:事实上,我们在正向开发过程中,用Xcode打断点调试,也能看到swift Data的大概结构,如下图: +![](./doc/af_debug.png) + + +### 0x04. Kill SSL Pinning + +先看看Alamofire怎么使用SSL Pinning: + +``` Swift +let manager = ServerTrustManager(evaluators: ["httpbin.org": PinnedCertificatesTrustEvaluator()]) +self.session = Session(serverTrustManager: manager) +``` + +跟踪代码,在`func attemptServerTrustAuthentication(with challenge: URLAuthenticationChallenge) -> ChallengeEvaluation` 里会判断是否需要检查证书,设置了Pinning后会返回useCredential,如果没有设置任何检查项,则返回`(.performDefaultHandling, nil, nil)`,我们在此只需修改该函数永远返回这个Tuple值。 +Tuple的memory layout是线性布局的(如果未内存对齐,会为了内存对齐填充0),用Frida Hook后,指针指向的第一个值就是要修改的值。 + +代码在HookAFServerTrust.ts中,如下: +``` TypeScript +// TypeScript +let func_attemptServerTrust = Module.getExportByName(null, '$s9Alamofire15SessionDelegateC32attemptServerTrustAuthentication4withSo36NSURLSessionAuthChallengeDispositionV11disposition_So15NSURLCredentialCSg10credentialAA7AFErrorOSg5errortSo019NSURLAuthenticationK0C_tF'); +log(`[HookAFServerTrust] hook func_attemptServerTrust ${func_attemptServerTrust}`); +Interceptor.attach(func_attemptServerTrust, { + onLeave(retval:InvocationReturnValue) { + // force set retval to 0x1 to enable .performDefaultHandling + let val = retval.toInt32(); + if (val != 0x1) { + log(`[HookAFServerTrust] attemptServerTrustAuthentication retval ${retval}, reset to 0x1`); + let fakeret = new NativePointer(0x1) + retval.replace(fakeret) + } + } +}); +``` + + +### 0x05. Swift String + +如果我们想获取字符串Swift.String的值,该怎么做呢? +查看String的[内存布局](https://github.com/TannerJin/Swift-MemoryLayout/blob/master/SwiftCore/String.swift)。我们可知,String是Struct,值类型,分为 Small(<=15bytes) 和 Large两种表示方式。我们知道Foundation.URL有个函数可以根据String初始化。符号如下: +`s10Foundation3URLV6stringACSgSSh_tcfC ---> Foundation.URL.init(string: __shared Swift.String) -> Foundation.URL?`。hook这个函数,笔者发现,对于Small String,Swift会直接使用两个参数来传递该值。对于Large String,是使用两个参数分别指向了两个属性(符合ABI里介绍的调用约定,Swift值类型在传递时特定的情况下会直接用寄存器传递)。具体代码在文件SDSwiftString.ts中。 + + +### 0x06. One More Step + +能否直接调用Swift的运行时函数呢? +答案是可以的,但是需要传入合适的参数。 +举个例子: +使用IDA分析我们的测试程序,可以发现`$s10Foundation4DataV19_bridgeToObjectiveCSo6NSDataCyF` 函数原型为 +`Foundation.Data._bridgeToObjectiveC() -> __C.NSData` +它可以将Data类型转为NSData类型,而NSData类型我们是可以直接在Frida下使用的OC类型。参考以上,可以将Data用两个参数传递给这个函数即可,分别表示range和DataStorage。示例代码在 `SwiftRuntime.ts`中: + +``` TypeScript +// 获取函数符号地址 +const func_data2nsdata_ptr = Module.getExportByName(null, '$s10Foundation4DataV19_bridgeToObjectiveCSo6NSDataCyF'); +//生成函数指针用于调用 +funcptr_data_bridgeToObjectiveC = new NativeFunction(func_data2nsdata_ptr,'pointer', ['pointer', 'pointer']); + +//调用 +let ret:NativePointer = funcptr_data_bridgeToObjectiveC(rangePtr, dataStoragePtr) as NativePointer; +let ocret = new ObjC.Object(ret); // is __NSSwiftData: NSData +// 接下来可以直接调用OC的函数了,比如: ocret.length() , ocret.bytes() +``` + + +### 0x07. 总结 + +Swift为了与OC兼容,保留了部分动态性,同时,为了更高效的运行,充分利用了寄存器,能直接传递就不间接传递,以实现的复杂性来得到运行的高效性。当然对于逆向研究来说,这里面还有很多可以挖掘的地方,笔者在此仅尝试了一小部分且仍有瑕疵,欢迎大家留言交流学习。 + + +#### 参考资料 + +* [Swift ABI](https://github.com/apple/swift/blob/master/docs/ABI/CallingConvention.rst) +* [swift-corelibs-foundation](https://github.com/apple/swift-corelibs-foundation) +* [Swift-MemoryLayout](https://github.com/TannerJin/Swift-MemoryLayout) + +