Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PenScope — パッシブリコン&攻撃対象領域マッパー — リクエスト送信数ゼロ | Kitploit
ツール/GitHubGitHub/spider12223/penscope
OSINT (オープンソースインテリジェンス)偵察脆弱性スキャナーエクスプロイトウェブアプリケーション悪用情報収集ウェブセキュリティペネトレーションテストシークレット検出クローラー
GitHubspider12223/penscope

PenScope

3323ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

パッシブリコン&攻撃対象領域マッパー — リクエスト送信数ゼロ

リポジトリを見るウェブサイト
``` ██████╗ ███████╗███╗ ██╗███████╗ ██████╗ ██████╗ ██████╗ ███████╗ ██╔══██╗██╔════╝████╗ ██║██╔════╝██╔════╝██╔═══██╗██╔══██╗██╔════╝ ██████╔╝█████╗ ██╔██╗ ██║███████╗██║ ██║ ██║██████╔╝█████╗ ██╔═══╝ ██╔══╝ ██║╚██╗██║╚════██║██║ ██║ ██║██╔═══╝ ██╔══╝ ██║ ███████╗██║ ╚████║███████║╚██████╗╚██████╔╝██║ ███████╗ ╚═╝ ╚══════╝╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝ ``` ### ブラウザ内で動作するバグ報奨金ツールキット。

バージョン マニフェスト 依存関係 行数 プローブ数 価格 ライセンス

クイックスタート · ハントモード · ワークベンチ · モード · エクスポート · Burpとの比較 · 内部構造


これは何か

PenScopeはChrome拡張機能です。インストールして、テスト許可のあるサイトを閲覧すると、攻撃表面全体(すべてのエンドポイント、シークレット、設定ミスのヘッダー、隠しパラメータ)を静かにマッピングします。指示を出すと、実際のセッションCookieを使用して36種類のプローブ攻撃を送信し、どれがヒットしたかを報告します。

またはスコープを設定して ハント をクリックすると、PenScopeは他のことをしている間にすべてを自律的に実行し、発見したすべてのCriticalおよびHighの発見に対して完全なHackerOne形式のバグ報奨金レポートを作成します。起床すると、提出可能なドラフトのキューができています。

これは、「プロキシを設定して、3つのウィンドウをクリックし、ペイロードリストにAlt-Tabで切り替える」というルーチンをスキップして、単に サイトを見る ことを望むバグ報奨金ハンターのための日常的なツールです。または、完全に見るのをやめて、ツールに狩りを任せることもできます。

すべてを読み取りますが、あなたが指示するまで何も送信しません。 スコープを設定し、ハントを押し、ノートパソコンを閉じます。朝起きるとドラフトされたCriticalができています。


v6.3の新機能

8フェーズにわたる監査駆動のリファクタリング。主な追加点:

  • プローブエンジン:36 → 45の攻撃。 SSRF param probing、NoSQL operator injection、GraphQL alias/batch DoS、cache deception、subdomain takeover heuristic、TabNabbing、postMessage origin correlation、Service Worker scope abuse。
  • Tier契約は説明ではなく強制されます。 Careful = GETのみ、順次、200ms間隔。 Medium = +POST(読み取り形状操作用)。 Full = 競合状態のバーストを含むすべて。 プローブメニューで任意のティアにホバーすると完全な契約が表示されます。
  • カバレッジ:31の新しいシークレットパターン + 9の新しいレスポンスボディパターン。 Mapbox secret keys、Datadog (real format)、Algolia admin、Twilio Auth Token、Postmark、Cloudflare API tokens、Heroku、Linear、Notion、Figma、Plaid pair、Snyk、Terraform Cloud、Pinata、SSH public keys、.env assignments、Vault s./b. prefixes — plus Spring Boot / Rails ActiveRecord / Django DEBUG / ASP.NET YSOD / Express / Apollo / MSSQL response-body detectors.
  • 17の新しい技術フィンガープリント。 Qwik、SolidStart、Tauri、Strapi、Sanity、Contentful、Hygraph、Clerk、Cognito、Okta、PingIdentity、Workday、ServiceNow、Salesforce Lightning、Adobe AEM、Electron renderer.
  • JWTエンリッチメント。 検出されたすべてのJWTは自動デコードされます(alg、iss、sub、aud、exp、iat、role、scope...)。が将来でロールが管理者のような場合、重要度が引き上げられます。

各フェーズの完全な内訳はCHANGES.mdを参照。移行ノートはMIGRATION.mdを参照。


クイックスタート```

  1. Download the latest release zip from the Releases page
  2. Unzip it
  3. Open chrome://extensions, enable Developer mode (top right)
  4. Click "Load unpacked" and pick the unzipped folder
root@kitploit:~
Pin the extension. Visit any site. Click the **P** icon. PenScope was already watching.

---

## 実行できること

PenScope はタブごとに 60 以上のデータフィールドをキャプチャします。実際の意味は次のとおりです。

**攻撃対象領域全体を確認。** JavaScript で参照されているが実際には呼び出されていないエンドポイントも含め、すべてのエンドポイント。ソースマップに埋め込まれた API パス、POST ボディから再構築された GraphQL オペレーション、フレームワークのイントロスペクションから推測された隠し管理ルート。

**本来出荷されるべきではなかったシークレットを見つける。** `.js` バンドルにハードコードされた API キー。`localStorage` 内の JWT。環境ダンプ内の AWS 認証情報。レスポンスボディ内の内部 ID。P1 レポートに掲載されるようなもの。

**ブラウザ内で 36 の攻撃ステップを実行。** 認証バイパス、BAC、IDOR、CORS リフレクション、JWT alg=none、SSTI、XXE、CRLF インジェクション、プロトタイプ汚染、パラメータ発見、API バージョンダウングレード。3 段階の攻撃レベル — 注意深い、中程度、フル。カスタムヘッダーの貼り付け。ステルスモードはリクエスト順をシャッフルし、WAF をトリップさせない。

**個々の発見事項を実際のエクスプロイトに連鎖させる。** メモリ内の JWT は発見事項です。同じ JWT に加え、署名なしトークンを受け入れる API エンドポイント、デコードされたロールが admin であること、これらは連鎖です。PenScope はレポートの上部に信頼度スコア、再現コマンド、次のステップとともにその連鎖を表示します。

**任意のリクエストを編集して再送信。** 右クリックスタイル。Repeater が新しいタブ、フルウィンドウで開きます。パラメータを変更。Send をクリック。レスポンスを確認。Diff にドロップしてベースラインと比較。

**挿入ポイントでファズ。** リクエスト内の任意の場所に `§payload§` をマークし、ペイロードセット(40 XSS 文字列、30 SQLi、28 LFI、18 SSTI、22 SSRF、24 コマンドインジェクション、ID 1-100、認証バイパスクラシック、一般的なユーザー名)を選択し、攻撃モード(Sniper / Cluster bomb / Pitchfork / Battering ram)を選択し、ライブ結果テーブルを監視。異常行は星印でフラグされます。

**同時に 5 人の異なるユーザーとしてテスト。** 認証コンテキスト(Anonymous、User A、User B、Admin、Internal)を保存。ワンクリックでアクティブコンテキストを切り替え — すべての Repeater リクエスト、すべての Intruder 実行、すべてのプローブがそれらの認証情報を使用します。次に **Authorization Matrix** を実行:PenScope はすべてのエンドポイント × すべてのコンテキストを走査し、グリッドを色分けします。行間の不一致が IDOR / BAC の発見事項であり、自動的に表面化されます。

**サイトに実際に適合する CSP を生成。** ページが行ったすべてのリクエストを走査し、リソースタイプごとに分類し、厳格なポリシーを構築。`default-src 'none'`、`frame-ancestors 'none'`、`upgrade-insecure-requests` を追加。インラインスクリプトと `eval()` を検出し、`'unsafe-inline'` を保持せざるを得なかった場合に警告します。既存の CSP との差分 — 緑は強化、赤は緩和。

**Claude と双方向で対話。** `→ Claude` をクリックして、スキャン全体を構造化されたブリーフとしてクリップボードにプッシュ。次に何をテストすべきか Claude に質問。Claude はフェンスで囲まれた JSON キューで応答。`⟳ Sync from Claude` をクリックすると、PenScope がキューを解析し、ライブターゲットに対して各攻撃を実行し、結果をチェーンアナライザーにフィードバックします。

**時間経過によるスコープを追跡。** 今日サイトのスナップショットを撮り、次のスプリントで再度スナップショットを撮り、Compare をクリック。PenScope はどの発見事項が新しく、どの発見事項が解決され、どの発見事項が移動していないかを示します。差分をチームの Slack 用に Markdown でエクスポート。

**発見事項をコンプライアンスコントロールにマッピング。** Compliance Audit をクリック。すべての発見事項が PCI-DSS v4、NESA UAE IAS、SAMA CSF、DESC ISR、ISO 27001、OWASP Top 10 2021、CWE の特定のコントロールにマッピングされます。SIEM 用に JSON をエクスポート。監査人用に PDF をエクスポート。

---

## Hunt Mode

ポップアップヘッダーで `🎯 Hunt` をクリック。新しいタブが開きます。下部の **pre-flight panel** にエンジンの状態(キャプチャされたエンドポイント、シークレット、検出された技術、保存された認証コンテキスト)が表示されるため、Start をクリックする前に生産的なハントに十分な表面があるかどうかを確認できます。エンドポイントが 20 未満の場合、黄色の警告が表示され、最初にターゲットをブラウズするか、新しい DOM 自動クロールステップに依存することを提案します。ターゲットスコープ(スコープ内パス、スコープ外パス、攻撃レベル、時間予算)を設定。`▶ Start Hunt` をクリック。

PenScope は自律的に:

1. パッシブ偵察を完了
2. **Deep モードを自動有効化**(CDP デバッガーがサイレントにアタッチ — ユーザープロンプトなし)
3. **DOM 自動クロール** — 現在のページ上のすべての `<a href>`、`<form action>`、``、`[routerLink]`、`[ng-href]`、`[to]`、`[data-href]` を走査。同一オリジンの URL にフィルタリング。新しいものをプローブキューに追加。_純粋な URL 抽出 — クリックなし、ナビゲーションなし、セッションを変更する副作用なし。_
4. フル 36 ステップのプローブパイプライン + 8 つのスタック認識型攻撃パックを実行
5. 保存された認証コンテキスト全体で **Authorization Matrix** をスイープ
6. チェーンコリレーターを実行し、スコープルールでフィルタリング
7. **Critical および High のすべての発見事項に対して完全な HackerOne 形式のレポートをドラフト** — チェーン *および* 個々の高重要度の発見事項(露出したシークレット、JWT alg=none、確認済みの SSTI/XXE/CRLF)。各ドラフトには、タイトル、CVSS 推定値付き重要度、要約、2 ステップの curl による再現手順(認証なしプローブ + 差分用の認証ベースライン)、発見事項固有の影響ステートメント、スニペットライブラリからの修正提案、参考文献を含む
8. Critical ごとに Chrome 通知を発火:_"Hunt Mode found a Critical IDOR on /api/users — report draft ready"_
9. ドラフトをホストをキーとして `chrome.storage.local` に永続化(タブを閉じてもブラウザを再起動しても生存)

**Live タブ**はすべてのフィルタステップをリアルタイムで説明 — スコープフィルター前後のチェーン数、重要度分布、何がなぜドロップされたか。ハントが 0 件のレポートで終了した場合、「Why no reports?」診断がすべてのフィルターポイントを具体的な提案(「Critical+High フィルターのチェックを外す」「2 つ以上の認証コンテキストを保存」「最初にターゲットをもっとブラウズする」)とともに案内します。なぜハントが空で終わったのか疑問に思うことはもうありません。

**起床すると、事前に作成されたバウンティレポートのキューが待っています。** それぞれを読み、Copy または Export をクリックし、HackerOne / Bugcrowd / Intigriti の提出物に貼り付けます。

これが Burp が試みさえしないワークフローです。Burp の Active Scanner は攻撃を実行しますが、それでもレポートを書かなければなりません。PenScope はスキャン → エクスプロイト → レポート → 提出の全パスを所有します。

> スコープを設定。Start を押す。ラップトップを閉じる。起床するとドラフトされた Critical のキューが待っています。

### 品質管理 — あなたの評判を守る

Hunt Mode は、提出すると評判を損ねるような誤検出を積極的にフィルタリングします。

- **SPA HTML シェル** — Angular/React/Vue のブートストラップページは、JS がクライアント側で認証を処理するため、認証済みリクエストと認証なしリクエストに同一の HTML を返します。Hunt Mode はこのパターン(パスが `.html` で終了 + `sameBody=true`)を検出し、発見事項を抑制します。実際の API は引き続き報告されます。
- **良性の Azure SAS トークン** — メディア用の短命な読み取り専用 SAS URL(`image.jpg?sv=...&sp=r&se=...`)は正当な CDN 配信であり、資格情報の漏洩ではありません。Hunt Mode は `sp=r` + メディアファイル拡張子 + `se - st < 7 days` をチェックし、抑制します。長命、書き込み可能、または非メディアの SAS トークンは実際の漏洩として報告されます。
- **ハッシュフラグメントの正規化** — `/Dashboard#!/` はクライアント側ルートであり、サーバーエンドポイントではありません。Hunt Mode はチェーン分析の前にハッシュフラグメントを除去するため、レポートには `/Dashboard`(実際のサーバーパス)が表示されます。
- **すべての curl に実際の `baseUrl`** — チェーンアナライザーは `tab.url`(HTTP/HTTPS のみ)からターゲットホストを導出し、フォールバックとして最初に観測されたエンドポイントを使用します。レポート内に `https://target.tld` のようなプレースホルダー URL はもうありません。
- **透過的な診断** — すべてのフィルタステップ(スコープ、重要度、重複排除)は、ライブフィードで前後のカウントをログに記録します。ハントが 0 件のレポートで終了した場合、フィードは「Why no reports?」ブロックで終了し、特定の設定に適応した具体的な次のステップの提案とともに、潜在的な発見事項がどこでドロップされたかを正確に説明します。

