Действительно ли возможно узнать хосты в known_hosts файле?

Скажите нам, какой вид шифрования Вы используете на своем маршрутизаторе?

Можно также попробовать wicd, это - большой инструмент возможности соединения, и это может работать с интерфейсом ncurses или gtk (не гном) frontend. Вы только выполняете его однажды, устанавливаете соединение, говорите wicd помнить его и добавлять wicd демона к Вашим сценариям запуска. После этого можно просто забыть о соединении и не выполнить frontend в течение многих месяцев - оно будет просто работать. Я использовал его с различными дистрибутивами и различными настольными средами (или автономный WMs), и я очень доволен им.

120
13.02.2012, 17:11
5 ответов

Вы имеете HashKnownHosts набор к"yes"в Вашем ssh_config файл, таким образом, имена хостов не доступны в простом тексте.

Если Вы знаете имя хоста, Вы ищете заранее, можно искать его с:

    ssh-keygen -H -F hostname

Вот соответствующий раздел от ssh-keygen(1) страница справочника:

 -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.
142
27.01.2020, 19:29
  • 1
    Действительно хеширует известные хосты, чрезвычайно средние, это не возможно? т.е. Я должен знать название хоста для взгляда на, он - информация? –  Colin Newell 13.02.2012, 17:54
  • 2
    @ColinNewell Правильно, необходимо знать имя (имена) хоста. Это - меры безопасности, чтобы помешать взломщику получать ИМЕНА ХОСТОВ/IP-АДРЕСА других полей, которые Вы часто посещаете, если Ваша машина поставлена под угрозу. –  pdo 13.02.2012, 17:58
  • 3
    Не бойтесь, когда нет никакого вывода вообще, но попробуйте не полное квалифицированное имя хоста, но имя хоста вместо этого. –  math 07.05.2013, 20:58
  • 4
    Не sshd_config, но ssh_config. –  Fish Monitor 21.11.2013, 12:31
  • 5
    @pdo - Ваша команда не всегда работает. Если хост имеет SSH на порте кроме 22, затем формат в known_hosts отличается. Затем необходимо использовать следующую команду: ssh-keygen -H -F [host.example.com]:2222 –  Martin Vegter 13.07.2014, 18:56

Делает ssh-keygen -l -f ~/.ssh/known_hosts помощь? (Используя -vВы также получаете миленькие карты сокровища, например.

+--[ RSA 2048]----+
|        .        |
|       + .       |
|      . B .      |
|     o * +       |
|    X * S        |
|   + O o . .     |
|    .   E . o    |
|       . . o     |
|        . .      |
+-----------------+
4
27.01.2020, 19:29
  • 1
    Не в самом строгом смысле не, это - все все еще base64. объяснение pdo его хешируемый предполагает, что это - один путь вещь, таким образом, я предполагаю, что застреваю, если я не знаю имени хоста. –  Colin Newell 13.02.2012, 17:57
  • 2
    Это помогло мне. Что я хотел, конкретно была комбинация. Для нахождения ранее проверенного ssh цифрового отпечатка можно работать: ssh-keygen -l -f ~/.ssh/known_hosts -F <hostname> –  isaaclw 23.09.2015, 00:30
  • 3
    мм, ssh-keygen -l -F <hostname> даже simplier –  isaaclw 24.09.2015, 18:08

Существует строка/IP хоста в начале каждой "known_hosts" строки (прежде чем строка "ssh-dss" или "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
27.01.2020, 19:29
  • 1
    ... и таким образом awk '{print $1}' known_hosts добивается цели. Знайте, что серверы, слушающие на нестандартных портах, заканчиваются как, скажем, [some-server]:5555 в known_hosts. –  sr_ 13.02.2012, 16:35
  • 2
    К сожалению, не в моем. Виды шахты больше как base64 закодировали данные. Данные являются также каналом, разграниченным в моем файле. –  Colin Newell 13.02.2012, 16:40
  • 3
    Какое ssh программное обеспечение Вы используете затем (мы предполагали, что Вы использовали почти стандартное openssh программное обеспечение)? –  Ouki 13.02.2012, 16:49
  • 4
    я добавил больше деталей к своему вопросу. –  Colin Newell 13.02.2012, 17:11
  • 5
    Как указано @pdo, Ваш sshd как набор "HashKnownHosts" к на, который может казаться немного анальным, но проблема безопасности это. И конечно нет никакого способа просто инвертировать хеши и получить имена хостов от Вашего "known_hosts". –  Ouki 13.02.2012, 17:41

Для будущих искателей, эта статья (неправовая оговорка: я не affilated), имеет относительно простой сценарий Perl к хешированному дюйм/с "в лоб" и именам хостов в known_hosts.

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

Это позволяет начинать с конкретного IP-адреса. Это могло также легко быть изменено для использования словаря.

Кроме того, в июне 2014, John проект Превосходного человека добавленная поддержка взламывания known_hosts, которое может использовать в своих интересах несколько ядер процессора, GPU, искажения словаря, и т.д.

Можно также использовать этот nmap отрывок для генерации словаря всех IP-адресов RFC1918 для использования в качестве словаря:

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
17
27.01.2020, 19:29

Используйте параметр -l для ssh-keygen, чтобы просмотреть отпечатки пальцев, и параметр -F для поиска имени хоста в known_hosts. .

$ 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, чтобы сравнить отпечаток на вашем known_hosts с отпечатком на сервере.

$ 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
6
27.01.2020, 19:29

Теги

Похожие вопросы