Agent Skills by ALSEL
Anthropic Claudeデータ・分析⭐ リポ 0品質スコア 50/100

ios-pentesting-tricks

iOSアプリケーションのペネトレーションテスト向けプレイブック。許可を得たモバイルセキュリティ評価において、キーチェーン抽出、URLスキームハイジャック、Universal Linksの悪用、ランタイム操作、バイナリ保護解析、データストレージの問題、トランスポートセキュリティのバイパスをテストする際に使用します。

description の原文を見る

>- iOS pentesting playbook. Use when testing iOS applications for keychain extraction, URL scheme hijacking, Universal Links exploitation, runtime manipulation, binary protection analysis, data storage issues, and transport security bypass during authorized mobile security assessments.

SKILL.md 本文

SKILL: iOS Pentesting Tricks — エキスパート攻撃プレイブック

AI LOAD INSTRUCTION: iOS アプリケーションセキュリティテストの専門的な技術。脱獄 vs 非脱獄方法論、キーチェーン抽出、URL スキーム/Universal Links 悪用、Frida/Objection ランタイムフック、バイナリ保護チェック、データストレージ分析をカバーします。ベースモデルは保護クラスのニュアンスと AASA 設定ミスパターンを見落とします。

0. 関連ルーティング

詳しく掘り下げる前に、以下のロードを検討してください:

  • mobile-ssl-pinning-bypass — 詳細な SSL ピニング バイパス(SecTrust フック、SSL Kill Switch、フレームワーク固有の技術)
  • android-pentesting-tricks — 同じアプリの Android 版もテストする場合
  • api-sec — トラフィックをインターセプトした後、バックエンド API セキュリティテストの場合

アドバンスリファレンス

以下が必要な場合は IOS_RUNTIME_TRICKS.md もロードしてください:

  • iOS 固有のフック用 Frida レシピ(ObjC クラス列挙、メソッドスイズリング)
  • iOS 向け Objection コマンドリファレンス
  • ランタイムフッキングパターンとバイパステンプレート

1. 脱獄 VS 非脱獄テスト

機能脱獄済み非脱獄
SSL ピニング バイパスFrida、SSL Kill Switch 2、Objectionネットワークデバッグプロキシ、MITM プロファイル(制限あり)
キーチェーンアクセスkeychain-dumper、Frida dumpバックアップ抽出経由のみ(制限あり)
ファイルシステム検査アプリサンドボックスへのフルアクセスideviceinstaller + バックアップ経由のみ
ランタイム操作Frida、Cycript、LLDB attachサイドロードアプリ上の Frida(再署名)
バイナリ分析Mac 上で Class-dump、Hopper オンデバイスIPA 復号化、オフライン分析
メソッドフッキング完全な Frida/Cycript 機能制限あり(再署名アプリ + Frida gadget 必要)

非脱獄テスト設定

# デバイスから IPA を抽出
ideviceinstaller -l                    # インストール済みアプリ一覧
ios-deploy --id <UDID> --download --bundle_id com.target.app

# または frida-ios-dump で復号化 IPA を取得(脱獄済み)
python dump.py com.target.app

# Frida gadget でサイドロード(非脱獄ランタイムフッキング)
# 1. IPA を抽出、2. FridaGadget.dylib を Frameworks/ に挿入
# 3. 有効なプロファイルで再署名、4. ios-deploy でインストール

2. キーチェーン抽出

2.1 キーチェーン保護クラス

保護クラス利用可能性ユースケースリスクレベル
kSecAttrAccessibleWhenUnlockedデバイスロック解除時のみパスワード、トークン
kSecAttrAccessibleAfterFirstUnlock初回ロック解除後、再起動までバックグラウンドトークン高(ロック間で永続)
kSecAttrAccessibleAlways常に(iOS 12+ 非推奨)レガシーアプリ重大
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnlyパスコード設定 + ロック解除高価値シークレット

2.2 抽出方法

# 脱獄済み: keychain-dumper
/path/to/keychain-dumper -a              # すべてのアクセス可能項目をダンプ
/path/to/keychain-dumper -g password     # 汎用パスワードのみ
/path/to/keychain-dumper -i              # インターネットパスワード

# Frida / Objection
objection -g com.target.app explore
> ios keychain dump
> ios keychain dump --json                # JSON 出力で解析可能