### 実際の Hunt Mode ドラフト

以下は、Hunt Mode が政府の LMS に対して 4 分で生成した実際のドラフトから編集した抜粋です。```markdown
# Authentication bypass on sensitive endpoint: /api/DashboardApi/getUsefulLinks

**Severity:** CRITICAL (CVSS estimate: 9.0–10.0)
**Confidence:** 95%
**Target:** https://lms.example.gov/Dashboard
**Discovered:** 2026-05-01T07:31:13.151Z
**Detected by:** PenScope v6.2 Hunt Mode (chain pattern: chain-authbypass)

## Summary
PenScope's probe confirmed that GET /api/DashboardApi/getUsefulLinks returns
the same data whether or not authentication cookies are sent
(auth=200, noauth=200, sameBody=false). The path name strongly suggests this
endpoint should be role-gated — it's returning sensitive data to
unauthenticated callers.

## Steps to reproduce
# Verify unauthenticated access
curl -i "https://lms.example.gov/api/DashboardApi/getUsefulLinks"

# Compare to authenticated baseline (paste your real cookies):
curl -i "https://lms.example.gov/api/DashboardApi/getUsefulLinks" -b "session=..."

## Impact
Successful exploitation enables an attacker to bypass core security controls,
gain unauthorized access to sensitive functionality or data, and pivot to
broader compromise. This is a credible breach path warranting immediate
remediation.

## Suggested fix
Enforce server-side authentication on every endpoint that returns sensitive
data. The fact that PenScope received a 200 with no cookies means the
authorization middleware is missing or disabled for this route.

[ ... full Express/Django/Laravel snippet examples + references ... ]

これは提出可能なバグ報奨金レポートです。 別の作業中に作成されました。


The Workbench

Workbenchは、PenScopeを「受動的な偵察ツール」から「Burpを開くために使うものすべて」へと引き上げます。ポップアップヘッダーで⌘ Workbenchをクリックすると、フルウィンドウのChromeタブが開き、スキャンと状態を共有する6つのツールが表示されます。

Repeater

いじりたいリクエストをキャプチャしましたか? サイトマップでそれをクリックしてください。リクエスト全体(メソッド、URL、ヘッダー、本文)がエディタに読み込まれます。好きなだけ編集してください。Send(またはCtrl+Enter)を押すと、レスポンスが右側にステータス、サイズ、時間、そしてそれを発行したアクティブな認証コンテキストとともに表示されます。

履歴レールには、最後の50回の送信が保持されます。3つのボタンで、現在のリクエストを実用的な成果物に変換できます:Copy as curl(ターミナルやレポート用)、Send to Intruder(同じヘッダーと本文がプリロードされた状態)、Send response to Diff。

Intruder

任意のリクエストを取得します。ファズしたい値を§...§で囲みます。ペイロードセットを選択し、Startを押します。

組み込みペイロードライブラリ:

または独自のリストを貼り付けてください。4つの攻撃モード:Sniper(一度に1つの位置)、Cluster bomb(すべての組み合わせ)、Pitchfork(位置を連動)、Battering ram(すべての場所に同じペイロード)。ライブ結果テーブルに異常検出機能があり、ステータスコードやレスポンスサイズがベースラインと異なる行にフラグが付けられます。

ハードキャップ:攻撃あたり200リクエスト。うっかりバウンティ対象をDoSしないように。

Encoder

ハンターが日常的に触れるフォーマットのラウンドトリップ可能な変換:``` Base64 ↔ B64-URL ↔ URL ↔ HTML ↔ Hex ↔ MD5 / SHA-1 / SHA-256 / SHA-512

