
Shotlooter ツールは、https://prnt.sc/ にアップロードされたスクリーンショット内の機密データを、OCR および画像処理手法を適用して検出するために開発されました。(LightShot ソフトウェア経由)
+-------------------+
IMAGE FILE |#!/usr/bin/python |
+--------------------+ | +----->SENSITIVE
|prnt.sc/sjgmm5 | |Search for: |
+--------------------+ | |
| _ | CONVERTS STRING |sensitive keywords |
| .-.-.=\- | +-------+ +------------+ | |
| (_)=='(_) | | | | | |high entropy |
| .._\ +----->+ OCR +---->+ TEXTTEXTT +----->+ |
| (o)(o) | | | | | |credit card pattern+----->NOT SENSITIVE
| TEXTTEXTTEX | +-------+ +------------+ | |
| | +-------------------+
+--------------+------+
| +-----------------------+
v |#!/usr/bin/python |
SMALLER IMAGES | +------>SENSITIVE
+-------------+ +------------+ |Image processing: |
| _ | | .._\ | | |
| .-.-.=\- | | (o)(o) +-->+ Does it contain: |
| (_)=='(_) | | | | ~~O |
+-------------+ +------------+ | /\, |
| -|~(*) +------>NOT SENSITIVE
| (*) |
+-----------------------+
output フォルダーに保存します。Shotlooter は Python3、pip3 が必要で、macOS および Debian ベースの Linux システムでテストされています。
macOS の依存関係をインストール: brew install tesseract
Debian ベースの Linux の依存関係をインストール: sudo apt install libsm6 libxext6 libxrender-dev tesseract-ocr -y
リポジトリをクローンします:
git clone https://github.com/utkusen/shotlooter.git
フォルダ内に移動します
cd shotlooter
必要なライブラリをインストールします
pip3 install -r requirements.txt
基本的な使い方: python3 shotlooter.py --code PRNT.SC_ID
一致するキーワード(keywords.txt に配置)、高エントロピー文字列、およびクレジットカード番号を検索します。https://prnt.sc/ に画像をアップロードすると ID を見つけることができます。例:python3 shotlooter.py --code sjgmm5
次のように ID を 1 つずつインクリメントしてチェックします:
sjgmm6
sjgmm7
sjgmm8
sjgmm9
sjgmma
sjgmmb
...
画像検索: python3 shotlooter.py --code sjgmm5 --imagedir IMAGE_FOLDER_PATH
基本的な使い方でカバーされているアイテムに加えて、提供された小さな画像を大きなスクリーンショット内で検索します。この機能を使用する予定がある場合は、小さな画像を img フォルダーに配置してください。
検索の除外: 関連する引数を指定して任意の検索タイプを除外できます:--no-cc、--no-entropy、--no-keyword
例:python3 shotlooter.py --code sjgmm5 --no-entropy。Shotlooter は高エントロピー文字列のチェックをスキップします。
Shotlooter は高エントロピー文字列とクレジットカードのマッチングにおいて高い誤検出率を持っています。実際には、それらは誤検出ではなく、探しているアイテムではない可能性があります。API キーや秘密鍵などを捕捉するために高エントロピー文字列を検出します。しかし、機密でないランダムな文字列も高いエントロピーを持ち、Shotlooter はそれらを検出します。クレジットカードについても同様です。
誤検出に対処したくない場合は、エントロピーとクレジットカードの検索を除外してください。
私は 2 週間 Shotlooter を実行し、さまざまな機密データを含む 300 以上の画像を特定しました。以下に、特に多く見られた発見内容を示します:
有用なセッション ID、アクセストークンなどを含みます。
クラウドコンソールまたはデスクトップクライアントから撮影されたスクリーンショット
GET リクエストでセッション ID を渡すことが様々な理由で良くないことは誰もが知っています。これはその一例です。
Excel をパスワードマネージャーとして使用することを好む人もいます。
Bitcoin ウォレットでは秘密鍵をエクスポートして他の場所にインポートできます。しかし、秘密鍵のスクリーンショットを公開すると、ウォレット全体が危険にさらされる可能性があります。
