
Ein Tool zum Teilen von Dateien, mit dem Sie die verantwortliche Person im Falle eines Datenlecks finden können.
,_
,' '\,_ Utku Sen's
|_,-'_) wholeaked
/##c '\ (
' |' -{. ) "When you have eliminated the impossible,
/\__-' \[] whatever remains, however improbable,
/'-_'\ must be the truth" - Sherlock Holmes
' \
wholeaked ist ein Dateifreigabe-Tool, mit dem Sie im Falle eines Lecks die verantwortliche Person ermitteln können. Es ist in Go geschrieben.
wholeaked erhält die Datei, die geteilt werden soll, sowie eine Liste der Empfänger. Es erstellt eine eindeutige Signatur für jeden Empfänger und fügt sie heimlich in die Datei ein. Danach kann es die Dateien automatisch an die entsprechenden Empfänger senden, indem es Sendgrid, AWS SES oder SMTP-Integrationen nutzt. Sie können sie auch manuell teilen, anstatt sie per E-Mail zu versenden.
wholeaked funktioniert mit jedem Dateityp. Es verfügt jedoch über zusätzliche Funktionen für gängige Dateitypen wie PDF, DOCX, MOV usw.
+-----------+
|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 |
+-----------+
Um herauszufinden, wer das Dokument durchsickern ließ, müssen Sie einfach die durchgesickerte Datei an wholeaked übergeben, und es wird die verantwortliche Person durch den Vergleich der Signaturen in der Datenbank enthüllen.
+-----------+ +---------+
|Top Secret | |Signature|
|.pdf | +---------+|Database |
| | |utkusen/ || | Document leaked by
| |->|wholeaked|| |--------+
| | | || | b@gov
|Hidden | +---------+| |
|Signature2 | | |
+-----------+ +---------+
wholeaked kann die eindeutige Signatur in verschiedene Abschnitte einer Datei einfügen. Die verfügbaren Erkennungsmodi sind unten aufgeführt:
Datei-Hash: SHA256-Hash der Datei. Alle Dateitypen werden unterstützt.
Binär: Die Signatur wird direkt zur Binärdatei hinzugefügt. Fast alle Dateitypen werden unterstützt.
Metadaten: Die Signatur wird zu einem Metadatenabschnitt einer Datei hinzugefügt. Unterstützte Dateitypen: PDF, DOCX, XLSX, PPTX, MOV, JPG, PNG, GIF, EPS, AI, PSD
Wasserzeichen: Eine unsichtbare Signatur wird in den Text eingefügt. Nur PDF-Dateien werden unterstützt.
Sie können die vorgefertigten Binärdateien von der Releases-Seite herunterladen und ausführen. Zum Beispiel:
unzip wholeaked_0.1.0_macOS_amd64.zip
./wholeaked --help
Installieren Sie Go auf Ihrem System
Führen Sie aus: go install github.com/utkusen/wholeaked@latest
wholeaked benötigt exiftool zum Hinzufügen von Signaturen zu Metadatenabschnitten von Dateien. Wenn Sie diese Funktion nicht nutzen möchten, müssen Sie es nicht installieren.
apt install exiftool ausbrew install exiftool ausexiftool.exe in das gleiche Verzeichnis wie wholeaked.wholeaked benötigt pdftotext zum Überprüfen von Wasserzeichen in PDF-Dateien. Wenn Sie diese Funktion nicht nutzen möchten, müssen Sie es nicht installieren.
bin64-Ordner.pdftotext (oder pdftotext.exe) in denselben Ordner wie wholeaked.apt install libfontconfig aus.wholeaked erfordert einen Projektnamen -n, den Pfad der Basisdatenspeicherung, zu der die Signaturen hinzugefügt werden -f, und eine Liste der Ziel-Empfänger -t.
Beispielbefehl: ./wholeaked -n test_project -f secret.pdf -t targets.txt
Die Datei targets.txt sollte den Namen und die E-Mail-Adresse im folgenden Format enthalten:
Utku Sen,[email protected]
Bill Gates,[email protected]
Nach Abschluss der Ausführung werden die folgenden eindeutigen Dateien erstellt:
test_project/files/Utku_Sen/secret.pdf
test_project/files/Bill_Gates/secret.pdf
Standardmäßig fügt wholeaked Signaturen an allen verfügbaren Stellen hinzu, die im Abschnitt "Dateitypen und Erkennungsmodi" definiert sind. Wenn Sie eine Methode nicht verwenden möchten, können Sie sie mit einem false-Flag definieren. Zum Beispiel:
./wholeaked -n test_project -f secret.pdf -t targets.txt -binary=false -metadata=false -watermark=false
Um E-Mails zu senden, müssen Sie einige Abschnitte in der CONFIG-Datei ausfüllen.
Wenn Sie E-Mails über Sendgrid versenden möchten, geben Sie Ihren API-Schlüssel in den Abschnitt SENDGRID_API_KEY ein.
Wenn Sie E-Mails über die AWS-SES-Integration versenden möchten, müssen Sie awscli auf Ihrem Rechner installieren und den erforderlichen AWS-Schlüssel hinzufügen. wholeaked liest den Schlüssel selbstständig. Sie müssen jedoch den Abschnitt AWS_REGION in der Konfigurationsdatei ausfüllen.
Wenn Sie E-Mails über einen SMTP-Server versenden möchten, füllen Sie die Abschnitte SMTP_SERVER, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD aus.
Die weiteren erforderlichen Felder:
EMAIL_TEMPLATE_PATH Pfad zum Textkörper der E-Mail. Sie können das HTML- oder Textformat verwenden.EMAIL_CONTENT_TYPE Kann html oder text sein.EMAIL_SUBJECT Betreff der E-MailFROM_NAME Absendername der E-MailFROM_EMAIL Absender-E-Mail der E-MailUm die Sendemethode anzugeben, können Sie die Flags -sendgrid, -ses oder -smtp verwenden. Zum Beispiel:
./wholeaked -n test_project -f secret.pdf -t targets.txt -sendgrid
Sie können das Flag -validate verwenden, um den Eigentümer einer durchgesickerten Datei zu enthüllen. wholeaked vergleicht die in der Datei erkannten Signaturen mit der Datenbank im Projektordner. Beispiel:
./wholeaked -n test_project -f secret.pdf -validate
Wichtig: Sie sollten die Datei project_folder/db.csv nicht löschen, wenn Sie die Dateiüberprüfungsfunktion nutzen möchten. Wenn diese Datei gelöscht wird, kann wholeaked die Signaturen nicht vergleichen.
Gefällt Ihnen das Projekt? Sie können mir einen Kaffee kaufen