root@kitploit:~
Plus a dedicated **JWT card**: paste a token, decode the header and payload, edit either, then forge a new one. Two forge modes:

- **alg=none** — the classic JWT auth bypass test (server trusts unsigned tokens)
- **HS256** — sign with a guessed weak secret (`secret`, `key`, `password`, `jwt-secret` are the common ones)

Output is a single token, copy-paste ready.

### Diff

Two text panes. Send responses from Repeater with one click. Hit `Compute Diff`. PenScope runs an LCS line-diff and color-codes the result: `+` for added, `−` for removed. Summary count at the top.

This is the IDOR-confirmation killer. "Is the response for User A *the same* as for User B, or did the server actually return User B's data?" Diff tells you in three seconds.

### Site Map

Hierarchical tree of every endpoint PenScope captured, organized by host → path. Method pills (`GET`, `POST`, `DELETE`...). Status code badges per node, color-coded green/yellow/orange/red. Click any path to load it into Repeater.

The full attack surface, in one view, ready to test.

### Auth Contexts + Authorization Matrix

This is the differentiator. Burp doesn't ship this.

Save named auth profiles. Each profile = a name + a set of cookies + a set of headers. Build them by logging in as each user, copying their session cookies + Authorization header, pasting into the editor. Add notes ("paid plan", "read-only role", "internal staff"). One click switches the active context. Every Repeater / Intruder / probe request now fires with those credentials.

Then click `Run authorization matrix`. PenScope hits every endpoint × every context and renders a grid:```
                     Anonymous   User A    User B    Admin
GET  /api/me         401         200       200       200
GET  /api/users      401         403       403       200
GET  /api/admin      401         403       403       200
DELETE /api/orders/5 405         403       403  ★    200
PATCH /api/users/42  401         200  ★    403       200

Stars flag rows where contexts disagree. Those rows are your IDOR and BAC findings, automatically surfaced.

A typical hunter spends an entire afternoon manually testing each endpoint as each user, taking notes in a doc. PenScope does it in 30 seconds and color-codes the results.


Modes

Same data engine, three views. Pick whichever matches what you're doing.

Switch modes with the Classic / Red / Blue pill in the popup header. Each tab remembers which mode you were last in. Theme colors swap with the mode.


Exports

Click Export ▾ in the popup header. Ten formats, two purposes:

The Markdown report is built for sharing — every credential gets redacted, the report header explicitly says so. The JSON is built for syncing with your hunting partner — every credential ships intact.


vs Burp

PenScope and Burp solve the same problem from different sides. PenScope lives in your browser; Burp is an MITM proxy. Both have their place. Here's the honest comparison.

Where PenScope wins: free, faster setup, browser-native (uses your real session, no cert dance), chain correlation, defender-mode tooling, AI bridge.

Where Burp wins: TLS-level interception lets you see and modify requests before they leave the network stack — useful for native apps and websocket smuggling. Collaborator gives you out-of-band callback infrastructure for blind XXE / SSRF.

If you do bug bounty exclusively in your browser on web apps, PenScope replaces Burp for ~95% of your daily workflow. If you reverse-engineer mobile apps or test thick clients, Burp is still your friend.


Privacy

PenScope sends nothing without explicit user action. There is:

  • ❌ No analytics
  • ❌ No telemetry
  • ❌ No remote logging
  • ❌ No license server
  • ❌ No "phone home" check

Outbound traffic happens only in three cases:

  1. You click Probe — requests go to the site you're scanning, using your existing session cookies
  2. You click → Claude or any Copy button — content goes to your local clipboard
  3. You click any Export option — content saves to your local disk

Zero npm packages. Zero CDN scripts. Zero third-party SDKs. Pure vanilla JavaScript, MV3 manifest, zero supply-chain attack surface.



Under the hood

Architecture, the 36 probe attacks, the 13 chain patterns, the file map, and why none of this needs a build step.


Architecture```

root@kitploit:~
                ┌──────────────────────────┐
                │   state[tabId]            │
                │   60+ fields populated by │
                │   webRequest / content /  │
                │   CDP / probe layers      │
                └──────────┬───────────────┘
                           │
   ┌───────────────────────┼───────────────────────┐
   │                       │                       │

Classic mode Red mode Blue mode renderClassic() renderRed() renderBlue() │ │ │ └───────────────────────┴───────────────────────┘ │ ┌────────────────┴────────────────┐ │ │ Workbench Hunt Mode (Repeater · Intruder · Encoder (autonomous orchestrator · Diff · Site Map · Auth Matrix) drafting H1 reports)

root@kitploit:~
**1つのエンジン、3つのモード、3つのサーフェス。** データエンジンはモードに依存しません。どのビューにいるかに関わらず、すべての状態フィールドは同じように収集されます。モードは、同じデータに対するテーマとレンダラーの選択です。WorkbenchとHunt Modeは、バックグラウンドメッセージハンドラーを介して `state[tabId]` を共有するスタンドアロンのChromeタブです。

