📡 TFTP: Trivial File Transfer Protocol


📝 Introducción

¿Qué es TFTP?

TFTP (Trivial File Transfer Protocol) es un protocolo de transferencia de archivos extremadamente simple, basado en UDP, que permite enviar y recibir archivos entre dispositivos en una red. No requiere autenticación ni cifrado, lo que lo hace rápido pero inseguro.

¿Para qué sirve?

  • Transferir archivos de configuración o firmware a dispositivos de red (routers, switches, IoT)
  • Arranque de sistemas sin disco (PXE Boot)
  • Copia de archivos en entornos controlados o de laboratorio

Contextos de uso en ciberseguridad

  • Post-explotación: Exfiltración o carga de archivos en sistemas comprometidos
  • Red Team: Transferencia rápida de payloads en redes internas
  • Auditoría de red: Detección de servidores TFTP inseguros
  • Análisis forense: Recuperación de archivos de dispositivos embebidos

🛠️ Guía Práctica Paso a Paso

Sintaxis básica

tftp [opciones] <ip_servidor>

Comandos interactivos

Una vez dentro del prompt de TFTP:

tftp> get <archivo_remoto> [archivo_local]   # Descargar archivo
tftp> put <archivo_local> [archivo_remoto]   # Subir archivo
tftp> quit                                   # Salir

Comandos directos (no interactivo)

# Descargar archivo
tftp <ip_servidor> -c get <archivo_remoto> [archivo_local]
 
# Subir archivo
tftp <ip_servidor> -c put <archivo_local> [archivo_remoto]

Alternativa moderna:

En sistemas modernos, también podés usar atftp o utftp con sintaxis similar.


⚙️ Parámetros y Opciones Comunes

OpciónDescripciónEjemplo
-cEjecuta un comando (get/put)-c get archivo
-mEspecifica el modo (octet, netascii)-m octet
-vModo verbose (detallado)-v
-lEspecifica archivo local-l archivo_local
-rEspecifica archivo remoto-r archivo_remoto

Modos de transferencia

  • octet: Binario (recomendado para archivos no texto)
  • netascii: ASCII (para archivos de texto plano)

🎯 Casos de Uso Típicos

  • Descargar archivos de configuración de routers/switches
  • Subir payloads o scripts a sistemas comprometidos
  • Exfiltrar archivos en post-explotación
  • Recuperar archivos de sistemas embebidos o IoT

💻 Ejemplos Prácticos

Ejemplo 1: Descargar un archivo de configuración

# Descargar config.txt desde el servidor TFTP
tftp 192.168.1.10 -c get config.txt

Ejemplo 2: Subir un archivo malicioso (post-explotación)

# Subir shell.sh al servidor TFTP
tftp 192.168.1.10 -c put shell.sh

Ejemplo 3: Usar TFTP en modo interactivo

tftp 192.168.1.10
tftp> get backup.cfg
tftp> put exploit.bin
tftp> quit

Ejemplo 4: Automatizar transferencia de varios archivos

for file in passwd shadow hosts; do
    tftp 192.168.1.10 -c get $file
done

⚠️ Riesgos y Consideraciones de Seguridad

TFTP es INSEGURO por diseño

  • Sin autenticación: Cualquiera puede leer o escribir archivos
  • Sin cifrado: Todo el tráfico es en texto claro
  • Sin control de acceso: Puede ser explotado para exfiltración o carga de malware
  • Uso limitado recomendado: Solo en redes internas y controladas

Ejemplo de ataque

flowchart TD
    A[Atacante] -- put shell.sh --> B[Servidor TFTP vulnerable]
    B -- shell.sh ejecutado --> C[Compromiso del sistema]

💡 Tips y Buenas Prácticas

Consejos para pentesters y administradores

  • Buscar servidores TFTP expuestos en auditorías de red (nmap -sU -p 69 --script tftp-enum)
  • Limitar el acceso a TFTP solo a hosts autorizados
  • Deshabilitar TFTP si no es estrictamente necesario
  • Monitorear logs de acceso a TFTP para detectar actividad sospechosa
  • Usar TFTP solo para archivos no sensibles y en entornos controlados

Errores comunes y soluciones

ErrorCausaSolución
Permission deniedEl servidor no permite escrituraRevisar permisos en el servidor
TimeoutFirewall bloquea UDP 69Abrir puerto o probar conectividad
File not foundArchivo no existe en el servidorVerificar nombre y ruta
Access violationRestricción de acceso en el servidorRevisar configuración del servidor

📊 Comparativa TFTP vs FTP vs SFTP

ProtocoloPuertoTransporteAutenticaciónCifradoUso típico
TFTP69/UDPUDPBoot, config, IoT
FTP21/TCPTCPTransferencia general
SFTP22/TCPTCP (SSH)Transferencia segura

🔍 Detección y Enumeración

Escaneo con Nmap

# Detectar servidores TFTP en la red
nmap -sU -p 69 --script tftp-enum 192.168.1.0/24

Enumeración manual

# Listar archivos conocidos (si el servidor lo permite)
tftp 192.168.1.10 -c get /etc/passwd
tftp 192.168.1.10 -c get /etc/shadow

🧠 Resumen

  • TFTP es un protocolo de transferencia de archivos simple y rápido, pero muy inseguro.
  • Es útil en redes internas, arranque PXE y dispositivos embebidos, pero no debe usarse en redes públicas.
  • Es un vector común de exfiltración y persistencia en post-explotación.

Recuerda

Si encontrás TFTP abierto en una auditoría, ¡es un objetivo prioritario para análisis y explotación!

protocolos post-explotacion enumeracion