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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
screenscrub — スクリーンショットから認証情報を見つけ、シークレットマネージャーに保存し、画像から不可逆的に墨消しします — ローカル、オフライン、OCRベース。 | Kitploit
ツール/GitHubGitHub/adversis/screenscrub
OSINT (オープンソースインテリジェンス)パスワードクラッキングデータ流出情報収集ペネトレーションテストシークレット検出
GitHubadversis/screenscrub

screenscrub

スクリーンショットから認証情報を見つけ、シークレットマネージャーに保存し、画像から不可逆的に墨消しします — ローカル、オフライン、OCRベース。

リポジトリを見る
6103ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

screenscrub

スクリーンショットから認証情報を見つけ出し、シークレットマネージャーに抽出し、画像から不可逆的に編集(redact)します。これにより、シークレットがノートやスクリーンショット、~/Desktop に放置されるのを防ぎます。

ローカル。オフライン。サイレント。デフォルトではネットワークもテレメトリもありません。

screenscrub は既存の2つのツールカテゴリをつなぎます。GUI 編集ツール(Xnapper、Shhshot、macshot)は手動でPIIをぼかしますが、シークレットと住所の区別がつかず、何を隠したかも記録しません。シークレットスキャナー(gitleaks、TruffleHog)は実際の認証情報を見つけますが、テキストのみであり、PNG内では検出できません。screenscrub は、gitleaks レベルの検出にレッドチームパックとエントロピー分析を加え、ヘッドレスでピクセルに適用します。各シークレットをマネージャーに取り込み、画像を不可逆的に編集し、結果を再OCRしてシークレットが削除されたことを証明します。

セーフティネットであり、保証ではありません。screenscrub は画像が「確実にクリーン」であるとは決して主張しません。OCRと検出はどちらも見落としがあるため、常に結果を目視確認してください。これに依存する前に読んでください。

screenscrub scan   ~/Screenshots                 # ドライラン:検出+報告、書き込みなし
screenscrub clean  ~/Screenshots --out ~/clean \ # 抽出、編集、検証、隔離
    --sink file://./secrets.age --yes
screenscrub verify ~/clean                       # フォルダがクリーンであることを証明(違えば終了コード≠0)

screenscrub clean --keep-originals ./tmp
Cleaning 7 image(s) in ./tmp (7 worker(s))…
[1/7] tmp/ssh.jpg — 6 region(s) → tmp/ssh.redacted.jpg ✓ verified
[2/7] tmp/key.jpg — 13 region(s) → tmp/key.redacted.jpg ✓ verified
[3/7] tmp/test2.jpg — 12 region(s) → tmp/test2.redacted.jpg ✓ verified
[4/7] tmp/test5.jpg — 13 region(s) → tmp/test5.redacted.jpg ✓ verified
[5/7] tmp/test3.jpg — error: verification failed: 4 secret region(s) still detectable in tmp/test3.redacted.jpg; original preserved
[6/7] tmp/test4.jpg — error: verification failed: 9 secret region(s) still detectable in tmp/test4.redacted.jpg; original preserved
[7/7] tmp/test6.jpg — error: verification failed: 7 secret region(s) still detectable in tmp/test6.redacted.jpg; original preserved

7/7 file(s) flagged, 382 region(s) total, 3 file(s) errored/unverified.
By kind:
   high-entropy             343
   keyword-secret           15
   db-connection-uri        10
   github-pat               6
   unix-crypt-hash          6
   aws-access-key           1
   stripe-key               1
Needs manual attention (3):
   tmp/test3.jpg — error: verification failed: 4 secret region(s) still detectable in tmp/test3.redacted.jpg; original preserved
   tmp/test4.jpg — error: verification failed: 9 secret region(s) still detectable in tmp/test4.redacted.jpg; original preserved
   tmp/test6.jpg — error: verification failed: 7 secret region(s) still detectable in tmp/test6.redacted.jpg; original preserved
Before — シークレットの値が見える状態 After clean — 不可逆的に編集
元のスクリーンショット:APIキーの例の値が多数表示されている screenscrub処理後の同じスクリーンショット:すべてのシークレット値が黒塗りされ、ラベルや正規表現パターンは読み取り可能

同じスクリーンショットのclean前後:すべてのシークレット値がピクセルにデコードされ、矩形で囲まれ、新しい画像に再エンコードされます(不可逆)。ラベルと構造は読み取り可能なままです。


インストール

tesseract OCR バイナリが PATH 上にある必要があります。

  • macOS: brew install tesseract
  • Windows: winget install UB-Mannheim.TesseractOCR(または UB Mannheim インストーラ)
  • Debian/Ubuntu: apt-get install tesseract-ocr

その後ビルド:

go build -o screenscrub ./cmd/screenscrub

クロスコンパイル可能: macOS (arm64/amd64) および Windows (amd64) — cgo ではなく tesseract を外部呼び出しします。macOS でのみテスト済み。

使い方

scan <dir|file> — ドライラン

検出して報告します。何も書き込みません。

screenscrub scan ~/Screenshots --ignore 'node_modules/**' --ignore '*.thumb.png'
screenscrub scan shot.png --json            # 機械可読レポート
screenscrub scan ~/Screenshots --preview ~/review   # clean が何を編集するか目視確認

--preview <dir> は、フラグが付いた各画像の非破壊コピーを、検出された領域をアウトライン(塗りつぶしなし)で書き込みます。これにより、clean が何を編集するかをコミット前に確認できます。⚠ これらのコピーにはシークレットがまだ含まれているため、ディレクトリは 0700 で作成され、共有してはいけません。

レポートは集計で終わります。種別ごとの内訳と、明示的な「手動確認が必要」リスト — エラー、検証失敗、またはスクリーンショットであるべき画像から OCR テキストが一切得られなかった ファイルが含まれます(サイレントな OCR の見落としはクリーンな画像と区別がつかないため、信頼するのではなく表面化されます)。

scan --fail-on-findings は何か検出された場合にゼロ以外で終了します — pre-commit/CI ゲートとして。

clean <dir|file> — 抽出、編集、隔離

SCREENSCRUB_PASSPHRASE=… screenscrub clean ~/Screenshots \
    --out ~/Screenshots/clean \
    --sink file://./secrets.age \
    --yes

検出結果がある各画像に対して、clean は:

  1. すべてのシークレットをシンクに保存し、
  2. <name>.redacted.png を --out に(または元の場所の隣に)書き込み、
  3. 元のファイルを <out>/quarantine/ に age 暗号化して移動します。