CSS変数のオーバーライド(`body.mode-red`、`body.mode-blue`)は、単一のルールセレクターに触れることなく、すべてを再テーマ化します。そのため、Classicモードはv5.9のエクスペリエンスとバイト単位で同一です。

---

## パフォーマンス

PenScopeはすべてのタブで常に動作しています。デフォルトでは、既知のノイズの多いホストサフィックス(`googlevideo.com` などのビデオCDN、`doubleclick.net` などの広告ネットワーク、`sentry.io` などのテレメトリエンドポイント、`gstatic.com` などの大規模静的CDN)に対して、コストのかかるエンリッチメントを約50件ショートサーキットします。YouTubeで毎分数百件発生する `googlevideo.com` のチャンクリクエストは、14個の AUTH_PATTERN 正規表現+パスパラメータ検出+Swaggerルックアップを実行しなくなり、エンドポイントとして記録されるだけです(そのためサイトマップには引き続き含まれます)。それ以外はスキップされます。

どのホストでも、`image`/`media`/`font`/`stylesheet`/`object`/`ping` リソースタイプに対しても同じ高速パスが適用されます。バグが `.css` URLパラメータに隠れていることはほとんどありません。

コンテンツスクリプトのDOM再スキャンは `requestIdleCallback` を介して実行され(スキャン間は最低15秒のハードインターバル)、タブが非表示の場合は完全にスキップされます。MutationObserverはテキストのみの変更(タイマーティック、文字データ更新)をフィルタリングするため、YouTubeの絶え間ないDOMの変動によって3秒ごとにフル再スキャンがトリガーされることはありません。

オーバーライド可能:プローブドロップダウンの **「ノイズの多いホストでフルキャプチャ」** チェックボックス。特にYouTube/Twitch/Sentryなどをターゲットとして監査している場合は、これをチェックすると高速パスがバイパスされます。

---

## 45のプローブ攻撃

オンデマンドで実行。3つの攻撃レベルと強制契約: **Careful** = GET/HEAD/OPTIONSのみ、リクエスト間隔は最小200ms; **Medium** = 読み取り形状操作のためのPOSTを追加(最大3並列); **Full** = DELETE/PUT/PATCHを含む全メソッドとレースコンディションバースト(最大10並列)。カスタムヘッダーはすべてのリクエストに貼り付けられます。ステルスモードでは、Fisher-Yatesでステップ順序をシャッフルし、ステップ間遅延に0〜80%のジッターを追加します。各ステップの期待されるメソッドは、プローブ開始時にアクティブなティアに対してドライランでチェックされ、ブロックされたステップは診断ログにリストされます。

| # | 攻撃 | 説明 |
|---|---|---|
| 1 | GraphQL introspection | スキーマ、タイプ、クエリ、ミューテーションをダンプ |
| 2 | Source map harvesting | `.map`をダウンロードし、シークレットとエンドポイントを抽出 |
| 3 | Swagger/OpenAPI fetch | `/swagger.json`、`/openapi.json`など |
| 4 | OPTIONS preflight | すべてのAPIパスでCORSプリフライト |
| 5 | Recon path probing | `/admin`、`/.env`、`/.git/HEAD`、`/actuator` |
| 6 | API prefix suffix brute | `/api/v1/<word>` |
| 7 | Smart suffix bruteforce | ステルスシャッフルされたプレフィックス×サフィックス |
| 8 | BAC (broken access control) | 認証なしの状態変更エンドポイント |
| 9 | IDOR auto-test | ID置換+同一ボディ比較 |
| 10 | CORS reflection test | 資格情報付きのオリジンリフレクション |
| 11 | Method tampering | GET/POST/PUT/PATCH/DELETEの入れ替え |
| 12 | Open redirect probe | `?redirect=evil.com`のバリアント |
| 13 | Race condition probe | 冪等性に敏感なエンドポイントへの同時リクエスト |
| 14 | HTTP parameter pollution | `?id=1&id=2` |
| 15 | Subdomain enumeration | CTログと観測トラフィックから |
| 16 | GraphQL field fuzzing | イントロスペクトされた各フィールドの認証をプローブ |
| 17 | JWT alg=none acceptance | サーバーが署名なしトークンを信頼するか? |
| 18 | Host header injection | `X-Forwarded-Host`のバリアント |
| 19 | Cache poisoning | キーなしヘッダーインジェクション |
| 20 | IDOR confirmed sameBody | ID間のボディ類似性 |
| 21 | Auth removal test | クッキーを削除し、200を探す |
| 22 | CSRF validation gap | トークンなしの状態変更エンドポイント |
| 23 | gRPC reflection | 露出したgRPCリフレクションサービス |
| 24 | Compression oracle (BREACH) | ヒューリスティック、実際には悪用しない |
| 25 | WebSocket hijacking | クロスオリジンWebSocket接続 |
| 26 | Cache poison probe | ヘッダーベースのキーなし入力 |
| 27 | Timing oracle | 同一エンドポイントのタイミング変動 |
| 28 | COOP/COEP bypass | クロスオリジン分離の強度 |
| 29 | Storage partition | クロスサイトストレージ分離 |
| 30 | Smart recursive discovery | 3波のプローブ、以前の応答から連鎖 |
| 31 | Parameter discovery | 38の隠しパラメータブルートフォース(`debug`、`admin`、`_method`、`bypass`...) |
| 32 | SSTI probing | `{{7*7}}`、`${7*7}`、`<%=7*7%>` |
| 33 | XXE probing | 外部エンティティを含むXML |
| 34 | CRLF injection | リダイレクトパラメータ内の`%0d%0a` |
| 35 | API version downgrade | 観測された各`/vN/`に対して`/v1/`、`/v2/` |
| 36 | Prototype pollution | JSONボディ内の`__proto__` / `constructor.prototype` |
| 37 | SSRF param probing | 26のSSRFパラメータ名とクラウドメタデータペイロード; 反射されたメタデータコンテンツをフラグ付け |
| 38 | NoSQL operator injection | JSON IDフィールドに`{"$ne":null}` / `{"$gt":""}` / `{"$exists":true}` |
| 39 | GraphQL alias amplification | 50エイリアスクエリ → DoS増幅面(Fullのみ) |
| 40 | GraphQL batch amplification | 25要素JSON配列バッチ → DoS増幅面(Fullのみ) |
| 41 | Cache deception | `/api/me/avatar.css`スタイル — 静的拡張子の背後に機密コンテンツがキャッシュされる |
| 42 | Subdomain takeover | 取得したサブドメインのHEADスタイルプローブ; GitHub Pages / S3 / Heroku / Netlify / Vercel / Bitbucket / Shopifyのテイクオーバーシグネチャに一致 |
| 43 | TabNabbing | `rel="noopener"`なしのクロスオリジン`<a target="_blank">` |
| 44 | postMessage origin correlation | オリジンチェックなしの`addEventListener("message")`リスナー |
| 45 | Service Worker scope abuse | 広いSWスコープ(特に`/`)をフラグ付け |

