
un outil de reconnaissance qui trouve des données sensibles dans les captures d'écran téléchargées sur prnt.sc
L'outil Shotlooter est développé pour trouver des données sensibles dans les captures d'écran téléchargées sur https://prnt.sc/ (via le logiciel LightShot) en appliquant des méthodes d'OCR et de traitement d'image.
+-------------------+
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
| (*) |
+-----------------------+
outputShotlooter nécessite Python3 et pip3 pour fonctionner et a été testé sur macOS et les systèmes Linux basés sur Debian.
Installation des dépendances pour macOS : brew install tesseract
Installation des dépendances pour Linux basé sur Debian : sudo apt install libsm6 libxext6 libxrender-dev tesseract-ocr -y
Clonez le dépôt :
git clone https://github.com/utkusen/shotlooter.git
Allez dans le dossier
cd shotlooter
Installez les bibliothèques requises
pip3 install -r requirements.txt
Utilisation de base : python3 shotlooter.py --code PRNT.SC_ID
Il recherche les mots-clés correspondants (situés dans keywords.txt), les chaînes à haute entropie et les numéros de carte de crédit. Vous pouvez trouver un identifiant en téléchargeant une image sur https://prnt.sc/. Par exemple python3 shotlooter.py --code sjgmm5
Il vérifiera les identifiants en les incrémentant un par un :
sjgmm6
sjgmm7
sjgmm8
sjgmm9
sjgmma
sjgmmb
...
Recherche d'images : python3 shotlooter.py --code sjgmm5 --imagedir IMAGE_FOLDER_PATH
Il recherchera les éléments couverts dans l'utilisation de base et recherchera les petites images fournies dans les captures d'écran plus grandes. Si vous prévoyez d'utiliser cette fonctionnalité, placez vos petites images dans le dossier img.
Exclure une recherche : Vous pouvez exclure tout type de recherche en fournissant l'argument correspondant : --no-cc, --no-entropy, --no-keyword
Par exemple : python3 shotlooter.py --code sjgmm5 --no-entropy. Shotlooter ignorera la vérification des chaînes à haute entropie.
Shotlooter a un taux élevé de faux positifs pour la correspondance des chaînes à haute entropie et des cartes de crédit. En réalité, ce ne sont pas des faux positifs, mais ils peuvent ne pas être les éléments que vous recherchez. Il détecte les chaînes à haute entropie pour attraper les clés API, les clés privées, etc. Cependant, toute chaîne aléatoire non sensible aura également une entropie élevée et Shotlooter les détectera. Il en va de même pour la carte de crédit.
Si vous ne voulez pas gérer les faux positifs, excluez les recherches d'entropie et de carte de crédit.
J'ai exécuté Shotlooter pendant 2 semaines et identifié plus de 300 images contenant diverses données sensibles. Vous pouvez consulter ci-dessous les résultats que j'ai rencontrés le plus souvent :
Contient des identifiants de session utiles, des jetons d'accès, etc.
Les captures d'écran sont prises depuis la console du cloud ou depuis un client de bureau
Nous savons tous qu'il n'est pas bon de passer l'identifiant de session avec une requête GET pour différentes raisons. C'en est une.
Certaines personnes adorent utiliser Excel comme gestionnaire de mots de passe.
Les portefeuilles Bitcoin permettent d'exporter votre clé privée afin de l'importer ailleurs. Mais si vous publiez la capture d'écran de votre clé privée, l'intégralité de votre portefeuille peut être compromise.
