22 - Pentesting SSH/SFTP
Last updated
Last updated
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)
Bug bounty ipucu: Intigriti'ye kaydolun, hackerlar tarafından, hackerlar için oluşturulmuş bir premium bug bounty platformu! Bugün https://go.intigriti.com/hacktricks adresine katılın ve $100,000'a kadar ödüller kazanmaya başlayın!
SSH (Secure Shell veya Secure Socket Shell), güvensiz bir ağ üzerinden bir bilgisayara güvenli bir bağlantı sağlamak için kullanılan bir ağ protokolüdür. Uzak sistemlere erişirken verilerin gizliliğini ve bütünlüğünü korumak için gereklidir.
Varsayılan port: 22
SSH sunucuları:
openSSH – OpenBSD SSH, BSD, Linux dağıtımları ve Windows 10'dan itibaren Windows'ta yerleşik
Dropbear – Düşük bellek ve işlemci kaynaklarına sahip ortamlar için SSH uygulaması, OpenWrt'de yerleşik
PuTTY – Windows için SSH uygulaması, istemci yaygın olarak kullanılır ancak sunucu kullanımı daha nadirdir
CopSSH – Windows için OpenSSH uygulaması
SSH kütüphaneleri (sunucu tarafını uygulayan):
wolfSSH – ANSI C ile yazılmış ve gömülü, RTOS ve kaynak kısıtlı ortamlar için hedeflenmiş SSHv2 sunucu kütüphanesi
Apache MINA SSHD – Apache SSHD java kütüphanesi Apache MINA'ya dayanmaktadır
paramiko – Python SSHv2 protokol kütüphanesi
ssh-audit, ssh sunucu ve istemci yapılandırma denetimi için bir araçtır.
https://github.com/jtesta/ssh-audit güncellenmiş bir fork'tur https://github.com/arthepsy/ssh-audit/
Özellikler:
SSH1 ve SSH2 protokol sunucu desteği;
SSH istemci yapılandırmasını analiz etme;
banner alma, cihaz veya yazılım ve işletim sistemini tanıma, sıkıştırmayı tespit etme;
anahtar değişimi, anahtar, şifreleme ve mesaj kimlik doğrulama kodu algoritmalarını toplama;
algoritma bilgilerini çıktı olarak verme (mevcut olduğu tarih, kaldırılmış/devre dışı, güvensiz/zayıf/eski, vb);
algoritma önerilerini çıktı olarak verme (tanınan yazılım sürümüne göre ekleme veya kaldırma);
güvenlik bilgilerini çıktı olarak verme (ilgili sorunlar, atanan CVE listesi, vb);
algoritma bilgisine dayalı SSH sürüm uyumluluğunu analiz etme;
OpenSSH, Dropbear SSH ve libssh'den tarihsel bilgiler;
Linux ve Windows'ta çalışır;
bağımlılık yok
Bu, varsayılan olarak nmap tarafından keşfedilir. Ancak sslcan veya sslyze de kullanabilirsiniz.
ssh
OpenSSH'nin bazı sürümlerinde kullanıcıları saymak için bir zamanlama saldırısı yapabilirsiniz. Bunu istismar etmek için bir metasploit modülü kullanabilirsiniz:
Bazı yaygın ssh kimlik bilgileri burada ve burada ve aşağıda.
Eğer kullanılabilecek bazı ssh özel anahtarlarını biliyorsanız... deneyelim. nmap betiğini kullanabilirsiniz:
Ya da MSF yardımcı modülü:
Or use ssh-keybrute.py
(native python3, hafif ve eski algoritmalar etkin): snowdroppe/ssh-keybrute.
Bazı sistemler, kriptografik materyal oluşturmak için kullanılan rastgele tohumda bilinen hatalara sahiptir. Bu, bruteforce edilebilecek önemli ölçüde azaltılmış bir anahtar alanına yol açabilir. Zayıf PRNG'den etkilenen Debian sistemlerinde önceden oluşturulmuş anahtar setleri burada mevcuttur: g0tmi1k/debian-ssh.
Kurban makinesi için geçerli anahtarları aramak amacıyla buraya bakmalısınız.
crackmapexec ssh
protokolünü kullanarak kerberos ile kimlik doğrulama yapmak için --kerberos
seçeneğini kullanabilir.
Daha fazla bilgi için crackmapexec ssh --help
komutunu çalıştırın.
Satıcı
Kullanıcı Adları
Şifreler
APC
apc, cihaz
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, kullanıcı
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
Eğer kurban olarak yerel ağda iseniz ve kullanıcı adı ve şifre ile SSH sunucusuna bağlanmaya çalışıyorsanız, bu kimlik bilgilerini çalmak için MitM saldırısı gerçekleştirmeyi deneyebilirsiniz:
Saldırı yolu:
Trafik Yönlendirme: Saldırgan, kurbanın trafiğini kendi makinesine saptar, böylece SSH sunucusuna bağlantı girişimini yakalar.
Yakalama ve Günlükleme: Saldırganın makinesi, meşru SSH sunucusu gibi davranarak kullanıcının giriş bilgilerini yakalar.
Komut Yürütme ve İletme: Son olarak, saldırganın sunucusu kullanıcının kimlik bilgilerini kaydeder, komutları gerçek SSH sunucusuna ilerletir, yürütür ve sonuçları geri gönderir, süreci kesintisiz ve meşru gösterir.
SSH MITM yukarıda tarif edilenleri tam olarak yapar.
Gerçek MitM'yi gerçekleştirmek için ARP sahtekarlığı, DNS sahtekarlığı veya Ağ Sahtekarlığı saldırıları gibi teknikleri kullanabilirsiniz.
Eğer keşfedilen SSH özel anahtarlarını kullanarak bir ağı geçmek istiyorsanız, her sistemdeki her özel anahtarı yeni ana bilgisayarlar için kullanarak, o zaman SSH-Snake ihtiyacınız olan şeydir.
SSH-Snake aşağıdaki görevleri otomatik ve yinelemeli olarak gerçekleştirir:
Mevcut sistemde, herhangi bir SSH özel anahtarını bulun,
Mevcut sistemde, özel anahtarların kabul edilebileceği herhangi bir ana bilgisayar veya hedef (kullanıcı@ana bilgisayar) bulun,
Keşfedilen tüm özel anahtarları kullanarak tüm hedeflere SSH bağlantısı kurmayı deneyin,
Eğer bir hedefe başarıyla bağlanılırsa, bağlı olunan sistemde #1 - #4 adımlarını tekrar edin.
Tamamen kendini çoğaltan ve kendini yayabilen - ve tamamen dosyasızdır.
SSH sunucularının varsayılan olarak root kullanıcı girişine izin vermesi yaygındır, bu da önemli bir güvenlik riski oluşturur. Root girişini devre dışı bırakmak, sunucuyu güvence altına almanın kritik bir adımıdır. Bu değişikliği yaparak yetkisiz erişim ve brute force saldırılarını azaltabilirsiniz.
OpenSSH'de Root Girişini Devre Dışı Bırakmak için:
SSH yapılandırma dosyasını düzenleyin: sudoedit /etc/ssh/sshd_config
Ayarı değiştirin: #PermitRootLogin yes
değerini PermitRootLogin no
olarak değiştirin.
Yapılandırmayı yeniden yükleyin: sudo systemctl daemon-reload
Değişiklikleri uygulamak için SSH sunucusunu yeniden başlatın: sudo systemctl restart sshd
SFTP kurulumlarında, yöneticilerin kullanıcıların dosya alışverişi yapmasını sağlamak için uzaktan shell erişimini etkinleştirmemesiyle ilgili yaygın bir gözden kaçırma vardır. Kullanıcıları etkileşimli olmayan shell'lerle (örneğin, /usr/bin/nologin
) ayarlamaya ve belirli bir dizine sınırlamaya rağmen, bir güvenlik açığı kalır. Kullanıcılar, bu kısıtlamaları aşabilir ve giriş yaptıktan hemen sonra bir komutun (örneğin /bin/bash
) yürütülmesini talep edebilir, bu da yetkisiz komut yürütmeye olanak tanır ve amaçlanan güvenlik önlemlerini zayıflatır.
Aşağıda kullanıcı noraj
için güvenli SFTP yapılandırmasının bir örneği verilmiştir (/etc/ssh/sshd_config
– openSSH):
Bu yapılandırma yalnızca SFTP'ye izin verecektir: başlangıç komutunu zorlayarak shell erişimini devre dışı bırakmak ve TTY erişimini devre dışı bırakmakla birlikte, her türlü port yönlendirmeyi veya tünellemeyi de devre dışı bırakmaktadır.
Eğer bir SFTP sunucusuna erişiminiz varsa, trafiğinizi bunun üzerinden tünelleme yapabilirsiniz, örneğin yaygın port yönlendirmesini kullanarak:
The sftp have the command "symlink". Therefor, if you have writable rights in some folder, you can create symlinks of other folders/files. As you are probably trapped inside a chroot this won't be specially useful for you, but, if you can access the created symlink from a no-chroot service (for example, if you can access the symlink from the web), you could open the symlinked files through the web.
For example, to create a symlink from a new file "froot" to "/":
Eğer "froot" dosyasına web üzerinden erişebiliyorsanız, sistemin kök ("/") klasörünü listeleyebilirsiniz.
Yüksek güvenlikli ortamlarda, basit faktör şifre tabanlı kimlik doğrulama yerine yalnızca anahtar tabanlı veya iki faktörlü kimlik doğrulamanın etkinleştirilmesi yaygın bir uygulamadır. Ancak genellikle daha güçlü kimlik doğrulama yöntemleri, daha zayıf olanların devre dışı bırakılmadan etkinleştirilir. Sık karşılaşılan bir durum, openSSH yapılandırmasında publickey
'nin etkinleştirilmesi ve varsayılan yöntem olarak ayarlanması, ancak password
'un devre dışı bırakılmamasıdır. Bu nedenle, SSH istemcisinin ayrıntılı modunu kullanarak bir saldırgan, daha zayıf bir yöntemin etkin olduğunu görebilir:
Örneğin, bir kimlik doğrulama hatası limiti ayarlandıysa ve şifre yöntemine ulaşma şansınız yoksa, bu yöntemi kullanmaya zorlamak için PreferredAuthentications
seçeneğini kullanabilirsiniz.
SSH sunucu yapılandırmasını gözden geçirmek, yalnızca beklenen yöntemlerin yetkilendirildiğinden emin olmak için gereklidir. İstemcide ayrıntılı mod kullanmak, yapılandırmanın etkinliğini görmekte yardımcı olabilir.
SSH'yi güçlendirmek için ilginç kılavuzlar bulabilirsiniz https://www.ssh-audit.com/hardening_guides.html
Bug bounty ipucu: Intigriti için kayıt olun, hackers tarafından, hackers için oluşturulmuş premium bir bug bounty platformu! Bugün https://go.intigriti.com/hacktricks adresine katılın ve $100,000'a kadar ödüller kazanmaya başlayın!
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)