さらに**8つのスタック認識型攻撃パック**が含まれており、Redモードが一致するフレームワークを検出すると自動的に発動します:Laravel、Spring Boot、Rails、ASP.NET、Django、Next.js、GraphQL、WordPress。各パックには4〜9のスタック固有テストがあります。Spring Bootのパックだけでも`/actuator/heapdump`、`/actuator/env`、`/jolokia/list`、`/h2-console`を攻撃します。

---

## 13のチェインパターン

個々の発見はノイズです。複合的な発見がエクスプロイトです。PenScopeのチェインアナライザーは全体の状態をウォークし、複数のシグナルが組み合わさって悪用可能なものになるチェインを出力します。

1. **機密エンドポイントでの認証バイパス** — 認証欠落確認 + 管理/請求/ユーザーパス
2. **破壊的なBAC** — パスに`delete`/`remove`/`purge`を含む脆弱なエンドポイント
3. **CSRF脆弱なGraphQLミューテーション** — CSRF欠落確認 + それがミューテーション
4. **露出した認証トークン + ライブAPI** — メモリ内のJWT + 一致するエンドポイント
5. **機密データを含む確認済みIDOR** — ID間で同じスケルトンレスポンス
6. **資格情報付きのCORSリフレクション** — 完全なSOPバイパス
7. **認証フローでのオープンリダイレクト** — OAuthコールバックパス上のリダイレクトパラメータ
8. **隠された管理ルート** — コード内に3つ以上の管理パスがあり、トラフィックで観測されていない
9. **JWT alg=noneが受け入れられる** — サーバーが署名なしトークンを信頼する
10. **ソースマップがシークレットをリーク** — 本番出荷された`.map`ファイルにハードコードされたキーが含まれている
11. **WebRTC内部IPリーク** — STUN経由でプライベートIPが露出
12. **再帰的プローブ発見クラスター** — 複数のエンドポイントにわたる3つ以上の機密発見
13. **スタック固有のRCE表面** — スタックパックが露出したactuator/Ignitionなどを発見

各チェインには、重大度、要約、再現コマンド、次のステップ、信頼度スコアがあります。`重大度 × 信頼度`でソートされます。Redモードの上部とすべてのClaudeレポートの上部に表示されます。

---

## ヘルススコア(Blueモード)```
score = max(10, 100 − min(90, crit×22 + high×9))

厳密な設計。スコアを動かすのは重大な問題と高リスクのみ。中リスクと低リスクはカウントタイルとトップ5修正項目には表示される(修正する価値はある)が、スコアには影響しない。

下限を10に設定したのは、致命的なサイトでも「10/100」と表示され、「0/100」(ユーザーがスキャン失敗と区別できない)にならないようにするため。


ファイルマップ```

PenScope/ ├── manifest.json MV3 manifest, v6.3.0, "type":"module" service worker ├── popup.html Mode UI shell — three modes, glassmorphism dark theme ├── popup.js Renderers, mode router, weaponize panels, fix snippets, │ compliance, Hunt + Workbench launchers, exports ├── content.js Content script — DOM scanning, secrets, JSON islands, │ tech fingerprints, XSS sinks, postMessage scan │ ├── workbench.html / .js Workbench tab — Repeater / Intruder / Encoder / │ Diff / SiteMap / AuthCtx + AuthMatrix │ ├── hunt.html / .js Hunt Mode tab — autonomous orchestrator │ ├── regex-pack.json 81 secret patterns + 44 response-body patterns │ (loaded by SW at boot, merged into RESP_PATTERNS, │ fetched by content script via getRegexPack message) │ ├── src/ Service worker entry + module tree (Phase 7 migration) │ ├── background.js Entry — webRequest, CDP, probe orchestrator, │ │ chain correlator, message router (~7,000 lines) │ ├── probe/ │ │ └── stack-packs.js STACK_ATTACK_PACKS (8 stacks) — extracted module │ └── (other audit-named files are stubs — see MIGRATION.md) │ ├── fonts/ Local woff2: JetBrains Mono + Plus Jakarta Sans │ (4 + 5 weights, ~590 KB total). Replaces the │ Google Fonts beacon that earlier versions hit on │ every popup open. │ ├── icons/ 16, 48, 128 px PNG ├── CHANGELOG.md Full version history v5.1 → v6.3.0 ├── CHANGES.md v6.3 per-phase fix breakdown ├── MIGRATION.md Phase 7 module-migration map (real vs stub) ├── LICENSE MIT └── README.md You are here

root@kitploit:~
4つの古い参照ファイル(`red-attacks.js`、`blue-fixes.js`、`blue-csp.js`、`blue-compliance.js`)はv6.3で削除されました — その内容はv6.0からすでに`popup.js` / `background.js`にインライン化されており、独立したファイルはデッドコードでした。`STACK_ATTACK_PACKS`は現在、`src/probe/stack-packs.js`からの実際のESモジュールエクスポートです。

---

## ビルドステップなし```bash
git clone https://github.com/spider12223/PenScope
# That's it.

