2022-04-28 16:01:33 +00:00
|
|
|
|
<details>
|
|
|
|
|
|
2023-04-25 18:35:28 +00:00
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
このセクションでは、[**Objection**](https://github.com/sensepost/objection)というツールを使用します。\
|
|
|
|
|
まず、以下のようにObjectionのセッションを取得します。
|
2021-05-20 12:17:20 +00:00
|
|
|
|
```bash
|
|
|
|
|
objection -d --gadget "iGoat-Swift" explore
|
|
|
|
|
objection -d --gadget "OWASP.iGoat-Swift" explore
|
|
|
|
|
```
|
2023-07-07 23:42:27 +00:00
|
|
|
|
`frida-ps -Uia`を実行して、電話の実行中のプロセスを確認することもできます。
|
|
|
|
|
|
|
|
|
|
# アプリの基本的な列挙
|
|
|
|
|
|
|
|
|
|
## ローカルアプリのパス
|
|
|
|
|
|
|
|
|
|
* `env`: デバイス内のアプリが格納されているパスを見つける
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
env
|
|
|
|
|
|
|
|
|
|
Name Path
|
|
|
|
|
----------------- -----------------------------------------------------------------------------------------------
|
|
|
|
|
BundlePath /private/var/containers/Bundle/Application/179A6E8B-E7A8-476E-BBE3-B9300F546068/iGoat-Swift.app
|
|
|
|
|
CachesDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library/Caches
|
|
|
|
|
DocumentDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Documents
|
|
|
|
|
LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## バンドル、フレームワーク、ライブラリの一覧
|
|
|
|
|
|
|
|
|
|
* `ios bundles list_bundles`: アプリのバンドルの一覧を表示する
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
ios bundles list_bundles
|
|
|
|
|
Executable Bundle Version Path
|
|
|
|
|
------------ -------------------- --------- -------------------------------------------
|
|
|
|
|
iGoat-Swift OWASP.iGoat-Swift 1.0 ...8-476E-BBE3-B9300F546068/iGoat-Swift.app
|
|
|
|
|
AGXMetalA9 com.apple.AGXMetalA9 172.18.4 ...tem/Library/Extensions/AGXMetalA9.bundle
|
|
|
|
|
```
|
|
|
|
|
* `ios bundles list_frameworks`: アプリで使用されている外部フレームワークの一覧を表示する
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
ios bundles list_frameworks
|
|
|
|
|
Executable Bundle Version Path
|
|
|
|
|
------------------------------ -------------------------------------------- ---------- -------------------------------------------
|
|
|
|
|
ReactCommon org.cocoapods.ReactCommon 0.61.5 ...tle.app/Frameworks/ReactCommon.framework
|
|
|
|
|
...vateFrameworks/CoreDuetContext.framework
|
|
|
|
|
FBReactNativeSpec org.cocoapods.FBReactNativeSpec 0.61.5 ...p/Frameworks/FBReactNativeSpec.framework
|
|
|
|
|
...ystem/Library/Frameworks/IOKit.framework
|
|
|
|
|
RCTAnimation org.cocoapods.RCTAnimation 0.61.5 ...le.app/Frameworks/RCTAnimation.framework
|
|
|
|
|
jsinspector org.cocoapods.jsinspector 0.61.5 ...tle.app/Frameworks/jsinspector.framework
|
|
|
|
|
DoubleConversion org.cocoapods.DoubleConversion 1.1.6 ...pp/Frameworks/DoubleConversion.framework
|
|
|
|
|
react_native_config org.cocoapods.react-native-config 0.12.0 ...Frameworks/react_native_config.framework
|
|
|
|
|
react_native_netinfo org.cocoapods.react-native-netinfo 4.4.0 ...rameworks/react_native_netinfo.framework
|
|
|
|
|
PureLayout org.cocoapods.PureLayout 3.1.5 ...ttle.app/Frameworks/PureLayout.framework
|
|
|
|
|
GoogleUtilities org.cocoapods.GoogleUtilities 6.6.0 ...app/Frameworks/GoogleUtilities.framework
|
|
|
|
|
RCTNetwork org.cocoapods.RCTNetwork 0.61.5 ...ttle.app/Frameworks/RCTNetwork.framework
|
|
|
|
|
RCTActionSheet org.cocoapods.RCTActionSheet 0.61.5 ....app/Frameworks/RCTActionSheet.framework
|
|
|
|
|
react_native_image_editor org.cocoapods.react-native-image-editor 2.1.0 ...orks/react_native_image_editor.framework
|
|
|
|
|
CoreModules org.cocoapods.CoreModules 0.61.5 ...tle.app/Frameworks/CoreModules.framework
|
|
|
|
|
RCTVibration org.cocoapods.RCTVibration 0.61.5 ...le.app/Frameworks/RCTVibration.framework
|
|
|
|
|
RNGestureHandler org.cocoapods.RNGestureHandler 1.6.1 ...pp/Frameworks/RNGestureHandler.framework
|
|
|
|
|
RNCClipboard org.cocoapods.RNCClipboard 1.5.1 ...le.app/Frameworks/RNCClipboard.framework
|
|
|
|
|
react_native_image_picker org.cocoapods.react-native-image-picker 2.3.4 ...orks/react_native_image_picker.framework
|
|
|
|
|
[..]
|
|
|
|
|
```
|
|
|
|
|
* `memory list modules`: メモリにロードされたモジュールの一覧を表示する
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
memory list modules
|
|
|
|
|
Name Base Size Path
|
|
|
|
|
----------------------------------- ----------- ------------------- ------------------------------------------------------------------------------
|
|
|
|
|
iGoat-Swift 0x104ffc000 2326528 (2.2 MiB) /private/var/containers/Bundle/Application/179A6E8B-E7A8-476E-BBE3-B9300F54...
|
|
|
|
|
SubstrateBootstrap.dylib 0x105354000 16384 (16.0 KiB) /usr/lib/substrate/SubstrateBootstrap.dylib
|
|
|
|
|
SystemConfiguration 0x1aa842000 495616 (484.0 KiB) /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguratio...
|
|
|
|
|
libc++.1.dylib 0x1bdcfd000 368640 (360.0 KiB) /usr/lib/libc++.1.dylib
|
|
|
|
|
libz.1.dylib 0x1efd3c000 73728 (72.0 KiB) /usr/lib/libz.1.dylib
|
|
|
|
|
libsqlite3.dylib 0x1c267f000 1585152 (1.5 MiB) /usr/lib/libsqlite3.dylib
|
|
|
|
|
Foundation 0x1ab550000 2732032 (2.6 MiB) /System/Library/Frameworks/Foundation.framework/Foundation
|
|
|
|
|
libobjc.A.dylib 0x1bdc64000 233472 (228.0 KiB) /usr/lib/libobjc.A.dylib
|
|
|
|
|
[...]
|
|
|
|
|
```
|
|
|
|
|
* `memory list exports <module_name>`: ロードされたモジュールのエクスポートを表示する
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
```bash
|
|
|
|
|
memory list exports iGoat-Swift
|
|
|
|
|
Type Name Address
|
|
|
|
|
-------- -------------------------------------------------------------------------------------------------------------------------------------- -----------
|
|
|
|
|
variable _mh_execute_header 0x104ffc000
|
|
|
|
|
function _mdictof 0x10516cb88
|
|
|
|
|
function _ZN9couchbase6differ10BaseDifferD2Ev 0x10516486c
|
|
|
|
|
function _ZN9couchbase6differ10BaseDifferD1Ev 0x1051648f4
|
|
|
|
|
function _ZN9couchbase6differ10BaseDifferD0Ev 0x1051648f8
|
|
|
|
|
function _ZN9couchbase6differ10BaseDiffer5setupEmm 0x10516490c
|
|
|
|
|
function _ZN9couchbase6differ10BaseDiffer11allocStripeEmm 0x105164a20
|
|
|
|
|
function _ZN9couchbase6differ10BaseDiffer7computeEmmj 0x105164ad8
|
|
|
|
|
function _ZN9couchbase6differ10BaseDiffer7changesEv 0x105164de4
|
|
|
|
|
function _ZN9couchbase6differ10BaseDiffer9addChangeENS0_6ChangeE 0x105164fa8
|
|
|
|
|
function _ZN9couchbase6differlsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS0_6ChangeE 0x1051651d8
|
|
|
|
|
function _ZN9couchbase6differlsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS1_6vectorINS0_6ChangeENS1_9allocatorIS8_EEEE 0x105165280
|
|
|
|
|
variable _ZTSN9couchbase6differ10BaseDifferE 0x1051d94f0
|
|
|
|
|
variable _ZTVN9couchbase6differ10BaseDifferE 0x10523c0a0
|
|
|
|
|
## アプリのクラスのリスト
|
|
|
|
|
|
|
|
|
|
* `ios hooking list classes`: アプリのクラスのリストを表示します
|
2022-01-16 18:11:15 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
```bash
|
|
|
|
|
ios hooking list classes
|
|
|
|
|
|
|
|
|
|
AAAbsintheContext
|
|
|
|
|
AAAbsintheSigner
|
|
|
|
|
AAAbsintheSignerContextCache
|
|
|
|
|
AAAcceptedTermsController
|
|
|
|
|
AAAccount
|
|
|
|
|
AAAccountManagementUIResponse
|
|
|
|
|
AAAccountManager
|
|
|
|
|
AAAddEmailUIRequest
|
|
|
|
|
AAAppleIDSettingsRequest
|
|
|
|
|
AAAppleTVRequest
|
|
|
|
|
AAAttestationSigner
|
|
|
|
|
[...]
|
|
|
|
|
```
|
2022-01-16 18:11:15 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
* `ios hooking search classes <search_term>`: 文字列を含むクラスを検索します。例では、メインのアプリパッケージ名に関連する一意の用語を検索して、アプリのメインクラスを見つけることができます。
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
ios hooking search classes iGoat
|
|
|
|
|
iGoat_Swift.CoreDataHelper
|
|
|
|
|
iGoat_Swift.RCreditInfo
|
|
|
|
|
iGoat_Swift.SideContainmentSegue
|
|
|
|
|
iGoat_Swift.CenterContainmentSegue
|
|
|
|
|
iGoat_Swift.KeyStorageServerSideVC
|
|
|
|
|
iGoat_Swift.HintVC
|
|
|
|
|
iGoat_Swift.BinaryCookiesExerciseVC
|
|
|
|
|
iGoat_Swift.ExerciseDemoVC
|
|
|
|
|
iGoat_Swift.PlistStorageExerciseViewController
|
|
|
|
|
iGoat_Swift.CouchBaseExerciseVC
|
|
|
|
|
iGoat_Swift.MemoryManagementVC
|
|
|
|
|
[...]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## クラスのメソッドのリスト
|
|
|
|
|
|
|
|
|
|
* `ios hooking list class_methods`: 特定のクラスのメソッドのリストを表示します
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
ios hooking list class_methods iGoat_Swift.RCreditInfo
|
|
|
|
|
- cvv
|
|
|
|
|
- setCvv:
|
|
|
|
|
- setName:
|
|
|
|
|
- .cxx_destruct
|
|
|
|
|
- name
|
|
|
|
|
- cardNumber
|
|
|
|
|
- init
|
|
|
|
|
- initWithValue:
|
|
|
|
|
- setCardNumber:
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* `ios hooking search methods <search_term>`: 文字列を含むメソッドを検索します
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
ios hooking search methods cvv
|
|
|
|
|
[AMSFinanceVerifyPurchaseResponse + _dialogRequestForCVVFromPayload:verifyType:]
|
|
|
|
|
[AMSFinanceVerifyPurchaseResponse - _handleCVVDialogResult:shouldReattempt:]
|
|
|
|
|
[AMSFinanceVerifyPurchaseResponse - _runCVVRequestForCode:error:]
|
|
|
|
|
[iGoat_Swift.RCreditInfo - cvv]
|
|
|
|
|
[iGoat_Swift.RCreditInfo - setCvv:]
|
|
|
|
|
[iGoat_Swift.RealmExerciseVC - creditCVVTextField]
|
|
|
|
|
[iGoat_Swift.RealmExerciseVC - setCreditCVVTextField:]
|
|
|
|
|
[iGoat_Swift.DeviceLogsExerciseVC - cvvTextField]
|
|
|
|
|
[iGoat_Swift.DeviceLogsExerciseVC - setCvvTextField:]
|
|
|
|
|
[iGoat_Swift.CloudMisconfigurationExerciseVC - cvvTxtField]
|
|
|
|
|
[iGoat_Swift.CloudMisconfigurationExerciseVC - setCvvTxtField:]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# 基本的なフック
|
|
|
|
|
|
|
|
|
|
アプリケーションで使用されるクラスとモジュールを列挙したので、いくつかの興味深いクラスとメソッド名を見つけることができました。
|
|
|
|
|
|
|
|
|
|
## クラスのすべてのメソッドをフックする
|
|
|
|
|
|
|
|
|
|
* `ios hooking watch class <class_name>`: クラスのすべてのメソッドをフックし、メソッドが呼び出されるたびにすべての初期パラメータと戻り値をダンプします
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 単一のメソッドをフックする
|
|
|
|
|
|
|
|
|
|
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: 特定のクラスの特定のメソッドをフックし、メソッドが呼び出されるたびにパラメータ、バックトレース、および戻り値をダンプします
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## ブール値の返り値を変更する
|
|
|
|
|
|
|
|
|
|
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: 選択したメソッドが指定されたブール値を返すようにします
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
ios hooking set return_value "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" false
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## フックテンプレートの生成
|
|
|
|
|
|
|
|
|
|
* `ios hooking generate simple <class_name>`:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
ios hooking generate simple iGoat_Swift.RCreditInfo
|
|
|
|
|
|
|
|
|
|
var target = ObjC.classes.iGoat_Swift.RCreditInfo;
|
|
|
|
|
|
|
|
|
|
Interceptor.attach(target['+ sharedSchema'].implementation, {
|
|
|
|
|
onEnter: function (args) {
|
|
|
|
|
console.log('Entering + sharedSchema!');
|
|
|
|
|
},
|
|
|
|
|
onLeave: function (retval) {
|
|
|
|
|
console.log('Leaving + sharedSchema');
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interceptor.attach(target['+ className'].implementation, {
|
|
|
|
|
onEnter: function (args) {
|
|
|
|
|
console.log('Entering + className!');
|
|
|
|
|
},
|
|
|
|
|
onLeave: function (retval) {
|
|
|
|
|
console.log('Leaving + className');
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interceptor.attach(target['- cvv'].implementation, {
|
|
|
|
|
onEnter: function (args) {
|
|
|
|
|
console.log('Entering - cvv!');
|
|
|
|
|
},
|
|
|
|
|
onLeave: function (retval) {
|
|
|
|
|
console.log('Leaving - cvv');
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interceptor.attach(target['- setCvv:'].implementation, {
|
|
|
|
|
onEnter: function (args) {
|
|
|
|
|
console.log('Entering - setCvv:!');
|
|
|
|
|
},
|
|
|
|
|
onLeave: function (retval) {
|
|
|
|
|
console.log('Leaving - setCvv:');
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
```
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<details>
|
|
|
|
|
|
2023-04-25 18:35:28 +00:00
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたりしたいですか? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!**
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- [**公式のPEASS&HackTricksのスウェット**](https://peass.creator-spring.com)を手に入れましょう
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)または[telegramグループ](https://t.me/peass)に参加するか、**Twitter** [🐦](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[@carlospolopm](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-07-07 23:42:27 +00:00
|
|
|
|
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
</details>
|