
uma ferramenta de reconhecimento que encontra dados sensíveis dentro das capturas de tela enviadas para o prnt.sc
A ferramenta Shotlooter foi desenvolvida para encontrar dados sensíveis dentro das capturas de tela enviadas para https://prnt.sc/ (através do software LightShot) aplicando métodos de OCR e processamento de imagem.
+-------------------+
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
| (*) |
+-----------------------+
outputO Shotlooter requer Python3, pip3 para funcionar e foi testado em macOS e sistemas Linux baseados em Debian.
Instalando dependências no macOS: brew install tesseract
Instalando dependências no Linux baseado em Debian: sudo apt install libsm6 libxext6 libxrender-dev tesseract-ocr -y
Clone o repositório:
git clone https://github.com/utkusen/shotlooter.git
Entre na pasta
cd shotlooter
Instale as bibliotecas necessárias
pip3 install -r requirements.txt
Uso básico: python3 shotlooter.py --code PRNT.SC_ID
Ele busca por palavras-chave correspondentes (localizadas em keywords.txt), strings de alta entropia e números de cartão de crédito. Você pode encontrar um ID enviando uma imagem para https://prnt.sc/. Por exemplo: python3 shotlooter.py --code sjgmm5
Ele verificará os IDs incrementando-os um por um:
sjgmm6
sjgmm7
sjgmm8
sjgmm9
sjgmma
sjgmmb
...
Busca por imagem: python3 shotlooter.py --code sjgmm5 --imagedir CAMINHO_DA_PASTA_DE_IMAGENS
Ele buscará pelos itens cobertos no uso básico + buscará por imagens pequenas fornecidas nas capturas de tela maiores. Se você planeja usar este recurso, coloque suas imagens pequenas dentro da pasta img.
Excluir busca: Você pode excluir qualquer tipo de busca fornecendo o argumento relacionado: --no-cc, --no-entropy, --no-keyword
Por exemplo: python3 shotlooter.py --code sjgmm5 --no-entropy. O Shotlooter pulará a verificação de strings de alta entropia.
O Shotlooter tem altas taxas de falsos positivos para correspondência de strings de alta entropia e cartão de crédito. Na verdade, não são falsos positivos, mas podem não ser os itens que você está procurando. Ele detecta strings de alta entropia para capturar chaves de API, chaves privadas, etc. No entanto, qualquer string aleatória não sensível também terá alta entropia e o Shotlooter as detectará. O mesmo vale para o cartão de crédito.
Se você não quiser lidar com falsos positivos, exclua as buscas por entropia e cartão de crédito.
Eu executei o Shotlooter por 2 semanas e identifiquei mais de 300 imagens que continham vários dados sensíveis. Você pode verificar os achados que encontrei com mais frequência abaixo:
Contém IDs de sessão úteis, tokens de acesso, etc.
Capturas de tela tiradas do console da nuvem ou de um cliente desktop
Todos sabemos que não é bom passar o ID de sessão em uma requisição GET por diferentes razões. Este é um exemplo disso.
Algumas pessoas adoram usar o Excel como gerenciador de senhas.
As carteiras Bitcoin permitem exportar sua chave privada para que você possa importá-la em outro lugar. Mas se você publicar a captura de tela da sua chave privada, toda a sua carteira pode ser comprometida.
