Known_hosts dosyasındaki hostları bulmak mümkün müdür?


115

Bilinen_hosts dosyamda hangi ana bilgisayarların olduğunu görmek isterdim ama insan tarafından okunabilir gibi görünmüyor. Okumak mümkün mü?

Daha spesifik olarak, birkaç isim üzerinden bağlanabileceğim bir ana bilgisayar var ve bilinen ana bilgisayar dosyamdan beklediğim parmak izini bulmak istiyorum.

Güncelleştirme: OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 Mar 2009 kullanıyorum

Bilinen_top dosyamdan bir satır böyle gözüküyor,

|1|guO7PbLLb5FWIpxNZHF03ESTTKg=|r002DA8L2JUYRVykUh7jcVUHeYE= ssh-rsa AAAAB3NzaC1yc2EAAFADAQABAAABAQDWp73ulfigmbbzif051okmDMh5yZt/DlZnsx3DEOYHu3Nu/+THJnUAfkfEc1XkOFiFgbUyK/08Ty0K6ExUaffb1ERfXXyyp63rpCTHOPonSrnK7adl7YoPDd4BcIUZd1Dk7HtuShMmuk4l83X623cr9exbfm+DRaeyFNMFSEkMzztBYIkhpA2DWlDkd90OfVAvyoOrJPxztmIZR82qu/5t2z58sJ6Jm2xdp2ckySgXulq6S4k+hnnGuz2p1klviYCWGJMZfyAB+V+MTjGGD/cj0SkL5v/sa/Fie1zcv1SLs466x3H0kMllz6gAk0/FMi7eULspwnIp65g45qUAL3Oj

Yanıtlar:


135

Sen var ettik HashKnownHostsiçin "set yes" ta ssh_configdosyası, bu nedenle sunucu isimleri düz metin olarak kullanılamaz.

Önceden beklediğiniz ana bilgisayar adını biliyorsanız, araştırabilirsiniz:

    ssh-keygen -H -F hostname

İşte ssh-keygen(1)man sayfasından ilgili bölüm :

 -F hostname
         Search for the specified hostname in a known_hosts file, listing
         any occurrences found.  This option is useful to find hashed host
         names or addresses and may also be used in conjunction with the
         -H option to print found keys in a hashed format.

3
Bilinen hash konakçıları temelde mümkün olmadığını mı ifade ediyor? yani onun bilgisine bakmak için ana bilgisayarın adını bilmem gerekiyor mu?
Colin Newell,

7
@ColinNewell Bu doğru, ana bilgisayar adını bilmeniz gerekir. Makinenizin güvenliği tehlikeye girerse saldırganın sık kullandığınız diğer kutuların ana bilgisayar adlarını / IP adreslerini toplamasını engellemek bir güvenlik önlemidir.
pdo

1
Hiç çıktı olmadığında korkmayın, ancak tam ana bilgisayar adını değil, ana bilgisayar adını deneyin.
matematik

6
Sshd_config değil, ssh_config.
Balık Monitörü

9
@pdo - komutunuz her zaman çalışmıyor. Ana bilgisayarın başka bir bağlantı noktasında SSH'si varsa 22, o zaman format known_hostsfarklıdır. Sonra aşağıdaki komutu kullanmanız gerekir:ssh-keygen -H -F [host.example.com]:2222
Martin Vegter

17

Gelecekte arama yapanlar için, bu makalenin (feragatnamesi olmayan: ilgisizim), IP'leri ve ana bilgisayar adlarını kaba kuvvetle zorlamak için nispeten basit bir Perl komut dosyası vardır known_hosts.

http://blog.rootshell.be/2010/11/03/bruteforcing-ssh-known_hosts-files/

Belirli bir IP adresinden başlamayı sağlar. Ayrıca bir sözlük kullanmak için kolayca değiştirilebilir.

Ayrıca Haziran 2014'te, John the Ripper projesi çatlama known_hosts desteği eklendi birden fazla CPU çekirdeğinden, GPU'ları, sözlük bozma vb yararlanabilir,

Bu nmap pasajını, sözlük olarak kullanmak üzere tüm RFC1918 IP adreslerinin sözlüğünü oluşturmak için de kullanabilirsiniz:

nmap -sL -Pn -n 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 |\
    grep '^Nmap scan report for' | cut -d\  -f5 >ips.list

