
macOSおよびiOSのアーティファクトを収集し、ネットワークアクティビティ、デバイス横断的なアイデンティティ、物理的な位置情報の相関のタイムラインを構築して、偵察およびレッドチーム運用に役立てます。
RinHit - macOS エコシステム偵察フレームワーク。Apple エコシステムからアーティファクトを収集し、ネットワーク活動、デバイス間アイデンティティ、物理的な位置情報の相関のタイムラインを構築します。
これはオープンソースの偵察モジュールです。クローズドソースの Swift ペイロード(
rinhit-agent)は当社のレッドチームが内部で使用しており、このリポジトリには含まれません。
com.apple.wifi.known-networks.plist(レガシー)を解析、または networksetup(macOS 15+ Data Vault)を使用com.apple.Bluetooth.plist からのペアリング済み・キャッシュ済み・接続済みデバイスioreg(IOKit)および system_profiler による接続済み USB デバイスhigh、モバイルホットスポット = medium など# クローン
git clone https://github.com/toxy4ny/rinhit.git
cd rinhit
# ビルド
go build -o rinhit ./cmd/rinhit
# または直接インストール
go install ./cmd/rinhit
./rinhit list
sudo が必要)sudo ./rinhit scan -v
sudo ./rinhit scan -c wifi,bluetooth -v
sudo ./rinhit scan --correlate -v
sudo ./rinhit scan -o report.json
# Wigle CSV ダンプをインポート
./rinhit geo import wigle-export.csv
# BSSID を検索
./rinhit geo lookup AA:BB:CC:DD:EE:FF
# キャッシュ統計を表示
./rinhit geo stats
{
"generated_at": "2026-08-21T21:09:10Z",
"hostname": "MacBook-Pro-test.local",
"user": "root",
"artifacts": [
{
"id": "wifi-ns-iPhone7",
"collector": "wifi",
"type": "wifi-network",
"name": "iPhone7",
"severity": "medium",
"timestamp": "2026-08-21T14:09:10-07:00",
"source": "networksetup",
"data": {"ssid": "iPhone7", "source": "networksetup"},
"tags": ["wifi", "network", "macos15-fallback", "mobile-hotspot", "cross-device"]
}
],
"summary": {
"total_artifacts": 12,
"by_severity": {"info": 11, "medium": 1},
"by_collector": {"wifi": 12}
},
"data": {
"correlations": [
{
"type": "mobile-hotspot",
"confidence": 0.7,
"description": "Mobile hotspot 'iPhone7' detected - indicates iPhone/iPad tethering usage",
"artifact_ids": ["wifi-ns-iPhone7"],
"tags": ["mobile-hotspot", "tethering", "cross-device"]
}
]
}
}
rinhit/
├── cmd/rinhit/main.go # CLI エントリーポイント
├── pkg/
│ ├── collector/ # コレクターインターフェース&レジストリ
│ │ ├── wifi/ # Wi-Fi アーティファクトコレクター
│ │ ├── bluetooth/ # Bluetooth デバイスコレクター
│ │ └── usb/ # USB デバイスコレクター
│ ├── model/ # アーティファクト&レポート構造体
│ ├── parser/plist/ # SIP フォールバック付き Plist パーサー
│ ├── reporter/json/ # JSON レポーター
│ ├── correlator/ # アーティファクト横断相関エンジン
│ └── geoloc/ # オフライン BSSID ジオロケーションキャッシュ
新しいコレクターを追加するには、Collector インターフェースを実装します:
type Collector interface {
Name() string
Description() string
Collect(ctx context.Context) ([]model.Artifact, error)
RequiresRoot() bool
}
cmd/rinhit/main.go の buildRegistry() で登録してください。
networksetup にフォールバックします(land を活用)sudo が必要なのは wifi コレクターのみですMIT - LICENSE を参照してください。
"ゾウムシが果実に穴を開け、卵を産み、茎を切断して痕跡を隠すように、RinHit は Apple エコシステムに穴を開け、永続性を植え付け、内部からセキュリティ境界を侵食します。"