
HASSH é um padrão de fingerprinting de rede que pode ser usado para identificar implementações SSH específicas de Cliente e Servidor. As impressões digitais podem ser facilmente armazenadas, pesquisadas e compartilhadas na forma de uma pequena impressão digital MD5.
"HASSH" é um padrão de fingerprinting de rede que pode ser usado para identificar implementações específicas de Cliente e Servidor SSH. As impressões digitais podem ser facilmente armazenadas, pesquisadas e compartilhadas na forma de uma impressão digital MD5.
HASSH foi inventado na Salesforce em 2018. No entanto, o projeto não é mais mantido ativamente pela Salesforce. Seu criador original, Ben Reardon, mantém o fork ativo no Corelight
"hassh" e "hasshServer" são hashes MD5 construídos a partir de um conjunto específico de algoritmos suportados por várias aplicações Cliente e Servidor SSH. Esses algoritmos são trocados após o handshake inicial de três vias TCP como pacotes de texto claro conhecidos como mensagens "SSH_MSG_KEXINIT", e são parte integrante da configuração do canal SSH criptografado final. A existência e ordenação desses algoritmos é suficientemente única para que possa ser usada como uma impressão digital para ajudar a identificar a aplicação Cliente e Servidor subjacente ou implementação única, independentemente de identificadores ostensivos de nível superior, como strings "Client" ou "Server".
Para o cliente SFTP "Cyberduck" (especificamente SSH-2.0-Cyberduck/6.7.1.28683 (Mac OS X/10.13.6) (x86_64)), o conjunto de algoritmos suportados é o seguinte :
| Função | Algoritmos vistos em pacotes SSH_MSG_KEXINIT |
|---|---|
| Métodos de troca de chave | [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] |
| Criptografia | 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 |
| Autenticação de mensagem | hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512 |
| Compressão | [email protected],zlib,none |
Concatenar esses algoritmos com um delimitador ";" resulta no hasshAlgorithms, que é útil para análise detalhada.
[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
Finalmente, o hassh é simplesmente o MD5 do hasshAlgorithms, e é usado para armazenamento, pesquisa e compartilhamento. Alguns exemplos a seguir: