# Transferencia de archivos con base64

### <mark style="color:red;">Tecnicas de transferencias de archivos con Base64</mark>

La codificación Base64 se utiliza para representar datos binarios como una cadena de caracteres ASCII. Dado que convierte datos binarios arbitrarios en texto, es adecuada para cualquier tipo de archivo, independientemente de su contenido o extensión. Aquí hay algunas aclaraciones:

1. <mark style="color:red;">**Archivos Binarios**</mark><mark style="color:red;">:</mark> La codificación Base64 es especialmente útil para archivos binarios que no son fácilmente representables como texto, como imágenes (`.jpg`, `.png`), archivos de audio (`.mp3`, `.wav`), archivos de video (`.mp4`, `.avi`), archivos ejecutables (`.exe`, `.dll`) y, por supuesto, archivos `.zip`.
2. <mark style="color:red;">**Archivos de Texto y Scripts**</mark><mark style="color:red;">:</mark> También puedes codificar archivos de texto o scripts (como `.txt`, `.js`, `.py`, etc.) en Base64. No obstante, en muchos casos, codificar archivos de texto en Base64 es innecesario ya que estos archivos ya contienen caracteres legibles.
3. <mark style="color:red;">**Corrupción de Archivos**</mark><mark style="color:red;">:</mark> La codificación y decodificación en Base64 no corromperá tus archivos siempre que el proceso se realice correctamente. Sin embargo, es importante que, si estás transfiriendo o almacenando la cadena Base64 resultante, asegures que no se altere ni modifique. Cualquier cambio en la cadena codificada resultará en un archivo decodificado corrupto.
4. <mark style="color:red;">**Tamaño del Archivo**</mark><mark style="color:red;">:</mark> Es importante recordar que la codificación Base64 aumentará el tamaño del archivo original aproximadamente en un 33%. Esto se debe a la forma en que Base64 representa datos binarios en texto.

Para transferir archivos podemos utilizar base64 para codificar y luego decodificar en el kali:

Utilizando PowerShell

```powershell
PS C:\> $bytes = [System.IO.File]::ReadAllBytes("20230903112419_spartan.zip")
PS C:\> $base64 = [System.Convert]::ToBase64String($bytes)
PS C:\> Set-Content -Value $base64 -Path psb64.txt
```

Utilizando CertUtil:

```bash
C:\Users\gerh\Documents> certutil -encode 20230903112419_spartan.zip certb64.txt
Input Length = 11524
Output Length = 15906
CertUtil: -encode command completed successfully.
```

Y luego podemos trasladar el contenido para decodificar:

```bash
C:\Users\gerh\Documents> net use \\192.168.45.191\kali-share /u:kali kali
The command completed successfully.

C:\Users\pete\Documents> copy certb64.txt \\192.168.45.191\kali-share\certb64.txt
        1 file(s) copied.

C:\Users\pete\Documents> copy psb64.txt \\192.168.45.191\kali-share\psb64.txt
        1 file(s) copied.
```

Para decodificar y obtener el archivo original:

```bash
C:\Users\gerh\Documents> certutil -decode .\psb64.txt comply.zip
Longitud de entrada = 15370
Longitud de salida = 11524
CertUtil: -decode comando completado correctamente.
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cpad/introduccion-a-la-evasion-de-defensas/codificando-tus-comandos-de-powershell-en-base64/transferencia-de-archivos-con-base64.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