# キーチェーン列挙用 Frida スクリプト
frida -U -f com.target.app -l keychain_dump.js

2.3 チェックポイント

項目タイプキーチェーンクラス一般的な内容
kSecClassGenericPasswordgenpアプリトークン、API キー、ユーザー認証情報
kSecClassInternetPasswordinetHTTP 認証認証情報、OAuth トークン
kSecClassCertificatecertクライアント証明書
kSecClassIdentityidnt証明書 + 秘密鍵ペア
kSecClassKeykeys暗号化キー

3. URL スキーム横取り

3.1 カスタム URL スキーム発見

# IPA/アプリバンドルから — Info.plist をチェック
plutil -p /path/to/Payload/Target.app/Info.plist | grep -A 10 CFBundleURLTypes

# 出力例:
# "CFBundleURLSchemes" => ["targetapp", "fb123456789"]

3.2 横取り攻撃

シナリオ: ターゲットアプリが OAuth コールバック向けに "targetapp://" を登録

1. 攻撃者アプリも "targetapp://" URL スキームを登録
2. ユーザーがターゲットアプリで OAuth ログインを開始
3. OAuth プロバイダーが targetapp://callback?code=AUTH_CODE にリダイレクト
4. iOS が攻撃者のアプリを代わりに開く可能性がある(非決定的なスキーム解決)
5. 攻撃者が OAuth 認可コードをキャプチャ
攻撃ベクトル技術影響
OAuth コールバック横取り同じスキームを登録認可コード盗難
ディープリンク横取り同じスキームを登録フィッシング、データ横取り
支払いコールバック横取り支払いスキームを登録トランザクション操作

3.3 URL スキーム VS Universal Links セキュリティ

機能カスタム URL スキームUniversal Links
登録どのアプリでも任意のスキームを要求可能ドメイン上の AASA ファイル必須
一意性保証なし(複数アプリ)ドメインパスごと 1 アプリ
検証なし暗号化(AASA 署名済み)
推奨用途非機密ナビゲーションOAuth コールバック、機密アクション
横取り可能はい(重複登録)AASA 設定ミスのみ

4. UNIVERSAL LINKS 悪用

4.1 AASA(Apple-App-Site-Association)設定ミス

# AASA ファイルを取得
curl -s "https://target.com/.well-known/apple-app-site-association" | jq .
curl -s "https://target.com/apple-app-site-association" | jq .