1
Benzer özelliklere sahip bir python uygulaması da vardır: blog.tremily.us/posts/known_hosts
Lars Nordin

Lars Nordin, bahşiş için teşekkürler. Remily'nin bilgisini John the Ripper ekibine gönderdim ve bunun için kanama- jumbo'da
Royce Williams

1
Ve işte hashcat ile nasıl yapacağınız: up1ink.tumblr.com/post/132370869368/…
Royce Williams

4

Yardımcı ssh-keygen -l -f ~/.ssh/known_hostsolur mu? ( -vSeni kullanarak aynı zamanda küçük güzel hazine haritaları alırsın

+--[ RSA 2048]----+
|        .        |
|       + .       |
|      . B .      |
|     o * +       |
|    X * S        |
|   + O o . .     |
|    .   E . o    |
|       . . o     |
|        . .      |
+-----------------+

2
En kesin anlamıyla hayır, hepsi hala temel64. pdo'nun hash edildiğine dair açıklaması bunun tek yönlü bir şey olduğunu öne sürüyor, bu yüzden ana bilgisayar adını bilmediğim sürece sıkışıp kaldığımı tahmin ediyorum.
Colin Newell,

Bu bana yardımcı oldu. Özel olarak istediğim bir kombinasyondu. Daha önce doğrulanmış SSH parmak izi bulmak için çalıştırabilirsiniz:ssh-keygen -l -f ~/.ssh/known_hosts -F <hostname>
isaaclw

uh, ssh-keygen -l -F <hostname>daha da
basitleştirici

2

Her "known_hosts" satırının başlangıcında ana bilgisayar dizgisi / ipi vardır ("ssh-dss" veya "ssh-rsa" dizesinden önce):

hostgn6 ssh-dss AAAB3NzaC1kc3MAAACBAIfGV4+/28Zr+dT/i+ifydUBS0dMRUjCtExIThOj3Yexynu+wSRGjMm4GfF+og2kAljZyUjhBFeM+WYbJzcDSDB [...] ==
yumyumn6.dik6.dir2g.some.net ssh-dss AAAAB3NzaC1kc3MAAACBAIfGV4+/28Zr+dT/i+ifydUBS0dMRUjCtExITh [...] ==

2
... ve böylece awk '{print $1}' known_hostshile yapar. Standart dışı noktalarını dinleyen sunucular, demek gibi sona unutmayın [some-server]:5555içinde known_hosts.
sr_

3
Maalesef benimkinde değil. Mine, base64 kodlanmış verilere benziyor. Veriler ayrıca dosyamda da sınırlandırılmış.
Colin Newell,

O zaman hangi ssh yazılımını kullanıyorsunuz (neredeyse standart openssh yazılımını kullandığınızı varsayıyorduk)?
Ouki

Soruma daha fazla ayrıntı ekledim.
Colin Newell,

7
@Pdo tarafından belirtildiği gibi, "HashKnownHosts" olarak ayarlanmış olan sshd'ınız açık bir şekilde ayarlanmış olan, biraz anal görünebilir, ancak güvenlik endişesidir. Ve tabii ki, sadece hashleri ​​tersine çevirmenin ve hostnamesinizi "known_hosts" adresinden almanın bir yolu yoktur.
Ouki

2

Kullanma -lseçeneği ssh-keygenparmak izi listelemek için ve -Fseçeneği bir ana makine aramak için known_hostsdosyanın.

$ ssh-keygen -l -F sdf.org
# Host sdf.org found: line 835 type RSA
2048 6e:cd:53:4f:75:a1:e8:5b:63:74:32:4f:0c:85:05:17 |1|9J47PEllvWk/HJ6LPz5pOB2/7rc=|ld0BtQh5V3NdhBHBwR/ZqSv8bqY= (RSA)

ssh-keyscanİçinizdeki parmak izini known_hostssunucudaki ile karşılaştırmak için kullanabilirsiniz .

$ ssh-keyscan sdf.org | awk '{print $3}' | base64 -d | openssl md5 -c
# sdf.org SSH-2.0-OpenSSH_7.1
# sdf.org SSH-2.0-OpenSSH_7.1
no hostkey alg
(stdin)= 6e:cd:53:4f:75:a1:e8:5b:63:74:32:4f:0c:85:05:17
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.