
un outil de partage de fichiers qui vous permet de trouver la personne responsable en cas de fuite
,_
,' '\,_ Utku Sen's
|_,-'_) wholeaked
/##c '\ (
' |' -{. ) "When you have eliminated the impossible,
/\__-' \[] whatever remains, however improbable,
/'-_'\ must be the truth" - Sherlock Holmes
' \
wholeaked est un outil de partage de fichiers qui vous permet de trouver la personne responsable en cas de fuite. Il est écrit en Go.
wholeaked récupère le fichier qui sera partagé et une liste de destinataires. Il crée une signature unique pour chaque destinataire et l'ajoute secrètement au fichier. Ensuite, il peut automatiquement envoyer les fichiers aux destinataires correspondants en utilisant les intégrations Sendgrid, AWS SES ou SMTP. Au lieu de les envoyer par e-mail, vous pouvez également les partager manuellement.
wholeaked fonctionne avec tous les types de fichiers. Cependant, il dispose de fonctionnalités supplémentaires pour les types de fichiers courants tels que PDF, DOCX, MOV, etc.
+-----------+
|Top Secret |
|.pdf |
| |
-| |
/ | |
/ |Hidden |
a@gov / |signature1 |
/ +-----------+
/ +-----------+
+-----------++-----------+ / |Top Secret |
|Top Secret ||Recipient | / |.pdf |
|.pdf ||List | +---------+ / | |
| || | |utkusen/ | / b@gov | |
| ||a@gov |----->|wholeaked| /----------+ |
| ||b@gov | | | \ |Hidden |
| ||c@gov | +---------+ \ |signature2 |
| || | \ +-----------+
+-----------++-----------+ \ +-----------+
\ |Top Secret |
\ |.pdf |
c@gov \ | |
\ | |
\ | |
\ |Hidden |
-|signature3 |
+-----------+
Pour trouver qui a divulgué le document, il vous suffit de fournir le fichier divulgué à wholeaked, et il révélera la personne responsable en comparant les signatures dans la base de données.
+-----------+ +---------+
|Top Secret | |Signature|
|.pdf | +---------+|Database |
| | |utkusen/ || | Document leaked by
| |->|wholeaked|| |--------+
| | | || | b@gov
|Hidden | +---------+| |
|Signature2 | | |
+-----------+ +---------+
wholeaked peut ajouter la signature unique à différentes sections d'un fichier. Les modes de détection disponibles sont indiqués ci-dessous :
File Hash: Hash SHA256 du fichier. Tous les types de fichiers sont pris en charge.
Binary: La signature est directement ajoutée au binaire. Presque tous les types de fichiers sont pris en charge.
Metadata: La signature est ajoutée à une section de métadonnées d'un fichier. Types de fichiers pris en charge : PDF, DOCX, XLSX, PPTX, MOV, JPG, PNG, GIF, EPS, AI, PSD
Watermark: Une signature invisible est insérée dans le texte. Seuls les fichiers PDF sont pris en charge.
Vous pouvez télécharger les binaires précompilés depuis la page des versions et les exécuter. Par exemple :
unzip wholeaked_0.1.0_macOS_amd64.zip
./wholeaked --help
Installez Go sur votre système
Exécutez : go install github.com/utkusen/wholeaked@latest
wholeaked nécessite exiftool pour ajouter des signatures à la section des métadonnées des fichiers. Si vous ne souhaitez pas utiliser cette fonctionnalité, vous n'avez pas besoin de l'installer.
apt install exiftoolbrew install exiftoolexiftool.exe dans le même répertoire que wholeaked.wholeaked nécessite pdftotext pour vérifier les filigranes dans les fichiers PDF. Si vous ne souhaitez pas utiliser cette fonctionnalité, vous n'avez pas besoin de l'installer.
bin64.pdftotext (ou pdftotext.exe) dans le même dossier que wholeakedapt install libfontconfig.wholeaked nécessite un nom de projet -n, le chemin du fichier de base auquel les signatures seront ajoutées -f et une liste de destinataires cibles -t
Exemple de commande : ./wholeaked -n test_project -f secret.pdf -t targets.txt
Le fichier targets.txt doit contenir le nom et l'adresse e-mail au format suivant :
Utku Sen,[email protected]
Bill Gates,[email protected]
Une fois l'exécution terminée, les fichiers uniques suivants seront générés :
test_project/files/Utku_Sen/secret.pdf
test_project/files/Bill_Gates/secret.pdf
Par défaut, wholeaked ajoute des signatures à tous les emplacements disponibles définis dans la section "Types de fichiers et modes de détection". Si vous ne souhaitez pas utiliser une méthode, vous pouvez la définir avec un indicateur false. Par exemple :
./wholeaked -n test_project -f secret.pdf -t targets.txt -binary=false -metadata=false -watermark=false
Pour envoyer des e-mails, vous devez remplir certaines sections du fichier CONFIG.
Si vous souhaitez envoyer des e-mails via Sendgrid, saisissez votre clé API dans la section SENDGRID_API_KEY.
Si vous souhaitez envoyer des e-mails via l'intégration AWS SES, vous devez installer awscli sur votre machine et y ajouter la clé AWS requise. wholeaked lira la clé par lui-même. Mais vous devez remplir la section AWS_REGION dans le fichier de configuration.
Si vous souhaitez envoyer des e-mails via un serveur SMTP, remplissez les sections SMTP_SERVER, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD.
Les autres champs nécessaires à remplir :
EMAIL_TEMPLATE_PATH Chemin du corps de l'e-mail. Vous pouvez spécifier le format HTML ou texte.EMAIL_CONTENT_TYPE Peut être html ou textEMAIL_SUBJECT Objet de l'e-mailFROM_NAME Nom d'expéditeur de l'e-mailFROM_EMAIL Adresse e-mail d'expéditeur de l'e-mailPour spécifier la méthode d'envoi, vous pouvez utiliser les indicateurs -sendgrid, -ses ou -smtp. Par exemple :
./wholeaked -n test_project -f secret.pdf -t targets.txt -sendgrid
Vous pouvez utiliser l'indicateur -validate pour révéler le propriétaire d'un fichier divulgué. wholeaked comparera les signatures détectées dans le fichier et la base de données située dans le dossier du projet. Exemple :
./wholeaked -n test_project -f secret.pdf -validate
Important : Vous ne devez pas supprimer le fichier project_folder/db.csv si vous souhaitez utiliser la fonction de validation des fichiers. Si ce fichier est supprimé, wholeaked ne pourra pas comparer les signatures.
Vous aimez le projet ? Vous pouvez m'offrir un café