シークレットは --sink に指定したシンクに送られます: age ファイル(デフォルト)、1Password(op://)、KeePassXC(keepassxc://)、macOS キーチェーン(keychain://)、HashiCorp Vault(vault://)— またはハードウェアベースの age 受信者(YubiKey、Touch ID)。シークレットシンク を参照。

フラグ:

フラグ意味
--out <dir>編集済みコピーの出力先(デフォルト: 元の場所の隣)
--sink <uri>file://./secrets.age · op://Vault · keepassxc://./v.kdbx · keychain://service · vault://KV
--recipient <age1…>age 受信者に暗号化(繰り返し可能): X25519、YubiKey、または Touch ID
--recipients-file <f>age 受信者を1行に1つ記載したファイル
--passphraseファイルシンク / 隔離のパスフレーズ(環境変数または --config を推奨)
--watch常時実行;新しいスクリーンショットが現れるたびに処理(fsnotify)
--purge元のファイルを隔離ではなくシュレッド(以下の注意事項参照)
--keep-originals編集済みコピーのみ書き込み;元のファイルはそのまま(隔離なし、パスフレーズ不要、--yes 不要)— --purge と排他
--yes元のファイルの破壊的処理を確認(必須)
--config <file>JSON 設定ファイル;パスフレーズを argv に含めずに済む
--no-verify編集済み出力の再OCR検証をスキップ(非推奨)
-i, --interactiveフラグが付いた各画像を開き、編集/スキップを確認してから実行
--llmClaude を使用して良性の過剰検出を除去;候補文字列を Anthropic API に送信
--llm-api-key--llm 用の Anthropic API キー(または ANTHROPIC_API_KEY)
--jobs NN個の画像を並列処理(デフォルト: CPU コア数)
--manifest <file>元ファイル→編集済みファイル→領域の JSON マップを書き込む
--ocr-raw / --ocr-upscale N暗い端末の前処理を無効化 / OCR 前にアップスケール
--exclude-kind <kind>特定の種類の検出結果を抑制(繰り返し可能)。例: high-entropy — オフライン精度調整
--min-confidence <0..1>この信頼度未満の検出結果を削除 — オフライン精度調整
--jsonレポートを JSON で出力
--ignore <glob>無視するグロブ、繰り返し可能;** は任意の深さにマッチ
--langtesseract 言語(デフォルト eng)

--exclude-kind と --min-confidence は、ノイズの多いコーパス用のローカル(ネットワーク不要)精度調整つまみです。--llm のオフライン版で、リコールを犠牲にしてレポートを静かにします。意図的に使用してください。どちらも scan/verify で動作し、--config(exclude_kinds、min_confidence)でも設定可能です。

パスフレーズの解決順序: --passphrase、設定ファイル、SCREENSCRUB_PASSPHRASE。コマンドラインでの --passphrase は避けてください — argv は他のプロセスから見えます。

verify <dir|file> — フォルダがクリーンであることを証明

各画像を再OCRし、検出を再実行し、シークレット領域がまだ見つかる場合はゼロ以外で終了 — スクリーンショットをクライアントに送る前の納品/CIゲートとして使用します。(OCR がシークレットを読めないことを証明するものであり、人間が決して読めないことを保証するものではありません。)

screenscrub verify ~/deliverable/screenshots
echo $?   # 0 = クリーン、非ゼロ = シークレットがまだ検出可能

clean はこの同じチェックをすべての編集済みコピーに対して自動的に実行し、編集済みコピーが検証に失敗した場合は元のファイルを隔離またはシュレッドしません。--no-verify でスキップ可能(非推奨)。

open <store> — シークレットまたは隔離された元ファイルを復元

データを取り戻す: open は age シンク(保存されたシークレットレコード)または隔離された元ファイルを復号化し、--out に書き出します。stdout には決して出力しません。ストアの復号化 を参照。

--llm — LLM を使用して良性の過剰検出を削除

OCR テキスト(OCR ノイズあり)に対する gitleaks レベルのルールは必然的に過剰検出します。リコール重視の検出器は、オペレーターが保持したい良性の高エントロピー文字列(ホスト名、GUID、git SHA、NTLM ハッシュなど、それ自体が侵害の証拠であるもの)を表面化します。--llm は各候補を Claude(Opus 4.8)に渡し、本当のシークレットを保持し、良性の識別子を削除します。LLM が確認した領域は赤く塗りつぶされます。

ANTHROPIC_API_KEY=… screenscrub clean ~/Screenshots --out ~/clean --llm --yes

これは意図的にローカル・サイレントを破ります。候補文字列(検出されたシークレット)を Anthropic API に送信するため、オプトインのみ、警告を表示し、API キーが必要です。フェイルクローズ: API/ネットワークエラーが発生した場合は、すべての検出結果を保持(すべてを編集)し、本当のシークレットを削除するリスクを避けます。フラグが付いた画像ごとに1回の API 呼び出しを行います(--jobs に関係なく最大4並行)— 大規模なディレクトリではレート制限とコストに注意。

--watch

screenscrub clean ~/Screenshots --watch --sink file://./secrets.age --yes

既存のすべてを処理し、その後新しい/変更された画像を監視し、現れるたびに編集します。*.redacted.png 出力はループを避けるために無視されます。

検出

OCR トークンに対して、screenscrub は以下を組み合わせます:

ツールをダウンロード