πŸͺŸ PowerShell Base64 Encode & Decode


πŸͺŸ PowerShell Base64 Encode & Decode

Transfer files without using the network β€” especially in red-team or penetration testing situations. If you've got terminal access, this method lets you convert a file to Base64, move the string manually (like copy-paste βœ‚οΈπŸ“‹), and decode it on the other side!


βœ… Step 1: Verify File Integrity with md5sum 🧬

Before and after transferring the file, generate the MD5 hash to verify it later once transfered

md5sum id_rsa

🟒 Output:

4e301756a07ded0a2dd6953abf015278  id_rsa

This is your "file fingerprint" πŸ” β€” it should match after the transfer.


πŸ”„ Step 2: Encode File to Base64 on Linux πŸ§Ύβž‘οΈπŸ”‘

cat id_rsa | base64 -w 0; echo

πŸ“‹ This gives you a Base64 string of your file β€” copy it all!

LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFsd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFJRUF6WjE0dzV1NU9laHR5SUJQSkg3Tm9Yai84YXNHRUcxcHpJbmtiN2hIMldRVGpMQWRYZE9kCno3YjJtd0tiSW56VmtTM1BUR3ZseGhDVkRRUmpBYzloQ3k1Q0duWnlLM3U2TjQ3RFhURFY0YUtkcXl0UTFUQXZZUHQwWm8KVWh2bEo5YUgxclgzVHUxM2FRWUNQTVdMc2JOV2tLWFJzSk11dTJONkJoRHVmQThhc0FBQUlRRGJXa3p3MjFwTThBQUFBSApjM05vTFhKellRQUFBSUVBeloxNHc1dTVPZWh0eUlCUEpIN05vWGovOGFzR0VHMXB6SW5rYjdoSDJXUVRqTEFkWGRPZHo3CmIybXdLYkluelZrUzNQVEd2bHhoQ1ZEUVJqQWM5aEN5NUNHblp5SzN1Nk40N0RYVERWNGFLZHF5dFExVEF2WVB0MFpvVWgKdmxKOWFIMXJYM1R1MTNhUVlDUE1XTHNiTldrS1hSc0pNdXUyTjZCaER1ZkE4YXNBQUFBREFRQUJBQUFBZ0NjQ28zRHBVSwpFdCtmWTZjY21JelZhL2NEL1hwTlRsRFZlaktkWVFib0ZPUFc5SjBxaUVoOEpyQWlxeXVlQTNNd1hTWFN3d3BHMkpvOTNPCllVSnNxQXB4NlBxbFF6K3hKNjZEdzl5RWF1RTA5OXpodEtpK0pvMkttVzJzVENkbm92Y3BiK3Q3S2lPcHlwYndFZ0dJWVkKZW9VT2hENVJyY2s5Q3J2TlFBem9BeEFBQUFRUUNGKzBtTXJraklXL09lc3lJRC9JQzJNRGNuNTI0S2NORUZ0NUk5b0ZJMApDcmdYNmNoSlNiVWJsVXFqVEx4NmIyblNmSlVWS3pUMXRCVk1tWEZ4Vit0K0FBQUFRUURzbGZwMnJzVTdtaVMyQnhXWjBNCjY2OEhxblp1SWc3WjVLUnFrK1hqWkdqbHVJMkxjalRKZEd4Z0VBanhuZEJqa0F0MExlOFphbUt5blV2aGU3ekkzL0FBQUEKUVFEZWZPSVFNZnQ0R1NtaERreWJtbG1IQXRkMUdYVitOQTRGNXQ0UExZYzZOYWRIc0JTWDJWN0liaFA1cS9yVm5tVHJRZApaUkVJTW84NzRMUkJrY0FqUlZBQUFBRkhCc1lXbHVkR1Y0ZEVCamVXSmxjbk53WVdObEFRSURCQVVHCi0tLS0tRU5EIE9QRU5TU0ggUFJJVkFURSBLRVktLS0tLQo=

⚠️ Make sure you use -w 0 so there's no line break!


πŸͺŸ Step 3: Decode Base64 in PowerShell πŸ–₯️

Paste your Base64 string into this PowerShell command to recreate the file:

πŸ’Ύ This writes the file back in its original form!


πŸ” Step 4: Confirm the File Integrity (again)

Now check the hash on Windows to confirm the file was transferred correctly:

βœ… If the hash matches 4E301756A07DED0A2DD6953ABF015278 β€” mission accomplished! πŸŽ‰


⚠️ Notes & Limitations 🚧

  • πŸͺŸ cmd.exe has a max string limit of 8191 characters

  • πŸ•ΈοΈ Some web shells can error if strings are too long

  • 🧩 For large files, consider other tools (like certutil, bitsadmin, etc.)


This method is perfect for small files like:

  • SSH keys

  • Scripts

  • Tiny DLLs

Let me know if you'd like a PowerShell script version or to automate hash checks! πŸ’»βœ¨

Last updated