22 - Pentesting SSH/SFTP
Bug bounty savet: registrujte se za Intigriti, premium platformu za bug bounty kreiranu od hakera, za hakere! Pridružite nam se na https://go.intigriti.com/hacktricks danas, i počnite da zarađujete nagrade do $100,000!
Osnovne informacije
SSH (Secure Shell ili Secure Socket Shell) je mrežni protokol koji omogućava sigurnu vezu sa računarom preko nesigurne mreže. Neophodan je za održavanje poverljivosti i integriteta podataka prilikom pristupa udaljenim sistemima.
Podrazumevani port: 22
SSH serveri:
openSSH – OpenBSD SSH, isporučen u BSD, Linux distribucijama i Windows-u od Windows 10
Dropbear – Implementacija SSH-a za okruženja sa malom memorijom i procesorskim resursima, isporučena u OpenWrt-u
PuTTY – Implementacija SSH-a za Windows, klijent se često koristi, ali je upotreba servera ređa
CopSSH – Implementacija OpenSSH-a za Windows
SSH biblioteke (implementacija na serverskoj strani):
wolfSSH – SSHv2 serverska biblioteka napisana u ANSI C i namenjena za ugrađene sisteme, RTOS, i okruženja sa ograničenim resursima
Apache MINA SSHD – Apache SSHD java biblioteka zasnovana na Apache MINA-i
paramiko – Python SSHv2 protokolna biblioteka
Enumeracija
Preuzimanje banera
Automatizovana ssh-audit
ssh-audit je alat za proveru konfiguracije ssh servera i klijenata.
https://github.com/jtesta/ssh-audit je ažurirana izdanica sa https://github.com/arthepsy/ssh-audit/
Funkcionalnosti:
Podrška za SSH1 i SSH2 protokole servera;
analiza konfiguracije SSH klijenta;
prikupljanje banera, prepoznavanje uređaja ili softvera i operativnog sistema, otkrivanje kompresije;
prikupljanje algoritama razmene ključeva, host-ključeva, enkripcije i algoritama za kod autentikacije poruka;
informacije o algoritmima (dostupno od kada, uklonjeno/onemogućeno, nesigurno/slabo/zastarelo, itd);
preporuke za algoritme (dodavanje ili uklanjanje na osnovu prepoznate verzije softvera);
informacije o bezbednosti (povezani problemi, dodeljena lista CVE, itd);
analiza kompatibilnosti verzije SSH na osnovu informacija o algoritmima;
istorijske informacije iz OpenSSH, Dropbear SSH i libssh;
radi na Linuxu i Windowsu;
nema zavisnosti.
Javni SSH ključ servera
Slabi kriptografski algoritmi
Ovo se podrazumevano otkriva pomoću nmap-a. Ali možete koristiti i sslcan ili sslyze.
Shodan
ssh
Brute force usernames, passwords and private keys
Enumeracija korisničkih imena
U nekim verzijama OpenSSH-a možete izvršiti napad vremenskim usklađivanjem kako biste enumerisali korisnike. Možete koristiti metasploit modul kako biste iskoristili ovo:
Neke uobičajene ssh akreditacije ovde i ovde i ispod.
Brute Force Napad na Privatni Ključ
Ako znate neke ssh privatne ključeve koji bi mogli biti korišćeni... pokušajmo. Možete koristiti nmap skriptu:
Ili MSF pomoćni modul:
Ili koristite ssh-keybrute.py
(nativan python3, lagan i podržava zastarele algoritme): snowdroppe/ssh-keybrute.
Poznati loši ključevi mogu se pronaći ovde:
Slabi SSH ključevi / Debian predvidljiv PRNG
Neke sisteme karakteriše poznata greška u slučajnom semenu koje se koristi za generisanje kriptografskog materijala. To može rezultirati dramatično smanjenim prostorom ključeva koji mogu biti probijeni. Pre-generisani setovi ključeva generisanih na Debian sistemima pogođenim slabim PRNG-om dostupni su ovde: g0tmi1k/debian-ssh.
Treba da pogledate ovde kako biste tražili validne ključeve za žrtveni računar.
Kerberos
crackmapexec koristeći ssh
protokol može koristiti opciju --kerberos
za autentifikaciju putem kerberosa.
Za više informacija pokrenite crackmapexec ssh --help
.
Podrazumevane akreditacije
Proizvođač | Korisnička imena | Lozinke |
APC | apc, uređaj | apc |
Brocade | admin | admin123, password, brocade, fibranne |
Cisco | admin, cisco, enable, hsa, pix, pnadmin, ripeop, root, shelladmin | admin, Admin123, podrazumevano, password, secur4u, cisco, Cisco, _Cisco, cisco123, C1sco!23, Cisco123, Cisco1234, TANDBERG, change_it, 12345, ipics, pnadmin, diamond, hsadb, c, cc, attack, blender, changeme |
Citrix | root, nsroot, nsmaint, vdiadmin, kvm, cli, admin | C1trix321, nsroot, nsmaint, kaviza, kaviza123, freebsd, public, rootadmin, wanscaler |
D-Link | admin, korisnik | privatno, admin, korisnik |
Dell | root, user1, admin, vkernel, cli | calvin, 123456, password, vkernel, Stor@ge!, admin |
EMC | admin, root, sysadmin | EMCPMAdm7n, Password#1, Password123#, sysadmin, changeme, emc |
HP/3Com | admin, root, vcx, app, spvar, manage, hpsupport, opc_op | admin, password, hpinvent, iMC123, pvadmin, passw0rd, besgroup, vcx, nice, access, config, 3V@rpar, 3V#rpar, procurve, badg3r5, OpC_op, !manage, !admin |
Huawei | admin, root | 123456, admin, root, Admin123, Admin@storage, Huawei12#$, HwDec@01, hwosta2.0, HuaWei123, fsp200@HW, huawei123 |
IBM | USERID, admin, manager, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, system, device, ufmcli, customer | PASSW0RD, passw0rd, admin, password, Passw8rd, iadmin, apc, 123456, cust0mer |
Juniper | netscreen | netscreen |
NetApp | admin | netapp123 |
Oracle | root, oracle, oravis, applvis, ilom-admin, ilom-operator, nm2user | changeme, ilom-admin, ilom-operator, welcome1, oracle |
VMware | vi-admin, root, hqadmin, vmware, admin | vmware, vmw@re, hqadmin, podrazumevano |
SSH-MitM
Ako se nalazite u lokalnoj mreži kao žrtva koja će se povezati na SSH server koristeći korisničko ime i lozinku, možete izvesti MitM napad da ukradete te akreditacije:
Put napada:
Preusmeravanje saobraćaja: Napadač preusmerava žrtvin saobraćaj ka svojoj mašini, efikasno interceptujući pokušaj povezivanja na SSH server.
Interceptovanje i beleženje: Mašina napadača deluje kao proxy, hvatajući korisnikove prijavne detalje pretvarajući se da je legitimni SSH server.
Izvršavanje komandi i prosleđivanje: Na kraju, server napadača beleži korisnikove akreditacije, prosleđuje komande pravom SSH serveru, izvršava ih i šalje rezultate korisniku, čineći proces izgleda neprekidno i legitimno.
SSH MITM upravo radi ono što je opisano gore.
Da biste izveli stvarni MitM napad, možete koristiti tehnike poput ARP spoofinga, DNS spoofinga ili drugih opisanih u Napadima na mrežno falsifikovanje.
SSH-Snake
Ako želite da pretrčavate mrežu koristeći otkrivene privatne SSH ključeve na sistemima, koristeći svaki privatni ključ na svakom sistemu za nove hostove, onda vam je potreban SSH-Snake.
SSH-Snake automatski i rekurzivno obavlja sledeće zadatke:
Na trenutnom sistemu, pronađite bilo koje privatne SSH ključeve,
Na trenutnom sistemu, pronađite bilo koje hostove ili destinacije (korisnik@host) na koje bi privatni ključevi mogli biti prihvaćeni,
Pokušajte da se SSH povežete na sve destinacije koristeći sve otkrivene privatne ključeve,
Ako je destinacija uspešno povezana, ponovite korake #1 - #4 na povezanom sistemu.
Potpuno je samoreplikativan i samopropagirajući - i potpuno bez datoteka.
Konfiguracijske greške
Root prijava
Često je da SSH serveri dozvoljavaju prijavu korisnika root podrazumevano, što predstavlja značajan sigurnosni rizik. Onemogućavanje root prijave je ključni korak u obezbeđivanju servera. Neovlašćen pristup sa administratorskim privilegijama i napadi grubom silom mogu se umanjiti ovom promenom.
Da biste onemogućili root prijavu u OpenSSH:
Uredite SSH konfiguracionu datoteku sa:
sudoedit /etc/ssh/sshd_config
Promenite postavku sa
#PermitRootLogin yes
naPermitRootLogin no
.Ponovo učitajte konfiguraciju koristeći:
sudo systemctl daemon-reload
Restartujte SSH server da biste primenili promene:
sudo systemctl restart sshd
SFTP Grubom silom
Izvršavanje komandi putem SFTP-a
Postoji česta greška u postavkama SFTP-a, gde administratori nameravaju da korisnici razmenjuju fajlove bez omogućavanja udaljenog pristupa ljusci. Uprkos postavljanju korisnika sa neinteraktivnim ljuskama (npr. /usr/bin/nologin
) i ograničavanjem ih na određeni direktorijum, ostaje sigurnosna rupa. Korisnici mogu zaobići ove restrikcije tražeći izvršavanje komande (kao što je /bin/bash
) odmah nakon prijavljivanja, pre nego što njihova određena neinteraktivna ljuska preuzme kontrolu. To omogućava neovlašćeno izvršavanje komandi, podrivajući namenjene sigurnosne mere.
Evo primera sigurne SFTP konfiguracije (/etc/ssh/sshd_config
- openSSH) za korisnika noraj
:
Ova konfiguracija će dozvoliti samo SFTP: onemogućavanje pristupa ljusci forsiranjem start komande i onemogućavanje TTY pristupa, ali takođe onemogućavanje svih vrsta port forwarding-a ili tuneliranja.
SFTP Tuneliranje
Ako imate pristup SFTP serveru, takođe možete tunelirati svoj saobraćaj kroz njega, na primer, koristeći uobičajeno port forwarding:
SFTP Simbolična veza
SFTP ima komandu "symlink". Dakle, ako imate prava za pisanje u nekom folderu, možete kreirati simbolične veze ka drugim folderima/datotekama. Pošto ste verovatno zarobljeni unutar chroot-a, ovo neće biti posebno korisno za vas, ali, ako možete pristupiti kreiranoj simboličnoj vezi iz servisa bez chroot-a (na primer, ako možete pristupiti simboličnoj vezi preko veba), možete otvoriti datoteke preko simbolične veze preko veba.
Na primer, da kreirate simboličnu vezu od nove datoteke "froot" do "/":
Metodi autentifikacije
U visoko bezbednom okruženju, uobičajena praksa je omogućiti samo autentifikaciju zasnovanu na ključu ili dvofaktornu autentifikaciju umesto jednostavne autentifikacije zasnovane na lozinci. Međutim, često se jači metodi autentifikacije omoguće bez onemogućavanja slabijih. Čest slučaj je omogućavanje publickey
u konfiguraciji openSSH-a i postavljanje kao podrazumevanog metoda, ali ne i onemogućavanje password
. Dakle, korišćenjem režima verbose SSH klijenta, napadač može videti da je omogućen slabiji metod:
Na primer, ako je postavljen limit za neuspelu autentifikaciju i nikada ne dobijete priliku da dođete do metode za unos lozinke, možete koristiti opciju PreferredAuthentications
da biste prisilili korišćenje ove metode.
Pregled konfiguracije SSH servera je neophodan kako bi se proverilo da li su dozvoljene samo očekivane metode. Korišćenje verbose moda na klijentu može pomoći da se vidi efikasnost konfiguracije.
Konfiguracioni fajlovi
Fuzzing
Reference
Možete pronaći zanimljive vodiče o jačanju SSH na https://www.ssh-audit.com/hardening_guides.html
Savet o bug bounty programu: registrujte se na Intigriti, premijum platformu za bug bounty kreiranu od strane hakera, za hakere! Pridružite nam se na https://go.intigriti.com/hacktricks danas, i počnite da zarađujete nagrade do $100,000!
HackTricks Automatske Komande
Last updated