# ワイルドカードパターンをチェック(過度に広い)
# 悪い: "paths": ["*"]     ← すべての URL をキャプチャ
# 悪い: "paths": ["/NOT *"] ← 不十分な除外
設定ミスリスク悪用
ワイルドカードパス(*アプリがドメイン上のすべての URL を要求リダイレクトチェーンが UL を破ると URL スキームへフォールバック
AASA ファイル欠落Universal Links が機能しないアプリが安全性の低い URL スキームにフォールバック
間違ったドメインの AASAリンクが関連付けられないスキーム横取り可能
AASA が application/json として配信されないパース失敗リンクが関連付けされない
CDN キャッシング古い AASA古い関連付け一貫性のない動作

4.2 Universal Link を破棄 → URL スキームへフォールバック

技術: Universal Link を強制的に開かないようにして、URL スキームへのフォールバックを発生させる

1. ユーザーがリンクを長押し → 「Safari で開く」(そのドメイン向け UL を無効化)
2. リダイレクトチェーン: ドメイン A → ドメイン B → ターゲット(UL がリダイレクトで破棄)
3. JavaScript リダイレクト 302 ではなく(UL はサーバーサイドリダイレクトのみ対応)
4. アプリ非インストール → URL スキームへフォールバック → 横取り可能

5. ランタイム操作

5.1 iOS 上の Frida

# 脱獄済みデバイス上のアプリに接続
frida -U -f com.target.app --no-pause

# 基本的な ObjC 探索
> ObjC.classes                                    # すべてのクラスを一覧
> ObjC.classes.NSURLSession                       # クラスが存在するかチェック
> ObjC.classes.AppDelegate.$methods               # メソッドを一覧
> ObjC.classes.AppDelegate['- isLoggedIn'].implementation  # メソッドを読み取り

# メソッドをフック、戻り値を変更
Interceptor.attach(ObjC.classes.AuthManager['- isAuthenticated'].implementation, {
    onLeave: function(retval) {
        retval.replace(ptr(1));  // 強制的に TRUE を返す
    }
});

5.2 Objection iOS コマンド

objection -g com.target.app explore

# キーチェーン
> ios keychain dump

# クッキー
> ios cookies get

# ペーストボード
> ios pasteboard monitor

# 脱獄検出バイパス
> ios jailbreak disable

# SSL ピニング バイパス
> ios sslpinning disable

# バイナリ情報
> ios info binary

# フッキング
> ios hooking watch class AppDelegate
> ios hooking watch method "-[AuthManager isAuthenticated]" --dump-args --dump-return
> ios hooking set return_value "-[AuthManager isJailbroken]" false

5.3 Cycript(レガシーだが有用)

// 実行中のアプリにアタッチ
cycript -p com.target.app

// UI 階層を探索
UIApp.keyWindow.recursiveDescription().toString()

// ビューコントローラーを検索
[UIWindow.keyWindow().rootViewController _printHierarchy].toString()

// メソッドを直接呼び出し
[AppDelegate.sharedInstance isLoggedIn]  // → 戻り値をチェック
AppDelegate.sharedInstance.isLoggedIn = true  // → 変更

// シングルトンインスタンスにアクセス
var vc = choose(LoginViewController)[0]
vc.bypassLogin()

6. バイナリ保護

6.1 バイナリセキュリティチェック

# PIE(Position Independent Executable)
otool -hv /path/to/binary | grep PIE

# ARC(Automatic Reference Counting)
otool -I -v /path/to/binary | grep objc_release

# スタックカナリア
otool -I -v /path/to/binary | grep __stack_chk_guard

# 暗号化(FairPlay DRM)
otool -l /path/to/binary | grep -A 4 LC_ENCRYPTION_INFO
# cryptid 0 = 復号化、cryptid 1 = 暗号化
保護チェック欠落時の影響
PIEヘッダの MH_PIE フラグASLR 無効 → アドレス予測可能
ARC_objc_release シンボルUse-after-free がより可能性高い
スタックカナリア__stack_chk_guardバッファオーバーフロー悪用しやすい
暗号化cryptidバイナリを復号化なしで読み取り可能

6.2 IPA 復号化

# frida-ios-dump(推奨、脱獄済みデバイス)
python dump.py com.target.app
# 出力: 復号化 IPA をカレントディレクトリに

# bagbak(別案)
bagbak com.target.app

# Frida 経由の手動
frida -U -f com.target.app -l dump_memory.js
# メモリから復号化バイナリをダンプ、暗号化セクションを置き換え

6.3 ObjC 分析用 Class-dump

# Objective-C クラス情報をダンプ
class-dump /path/to/decrypted/binary > classes.h
class-dump -H /path/to/decrypted/binary -o /tmp/headers/

# 興味深いパターンを検索
grep -r "password\|token\|secret\|apiKey\|isJailbroken\|isRooted" /tmp/headers/

7. データストレージの問題

7.1 機密データの場所

場所パスチェック内容
NSUserDefaultsLibrary/Preferences/<bundle-id>.plistトークン、ユーザーデータ、機能フラグ
Core Data (SQLite)Library/Application Support/*.sqliteキャッシュされた API レスポンス、ユーザーレコード
キーチェーンシステムキーチェーンデータベース認証情報、キー(保護クラスをチェック)
クッキーLibrary/Cookies/Cookies.binarycookiesセッションクッキー
キャッシュLibrary/Caches/キャッシュされた API レスポンス、PII 含む画像
スクリーンショットLibrary/SplashBoard/Snapshots/バックグラウンド時にキャプチャされたアプリ状態
キーボードキャッシュLibrary/Keyboard/機密入力を含むオートコンプリート
ペーストボードシステムペーストボードコピーされたパスワード、トークン
WebView ストレージLibrary/WebKit/WebsiteData/LocalStorage、IndexedDB、クッキー

7.2 検査コマンド

# 脱獄済みデバイス — アプリサンドボックスは:
# /var/mobile/Containers/Data/Application/<UUID>/

# アプリ UUID を見つける
find /var/mobile/Containers -name "com.target.app" 2>/dev/null

# NSUserDefaults をチェック
plutil -p Library/Preferences/com.target.app.plist

# SQLite データベースをチェック
sqlite3 Library/Application\ Support/Model.sqlite ".tables"
sqlite3 Library/Application\ Support/Model.sqlite "SELECT * FROM ZUSER;"

# すべてのファイルで機密文字列をチェック
grep -r "password\|token\|bearer\|api_key" Documents/ Library/

8. トランスポートセキュリティ(ATS)

8.1 ATS 例外パターン

<!-- Info.plist — ATS 例外をチェック -->
<key>NSAppTransportSecurity</key>
<dict>
  <!-- 最悪: ATS をまるごと無効化 -->
  <key>NSAllowsArbitraryLoads</key>
  <true/>

  <!-- 悪い: 特定ドメイン例外 -->
  <key>NSExceptionDomains</key>
  <dict>
    <key>insecure-api.target.com</key>
    <dict>
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      <key>NSExceptionMinimumTLSVersion</key>
      <string>TLSv1.0</string>
    </dict>
  </dict>
</dict>
ATS 設定リスク備考
NSAllowsArbitraryLoads = true重大すべての HTTP 許可
NSExceptionAllowsInsecureHTTPLoads特定ドメインの HTTP
NSExceptionMinimumTLSVersion = TLSv1.0弱い TLS
NSAllowsArbitraryLoadsInWebContentWebView が HTTP ロード可能
ATS 例外なし適切な設定

9. iOS ペネトレストテスト デシジョンツリー

iOS アプリケーションをテスト中
│
├── デバイスが脱獄済み?
│   ├── はい → テスト機能フル
│   │   ├── キーチェーンダンプ → ios keychain dump(§2)
│   │   ├── ファイルシステム検査 → すべてのデータストレージをチェック(§7)
│   │   ├── ランタイムフック → Frida/Objection(§5)
│   │   └── バイナリ分析 → class-dump 復号化バイナリ(§6)
│   └── いいえ → テスト機能制限
│       ├── Frida gadget で再署名、ランタイムアクセス実現
│       ├── バックアップ抽出でデータ分析
│       └── ネットワークレベルテスト(プロキシ + SSL バイパス)
│
├── SSL ピニング がブロッキングプロキシ?
│   └── はい → mobile-ssl-pinning-bypass SKILL.md を参照
│
├── URL スキーム登録済み?
│   ├── OAuth コールバックが URL スキーム経由? → 横取りリスク(§3.2)
│   ├── Universal Links が設定済み? → AASA をチェック(§4.1)
│   └── 機密アクション向けスキーム使用? → 横取り試験
│
├── バイナリ保護は十分?
│   ├── PIE 欠落? → ASLR 無効(§6.1)
│   ├── スタックカナリア なし? → オーバーフロー リスク(§6.1)
│   └── 暗号化されたままなら? → まず復号化(§6.2)
│
├── データストレージが安全?
│   ├── NSUserDefaults にトークン? → 平文抽出(§7.1)
│   ├── キーチェーン保護クラス? → AfterFirstUnlock = 危険(§2.1)
│   ├── スクリーンショットキャプチャ? → Snapshots ディレクトリをチェック(§7.1)
│   └── キーボードキャッシュ? → 機密オートコンプリートをチェック(§7.1)
│
├── ATS が設定済み?
│   ├── ArbitraryLoads = true? → HTTP ダウングレード可能(§8)
│   └── ドメイン例外? → 対象 HTTP インターセプション
│
└── ランタイム操作が必要?
    ├── 脱獄検出がブロック? → ios jailbreak disable(§5.2)
    ├── 認証チェックをバイパスしたい? → フック + 戻り値変更(§5.1)
    └── API 呼び出しをトレースしたい? → メソッドフッキング(§5.2)

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
yaklang
リポジトリ
yaklang/hack-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/yaklang/hack-skills / ライセンス: MIT

関連スキル

OpenAIデータ・分析⭐ リポ 1,451

hugging-face-trackio

Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。

by gradio-app
汎用データ・分析⭐ リポ 855

btc-bottom-model

ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。

by star23
Anthropic Claudeデータ・分析⭐ リポ 380

protein_solubility_optimization

タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。

by SpectrAI-Initiative
Anthropic Claudeデータ・分析⭐ リポ 1,743

research-lookup

Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。

by K-Dense-AI
Anthropic Claudeデータ・分析⭐ リポ 299

tree-formatting

ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。

by majiayu000
汎用データ・分析⭐ リポ 145

querying-indonesian-gov-data

インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。

by suryast
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: yaklang · yaklang/hack-skills · ライセンス: MIT