10 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループまたはtelegramグループに参加するか、Twitterで🐦@carlospolopmをフォローしてください**.**
-
ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。
UIPasteboard
は、アプリ内および他のアプリ間でデータを共有するために使用されます。2種類のペーストボードがあります。
- システム全体の一般的なペーストボード:任意のアプリとデータを共有するためのものです。iOS 10以降、デバイスの再起動やアプリのアンインストールに関係なく、デフォルトで永続的です。
- カスタム/名前付きペーストボード:別のアプリ(共有元のアプリと同じチームIDを持つ)またはアプリ自体とデータを共有するためのものです(作成したプロセス内でのみ利用可能です)。iOS 10以降、デフォルトでは非永続的です。つまり、所有(作成)アプリが終了するまで存在します。
いくつかのセキュリティ上の考慮事項:
- ユーザーはアプリがペーストボードを読み取る許可を付与または拒否することはできません。
- iOS 9以降、アプリはバックグラウンドでのペーストボードのアクセスを制限されています。これにより、バックグラウンドでのペーストボードの監視が緩和されます。
- Appleは永続的な名前付きペーストボードについて警告しており、その使用を推奨していません。代わりに、共有コンテナを使用する必要があります。
- iOS 10以降、デフォルトで有効になっているハンドオフ機能の一部であるUniversal Clipboardがあります。これにより、一般的なペーストボードの内容が自動的にデバイス間で転送されます。開発者が選択すれば、この機能を無効にすることも可能で、コピーされたデータの有効期限を設定することもできます。
したがって、機密情報がグローバルペーストボードに保存されていないかを確認することが重要です。
また、アプリケーションがグローバルペーストボードのデータを使用してアクションを実行していないかを確認することも重要です。悪意のあるアプリケーションがこのデータを改ざんする可能性があります。
アプリケーションは、ユーザーがクリップボードに機密データをコピーするのを防ぐこともできます(推奨されています)。
静的解析
システム全体の一般的なペーストボードは、generalPasteboard
を使用して取得できます。このメソッドをソースコードまたはコンパイルされたバイナリで検索してください。機密データを扱う場合は、システム全体の一般的なペーストボードの使用は避けるべきです。
カスタムペーストボードは、pasteboardWithName:create:
またはpasteboardWithUniqueName
を使用して作成できます。カスタムペーストボードが永続的に設定されているかどうかを確認してください。iOS 10以降、これは非推奨となっています。代わりに共有コンテナを使用する必要があります。
動的解析
以下のメソッドをフックまたはトレースしてください:
- システム全体の一般的なペーストボードの場合は
generalPasteboard
。 - カスタムペーストボードの場合は
pasteboardWithName:create:
およびpasteboardWithUniqueName
。
また、非推奨のsetPersistent:
メソッドをフックまたはトレースし、呼び出されているかどうかを確認してください。
ペーストボードを監視する際には、以下の詳細情報を動的に取得できます:
pasteboardWithName:create:
をフックして入力パラメータを検査するか、pasteboardWithUniqueName
をフックして返り値を検査することで、ペーストボードの名前を取得できます。- 最初に利用可能なペーストボードアイテムを取得します。文字列の場合は
string
メソッドを使用します。または、標準のデータ型の他のメソッドを使用します。 numberOfItems
を使用してアイテムの数を確認します。- 便利なメソッドを使用して、標準のデータ型の存在を確認します。例えば、
hasImages
、hasStrings
、hasURLs
(iOS 10以降)などです。 - [
containsPasteboardTypes:inItemSet:
](https://developer.apple.com/documentation/uikit/uipasteboard/1622100-containspasteboardtypes? たとえば、このスクリプト(objectionのペーストボードモニターのスクリプトに基づいています)は、5秒ごとにペーストボードのアイテムを読み取り、新しいものがあればそれを表示します。
const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
var items = "";
var count = Pasteboard.changeCount().toString();
setInterval(function () {
const currentCount = Pasteboard.changeCount().toString();
const currentItems = Pasteboard.items().toString();
if (currentCount === count) { return; }
items = currentItems;
count = currentCount;
console.log('[* Pasteboard changed] count: ' + count +
' hasStrings: ' + Pasteboard.hasStrings().toString() +
' hasURLs: ' + Pasteboard.hasURLs().toString() +
' hasImages: ' + Pasteboard.hasImages().toString());
console.log(items);
}, 1000 * 5);
参考文献
{% embed url="https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
-
**ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリ**にPRを提出してください。