No npm install。No webpack。No babel。No TypeScript。No bundler。Pure vanilla JavaScript。popup.html の <script> タグは直接 popup.js を指しています。サービスワーカーは background.js を直接読み込みます。CSS は <style> にインライン化されています。

MD5 実装はインライン化された RFC 1321 参照の約 50 行です (crypto.subtle が MD5 を公開していないため)。LCS diff は約 30 行です。JWT 署名はネイティブの crypto.subtle.sign を使用します。チェイン相関器はプレーンな正規表現 + 配列反復です。このコードベースで読めるものはすべて、ブラウザでそのまま実行されるものです。

200 の推移的 npm 依存関係を同梱する偵察ツールには、サプライチェーン攻撃対象となる 200 のパッケージがあります。PenScope はゼロです。


権限


Contributing

バグ報告と PR 歓迎。いくつかのガードレール:

  • 新しい依存関係はゼロ。 package.json なし。小さなユーティリティが必要なら、20 行書いてください。
  • バニラ JS のみ。 React、Vue、TypeScript、ビルドステップはなし。
  • 状態は state[tabId] に保持。 新しいグローバルストアを導入しないでください。
  • コメントはなぜを文書化し、何をではない。 正規表現の意図、MV3 の癖、モードルーター契約に関するインラインコメント。
  • アクセシビリティ。 新しいインタラクティブ要素には :focus-visible アウトライン、ARIA ラベル、≥4.5:1 のコントラストが必要です。
  • new Function() は禁止。 MV3 サービスワーカーは動的コードを禁止しています。名前付き関数宣言 + args を chrome.scripting.executeScript に使用してください。
  • プッシュ前に監査。 クッキー/状態の変更に復元パスがあることを確認。カスタム暗号をベクトルに対してテスト。エッジケースを確認。

ライセンス

MIT。使って、フォークして、出荷してください。

PenScope が重大なものを見つけたら、issue を開いて 教えてください。私たちは戦いの話を収集しています。


ハンターによって、ハンターのために作られました。

バグを報告 · 変更ログ

