
una herramienta de intercambio de archivos que te permite encontrar a la persona responsable en caso de una fuga
,_
,' '\,_ Utku Sen's
|_,-'_) wholeaked
/##c '\ (
' |' -{. ) "When you have eliminated the impossible,
/\__-' \[] whatever remains, however improbable,
/'-_'\ must be the truth" - Sherlock Holmes
' \
wholeaked es una herramienta para compartir archivos que permite encontrar a la persona responsable en caso de una filtración. Está escrito en Go.
wholeaked toma el archivo que se compartirá y una lista de destinatarios. Crea una firma única para cada destinatario y la agrega al archivo de forma secreta. Luego, puede enviar automáticamente los archivos a los destinatarios correspondientes mediante las integraciones de Sendgrid, AWS SES o SMTP. En lugar de enviarlos por correo electrónico, también puede compartirlos manualmente.
wholeaked funciona con todo tipo de archivos. Sin embargo, tiene características adicionales para tipos de archivos comunes como 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 |
+-----------+
Para encontrar quién filtró el documento, solo necesita proporcionar el archivo filtrado a wholeaked, y revelará a la persona responsable comparando las firmas en la base de datos.
+-----------+ +---------+
|Top Secret | |Signature|
|.pdf | +---------+|Database |
| | |utkusen/ || | Document leaked by
| |->|wholeaked|| |--------+
| | | || | b@gov
|Hidden | +---------+| |
|Signature2 | | |
+-----------+ +---------+
wholeaked puede agregar la firma única a diferentes secciones de un archivo. Los modos de detección disponibles se muestran a continuación:
File Hash: Hash SHA256 del archivo. Todos los tipos de archivo son compatibles.
Binary: La firma se agrega directamente al binario. Casi todos los tipos de archivo son compatibles.
Metadata: La firma se agrega a una sección de metadatos del archivo. Tipos de archivo compatibles: PDF, DOCX, XLSX, PPTX, MOV, JPG, PNG, GIF, EPS, AI, PSD
Watermark: Se inserta una firma invisible en el texto. Solo se admiten archivos PDF.
Puede descargar los binarios precompilados desde la página de lanzamientos y ejecutarlos. Por ejemplo:
unzip wholeaked_0.1.0_macOS_amd64.zip
./wholeaked --help
Instale Go en su sistema
Ejecute: go install github.com/utkusen/wholeaked@latest
wholeaked requiere exiftool para agregar firmas a la sección de metadatos de los archivos. Si no desea usar esta función, no necesita instalarlo.
apt install exiftoolbrew install exiftoolexiftool.exe en el mismo directorio que wholeaked.wholeaked requiere pdftotext para verificar marcas de agua dentro de archivos PDF. Si no desea usar esta función, no necesita instalarlo.
bin64.pdftotext (o pdftotext.exe) a la misma carpeta que wholeakedapt install libfontconfig.wholeaked requiere un nombre de proyecto -n, la ruta del archivo base al que se agregarán las firmas -f y una lista de destinatarios objetivo -t
Comando de ejemplo: ./wholeaked -n test_project -f secret.pdf -t targets.txt
El archivo targets.txt debe contener el nombre y la dirección de correo electrónico en el siguiente formato:
Utku Sen,[email protected]
Bill Gates,[email protected]
Después de completar la ejecución, se generarán los siguientes archivos únicos:
test_project/files/Utku_Sen/secret.pdf
test_project/files/Bill_Gates/secret.pdf
Por defecto, wholeaked agrega firmas a todos los lugares disponibles que se definen en la sección "Tipos de Archivo y Modos de Detección". Si no desea usar un método, puede definirlo con una bandera false. Por ejemplo:
./wholeaked -n test_project -f secret.pdf -t targets.txt -binary=false -metadata=false -watermark=false
Para enviar correos electrónicos, debe completar algunas secciones en el archivo CONFIG.
Si desea enviar correos electrónicos a través de Sendgrid, escriba su clave API en la sección SENDGRID_API_KEY.
Si desea enviar correos electrónicos a través de la integración con AWS SES, debe instalar awscli en su máquina y agregar la clave AWS requerida. wholeaked leerá la clave por sí mismo. Pero debe completar la sección AWS_REGION en el archivo de configuración.
Si desea enviar correos electrónicos a través de un servidor SMTP, complete las secciones SMTP_SERVER, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD.
Los otros campos necesarios para completar:
EMAIL_TEMPLATE_PATH Ruta del cuerpo del correo electrónico. Puede especificar el uso de formato HTML o texto.EMAIL_CONTENT_TYPE Puede ser html o textEMAIL_SUBJECT Asunto del correo electrónicoFROM_NAME Nombre del remitente del correo electrónicoFROM_EMAIL Correo electrónico del remitentePara especificar el método de envío, puede usar las banderas -sendgrid, -ses o -smtp. Por ejemplo:
./wholeaked -n test_project -f secret.pdf -t targets.txt -sendgrid
Puede usar la bandera -validate para revelar el propietario de un archivo filtrado. wholeaked comparará las firmas detectadas en el archivo con la base de datos ubicada en la carpeta del proyecto. Ejemplo:
./wholeaked -n test_project -f secret.pdf -validate
Importante: No debe eliminar el archivo project_folder/db.csv si desea usar la función de validación de archivos. Si ese archivo se elimina, wholeaked no podrá comparar las firmas.
¿Te encantó el proyecto? Puedes invitarme un café