Có thể tìm ra các máy chủ trong tệp know_hosts không?


115

Tôi muốn xem những máy chủ nào trong tệp know_hosts của tôi nhưng nó dường như không thể đọc được. Có thể đọc nó?

Cụ thể hơn, có một máy chủ mà tôi có thể kết nối thông qua một số tên và tôi muốn tìm hiểu dấu vân tay mà tôi mong đợi từ tệp máy chủ đã biết của mình.

Cập nhật: Tôi đang sử dụng OpenSSH_5.3p1 Debian-3ubfox7, OpenSSL 0.9.8k ngày 25 tháng 3 năm 2009

Một dòng từ tệp know_hosts của tôi trông giống như thế này,

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

Nếu nó không được băm, bạn có thể sử dụng: unix.stackexchange.com/questions/236192/ mẹo
Benjamin Goodacre

Câu trả lời:


135

Bạn đã được HashKnownHostsđặt thành " yes" trong ssh_configtệp của mình , vì vậy tên máy chủ không có sẵn trong bản rõ.

Nếu bạn biết tên máy chủ bạn đang tìm trước, bạn có thể tìm kiếm nó với:

    ssh-keygen -H -F hostname

Đây là phần có liên quan từ ssh-keygen(1)trang man:

 -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
Liệu các máy chủ băm được biết đến về cơ bản có nghĩa là nó không thể? tức là tôi cần biết tên của chủ nhà để xem thông tin của nó?
Colin Newell

7
@ColinNewell Đúng vậy, bạn cần biết tên máy chủ. Đây là một biện pháp bảo mật để ngăn kẻ tấn công thu thập tên máy chủ / địa chỉ IP của các hộp khác mà bạn thường gặp nếu máy của bạn bị xâm nhập.
pdo

1
Đừng sợ hãi khi không có đầu ra nào cả, nhưng hãy thử không phải tên máy chủ đủ điều kiện mà thay vào đó là tên máy chủ.
toán

6
Không phải sshd_config, mà là ssh_config.
Giám sát cá

9
@pdo - lệnh của bạn không phải lúc nào cũng hoạt động. Nếu máy chủ có SSH trên cổng khác 22, thì định dạng trong known_hostssẽ khác. Sau đó, bạn phải sử dụng lệnh sau: ssh-keygen -H -F [host.example.com]:2222
Martin Vegter

17

Đối với những người tìm kiếm trong tương lai, bài viết này (không từ chối trách nhiệm: Tôi không bị ảnh hưởng) có một tập lệnh Perl tương đối đơn giản để các IP và tên máy chủ được băm mạnh mẽ known_hosts.

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

Nó cho phép bắt đầu từ một địa chỉ IP cụ thể. Nó cũng có thể dễ dàng được sửa đổi để sử dụng một từ điển.

Ngoài ra, vào tháng 6 năm 2014, dự án John the Ripper đã thêm hỗ trợ cho việc bẻ khóa đã biết , có thể tận dụng nhiều lõi CPU, GPU, xáo trộn từ điển, v.v.

Bạn cũng có thể sử dụng đoạn mã nmap này để tạo một từ điển của tất cả các địa chỉ IP RFC1918 để sử dụng làm từ điển:

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
Ngoài ra còn có một triển khai python với các tính năng tương tự, có thể được tìm thấy tại: blog.tremily.us/posts/ Unknown_hosts
Lars Nordin

Lars Nordin, cảm ơn vì tiền boa. Tôi đã gửi thông tin của Remily cho nhóm John the Ripper và họ đã thêm hỗ trợ cho việc này trong ble
Royce Williams

1
Và đây là cách thực hiện với hashcat
Royce Williams

4

ssh-keygen -l -f ~/.ssh/known_hostsgiúp gì không? (Sử dụng -vbạn cũng có được bản đồ kho báu nhỏ, ví dụ

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

2
Không phải theo nghĩa chặt chẽ nhất là không, tất cả vẫn là cơ sở64. lời giải thích của pdo về việc nó được băm cho thấy đó là một cách để tôi đoán rằng tôi bị mắc kẹt trừ khi tôi biết tên máy chủ.
Colin Newell

Điều đó đã giúp tôi. Những gì tôi muốn đặc biệt là một sự kết hợp. Để tìm dấu vân tay ssh đã được xác minh trước đó, bạn có thể chạy:ssh-keygen -l -f ~/.ssh/known_hosts -F <hostname>
isaaclw

uh, ssh-keygen -l -F <hostname>thậm chí còn đơn giản hơn
isaaclw

2

Có chuỗi máy chủ / ip ở đầu mỗi dòng "know_hosts" (trước chuỗi "ssh-dss" hoặc "ssh-rsa"):

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

2
... và do đó awk '{print $1}' known_hosts, lừa Xin lưu ý rằng các máy chủ lắng nghe trên các cổng không chuẩn sẽ kết thúc như, nói, [some-server]:5555trong known_hosts.
sr_

3
Thật không may, không phải trong tôi. Của tôi trông giống như dữ liệu được mã hóa base64. Dữ liệu cũng được phân định bằng đường ống trong tệp của tôi.
Colin Newell

Bạn đang sử dụng phần mềm ssh nào (chúng tôi đã giả sử rằng bạn đang sử dụng phần mềm openssh gần như nổi bật)?
Ouki

Tôi đã thêm chi tiết cho câu hỏi của tôi.
Colin Newell

7
Như @pdo đã nêu, sshd của bạn là "HashKnownhosts" được đặt thành bật, có thể xuất hiện một chút hậu môn, nhưng vấn đề bảo mật là như vậy. Và tất nhiên, không có cách nào đơn giản là đảo ngược các giá trị băm và lấy tên máy chủ từ "know_hosts" của bạn.
Ouki

2

Sử dụng -ltùy chọn để ssh-keygenliệt kê dấu vân tay và -Ftùy chọn tìm kiếm tên máy chủ trong known_hoststệp của bạ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)

Bạn có thể sử dụng ssh-keyscanđể so sánh dấu vân tay của bạn known_hostsvới dấu vân tay từ máy chủ.

$ 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.