ツールをダウンロード
exp
  • CDP追加。 Accessibility.getFullAXTreeは機密性の高いariaラベル(admin/sudo/delete/destroy buttons)を表面化します。Storage.getCookiesはchrome.cookies.getAllでは取得できないCHIPSパーティション化Cookieを公開します。
  • JSON島パーサー。 <script type="application/json">ブロック(Next __NEXT_DATA__、Nuxt __NUXT__、Remix __remixContext、Apollo __APOLLO_STATE__)は、正規表現スキャンだけでなく、エンドポイント+IDフィールドのために解析されます。
  • 新しいエンドポイントタブUX。 行ごとのcurlボタン、行ごとのunauthボタン(Cookieなしでリクエストを再送信し、サイドバイサイドの判定を表示)。/users/123、/users/124を/users/{id}に集約してカウントを表示するルートテーブルビュー。admin.*、api.*、internal.*サブドメインの自動ピボットレール。
  • HARエクスポート + ffufワードリスト。 既存のHARインポート + Burpワードリストのミラーエクスポート。そのままffuf -wにドロップ。
  • 📸 スナップ / ↔ 差分ボタンがポップアップヘッダーに。 今すぐスナップショットを保存し、後でいつでも比較。Blueモードと同じメカニズム。
  • IndexedDB差分。 クライアントサイドの状態をキャプチャし、アプリを変更し、再度キャプチャし、差分を取ります。純粋なHTTPキャプチャでは見逃される状態漏洩バグをキャッチします。
  • 重要なセキュリティ修正。 プローブwindow.__ps_ctxは、プローブ完了後にユーザーのAuthorizationヘッダーをページコンテキストに漏洩しなくなりました。チェーン再現コマンドはデフォルトでセッションCookieを編集します(Redモードにはライブ値のオプトイントグルがあります)。プローブIIFEは起動時にfetch、JSON、Promise、atob、btoaなどをスナップショットするため、分析が仕掛けられたページがグローバルをオーバーライドしてプローブを傍受できません。ローカルフォントのベンダリング — ポップアップオープン時に送信リクエストゼロ。
  • ESモジュール移行。 SWが"type":"module"として読み込まれるようになりました。src/ディレクトリツリーが配置され、STACK_ATTACK_PACKSはsrc/probe/stack-packs.jsに抽出されました。残りのモジュールは抽出パスを文書化するスタブです。
  • セット数ユースケース
    XSS40リフレクションテスト、DOM XSS、SVG/iframeのバリエーション
    SQLi30ブーリアンブラインド、エラーベース、タイムベース、UNION
    LFI / Path Traversal28エンコーディングのバリエーション、Windows + Linux、ログポイズニング
    SSTI18Jinja2, Twig, Freemarker, Velocity, Smarty
    SSRF22Localhostバリエーション、AWS/Azure/GCPメタデータ、gopher/dict
    Command Injection24Bash、PowerShell、IFSバイパス
    IDs 1-100100IDOR列挙用
    Auth bypass25パストリック、権限昇格、SQL認証バイパス
    Common usernames25admin, root, test, support, service...
    ModeBuilt forWhat's on screen
    🟣ClassicFamiliar workflow, full dataEvery tab, every detail. The original PenScope.
    🔴RedOffensive testingExploit chain rail at the top with weaponize buttons (curl, Nuclei YAML, Burp request, H1 report draft, Claude queue). Stack-aware attack packs auto-fire on detected frameworks (Laravel, Spring Boot, Rails, ASP.NET, Django, Next.js, GraphQL, WordPress). Chain-first, classic tabs collapsed below.
    🔵BlueDefenders / security reviewHealth score (0-100, strict — only criticals and highs count). Top 5 fixes prioritized by severity × ease, each with copy-paste snippets in Nginx / Apache / IIS / Express / Django / Laravel / Rails / ASP.NET. Observed-traffic CSP generator. 7-framework compliance audit. Snapshot & regression diff. Continuous monitor with Chrome notifications when new secrets leak.
    ExportIncludes credentials?Use it for
    JSON (full data)✅ YesTeam-share format. Two hunters working the same target need shared auth contexts to reproduce findings. Send via Signal / encrypted channel.
    📄 Full Report (.md)❌ RedactedBounty submission, customer engagement, anywhere it leaves your team. Auth header values (Authorization, Cookie, X-API-Key, X-Auth-Token, X-CSRF-Token, X-Amz-Security-Token, etc.) replaced with <redacted, N chars>. Includes embedded Hunt Mode drafted reports, stack-attack pack hits, continuous monitor alerts, and Marked-as-Fixed triage state.
    Burp URL listURL list onlyPaste into Burp's target scope or feed to ffuf/nuclei
    Param wordlistNames onlyFuzzing dictionaries — query params + form input names + hidden field names
    Param wordlist (ffuf)Names onlySame data emitted as param=FUZZ lines for ffuf -w
    Endpoints (txt)URL list onlyTab-separated method/status/path/host/tags/size — observed + discovered routes
    📤 HAR ExportHeaders + bodiesFull HAR-1.2 capture you can import into Chrome DevTools / a HAR viewer / hand to a teammate
    🔧 Swagger Spec (.yaml)URL list onlyReconstructed OpenAPI 3.0 spec from observed traffic
    🗺️ Source Maps (JSON)Source extracts onlyFull parsed source maps with file trees, secrets, routes, env vars, dependencies
    ⚔️ Nuclei Templates (.yaml)Probe URLs onlyDrop-in ~/.config/nuclei/custom/ for continuous scanning
    FeaturePenScope (free)Burp Suite Pro ($449/yr)
    Repeater✅✅
    Intruder (4 attack modes)✅✅
    Decoder (B64/URL/Hex/JWT)✅✅
    Comparer / Diff✅✅
    Target / Site Map✅✅
    Active scanner✅ (45 probes + 8 stack packs)✅
    Session/auth context handling✅ (saved profiles + matrix)✅ (rules-based)
    Authorization matrix tester✅ (built-in)❌ (paid extension)
    Chain correlation (compound findings)✅ (13 patterns)❌
    Subdomain takeover heuristic✅ (8 service signatures)❌ (paid extension)
    GraphQL DoS surface tests (alias + batch)✅❌
    Per-endpoint unauth replay button✅❌
    HAR import + export✅ (round-trip)✅ (one-way)
    IndexedDB diff (catch client-state leaks)✅❌
    CHIPS partitioned cookie capture✅❌
    JSON island parser (Next/Nuxt/Remix hydration data)✅❌
    Compliance mapping (PCI/NESA/SAMA/ISO/OWASP)✅ (7 frameworks)❌
    CSP generator from observed traffic✅❌
    Regression diff (snapshot + compare)✅❌
    AI integration (Claude bidirectional)✅❌
    Autonomous Hunt Mode (drafts H1 reports while you sleep)✅❌
    Setup time60 seconds~30 minutes (proxy + cert + browser config)
    TLS-level proxy interception❌ (browser limitation)✅
    Out-of-band testing (Collaborator)❌ (planned)✅
    Extension marketplace❌✅
    Cost$0$449 / user / year
    状態スコア
    重大0、高0100 (クリーン)
    高191
    高373
    重大178
    重大1 + 高351
    重大334
    重大5以上10 (下限)
    権限理由
    webRequestすべてのリクエスト/レスポンスを再フェッチせずにキャプチャ
    webNavigationSPA の pushState/replaceState ルート変更を検出 (v6.3+) し、SPA がクロスオリジンに移動したときに app.com のエンドポイントが新しいオリジンの状態に漏れないようにする
    activeTab現在のタブの URL を読み取り、コンテンツスクリプトメッセージを送信
    scriptingプローブランナー、スタックパック、Workbench リクエストをページコンテキストに注入
    tabs調査結果を正しいタブにマッピング、新しいタブで Workbench を開く
    cookiesdocument.cookie では見えない HttpOnly クッキーを読み取り
    debuggerDeep モードに必須 — CDP を有効にして完全なレスポンスボディ、ランタイムイントロスペクション、ソース抽出、監査問題、アクセシビリティツリー、パーティション化されたクッキーを取得
    notifications継続的モニターによる新しいシークレット漏洩アラート
    alarms継続的モニターのための 5 分間隔のティック
    storageSW 再起動をまたいで状態 (session) とスナップショット (local) を永続化
    <all_urls> ホスト権限キャプチャはターゲット非依存。ユーザーがどのタブを開くかを制御