← Blog

Echo — Decodificación, Aritmética y Expansión de Shell

Uso de echo para decodificar Base64/hex, aplicar ROT13 vía tr, aritmética $(( )) y expansión de globs/patrones de la shell para operaciones de campo.

1. Operational Scope & Technical Objective

echo es el caballo de batalla de la shell para decodificar valores incautados (Base64, hex), evaluar aritmética, y expandir globs sin abrir un editor. En un engagement, donde los datos llegan como strings opacos en cookies, parámetros o archivos, echo | <decoder> convierte el artefacto en input utilizable en segundos, y la expansión de patrones permite listar ficheros objetivo sin ls verboso.

2. High-Impact Syntax & Command Cheatsheet

# Decodificación Base64 (valores de cookies, tokens, parámetros)
echo -n "QWxhZGRpbjpvcGVuIHNlc2FtZQ==" | base64 --decode
# -n omite el salto de línea final (clave para hashes/JSON)

# Decodificación hexadecimal (bytes planos, a veces con espacios)
echo -n "46 4c 34 36 5f 33 3a 32 396472796 63637756 8656874" | xxd -r -ps
# xxd -r -ps revierte hex a binario; soporta espacios y saltos

# ROT13 sobre el contenido de un fichero
cat <file_name> | tr '[A-Za-z]' '[N-ZA-Mn-za-m]'
# rotación de 13 posiciones (simétrica: aplicar dos veces restaura el texto)
# Aritmética con $(( )) sin calculadora
echo $((5+7))                       # 12
echo $(($((5+2)) *3 ))              # 21
echo $(( (10 % 3) ** 2 ))           # exponenciación y módulo soportados
# Expansión de patrones (globbing) para localizar ficheros
echo imran
echo "imran"                        # sin expansión si hay espacios
echo *                              # todo el contenido del cwd
echo D*                             # nombres que empiezan con D
echo *D                             # nombres que terminan con D
echo [:upper:](/blog/upper)*                   # todo lo que empieza con mayúscula
echo *[:lower:](/blog/lower)                   # todo lo que termina con minúscula
echo /usr/*                         # rutas disponibles bajo /usr
echo .*                             # todos los ficheros ocultos (incluye . y ..)
ls -d .[!.]*                        # solo ocultos "reales", presentación limpia
echo ~                              # directorio home del usuario actual
echo ~root                          # home del usuario root (expansión tilde)

3. Real-World Offensive/Defensive Scenarios

Extracción de credenciales desde artefactos codificados. Cookies JWT (segmento payload), Basic Auth, o parámetros ?data= en Base64: echo -n "<valor>" | base64 --decode revela el contenido plano en un solo paso; si aparece hexadecimal, xxd -r -ps lo restaura.

Manipulación de hashes sin ficheros auxiliares. ROT13 sobre texto incautado (a menudo usado en CTFs y malware ligero) se resuelve con tr encadenado a echo, sin tocar disco.

Defensa y análisis de logs. En Blue Team, echo $((...)) y la expansión de globs documentan y validan hipótesis de filtrado (¿qué ficheros coinciden con *.log? ¿qué entradas empiezan por mayúscula?) antes de lanzar herramientas pesadas sobre el árbol de ficheros.