
HASSH — это стандарт сетевого fingerprinting, который можно использовать для идентификации конкретных клиентских и серверных SSH-реализаций. Отпечатки могут быть легко сохранены, найдены и распространены в виде небольшого MD5-отпечатка.
"HASSH" — это стандарт сетевого снятия отпечатков (fingerprinting), который можно использовать для идентификации конкретных реализаций SSH-клиентов и серверов. Эти отпечатки легко сохранять, искать и обмениваться ими в виде MD5-отпечатка.
HASSH был изобретён в Salesforce в 2018 году. Однако в настоящее время проект больше не поддерживается Salesforce активно. Его первоначальный создатель, Бен Реардон (Ben Reardon), поддерживает активный форк в Corelight.
"hassh" и "hasshServer" — это MD5-хэши, построенные из конкретного набора алгоритмов, которые поддерживаются различными SSH-клиентами и серверными приложениями. Эти алгоритмы передаются после начального тройного рукопожатия TCP в виде пакетов открытого текста, известных как сообщения "SSH_MSG_KEXINIT", и являются неотъемлемой частью настройки конечного зашифрованного SSH-канала. Существование и порядок этих алгоритмов достаточно уникальны, чтобы их можно было использовать в качестве отпечатка для идентификации основного клиентского или серверного приложения или конкретной реализации, независимо от идентификаторов более высокого уровня, таких как строки "Client" или "Server".
Для SFTP-клиента "Cyberduck" (конкретно SSH-2.0-Cyberduck/6.7.1.28683 (Mac OS X/10.13.6) (x86_64)) набор поддерживаемых алгоритмов выглядит следующим образом:
| Функция | Алгоритмы, видимые в пакетах SSH_MSG_KEXINIT |
|---|---|
| Методы обмена ключами | [email protected],diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,diffie-hellman-group15-sha512,diffie-hellman-group16-sha512,diffie-hellman-group17-sha512,diffie-hellman-group18-sha512,[email protected],diffie-hellman-group15-sha256,[email protected],[email protected],diffie-hellman-group16-sha256,[email protected],[email protected],[email protected] |
| Шифрование | aes128-cbc,aes128-ctr,aes192-cbc,aes192-ctr,aes256-cbc,aes256-ctr,blowfish-cbc,blowfish-ctr,cast128-cbc,cast128-ctr,idea-cbc,idea-ctr,serpent128-cbc,serpent128-ctr,serpent192-cbc,serpent192-ctr,serpent256-cbc,serpent256-ctr,3des-cbc,3des-ctr,twofish128-cbc,twofish128-ctr,twofish192-cbc,twofish192-ctr,twofish256-cbc,twofish256-ctr,twofish-cbc,arcfour,arcfour128,arcfour256 |
| Аутентификация сообщений | hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512 |
| Сжатие | [email protected],zlib,none |
Объединение этих алгоритмов вместе с разделителем ";" даёт hasshAlgorithms, что полезно для детального анализа.
[email protected],diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,diffie-hellman-group15-sha512,diffie-hellman-group16-sha512,diffie-hellman-group17-sha512,diffie-hellman-group18-sha512,[email protected],diffie-hellman-group15-sha256,[email protected],[email protected],diffie-hellman-group16-sha256,[email protected],[email protected],[email protected];aes128-cbc,aes128-ctr,aes192-cbc,aes192-ctr,aes256-cbc,aes256-ctr,blowfish-cbc,blowfish-ctr,cast128-cbc,cast128-ctr,idea-cbc,idea-ctr,serpent128-cbc,serpent128-ctr,serpent192-cbc,serpent192-ctr,serpent256-cbc,serpent256-ctr,3des-cbc,3des-ctr,twofish128-cbc,twofish128-ctr,twofish192-cbc,twofish192-ctr,twofish256-cbc,twofish256-ctr,twofish-cbc,arcfour,arcfour128,arcfour256;hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512;[email protected],zlib,none
Наконец, hassh — это просто MD5 от hasshAlgorithms, и он используется для хранения, поиска и обмена. Некоторые примеры: