Skip to main content
Moving files between your attacker machine and a target is a core skill. The right method depends on what is available: HTTP, SMB, DNS, or just the shell session itself.

Hosting Files (Attacker Side)

Before pulling anything to a target, you need to serve it. These are the fastest ways to spin up a file server on your attacker machine.

Linux: Downloading Files

Standard download methods available on most Linux targets. wget and curl are almost always present; the others are fallbacks when standard tools are stripped.

Linux: Uploading Files

Methods to push files from a compromised Linux host back to your attacker machine for exfiltration or analysis.

Windows: Downloading Files

PowerShell and built-in Windows binaries (LOLBins) cover most scenarios. Prefer PowerShell methods; fall back to certutil or bitsadmin when PowerShell is restricted.

Windows: Uploading Files

Methods to push files from a compromised Windows host back to the attacker for exfiltration.

Base64 Transfer (When HTTP is Blocked)

When no HTTP or SMB path exists, encode the file as base64 and paste it directly through the shell session. This works over any interactive shell, including RDP clipboard and reverse shells.

File Transfer over DNS (Exfil)

Use DNS only when every other channel is blocked. It is slow and generates unusual query volume, so use it as a last resort.

Evading Detection

Simple steps that make file transfers blend in or avoid leaving artifacts that AV and EDR flag.