注意:此 Corelight 仓库是应 Salesforce 的请求而创建的,以便其能够得到积极维护,因为 Salesforce 的原始仓库已不再维护。
"HASSH" 是一种网络指纹识别标准,可用于识别特定的客户端和服务器 SSH 实现。这些指纹可以以 MD5 指纹的形式轻松存储、搜索和共享。
"hassh" 和 "hasshServer" 是由各种 SSH 客户端和服务器应用程序支持的一组特定算法构建的 MD5 哈希。这些算法在初始 TCP 三次握手后以称为 "SSH_MSG_KEXINIT" 消息的明文数据包进行交换,并且是最终加密 SSH 通道建立中不可或缺的一部分。 这些算法的存在和排序可以具有足够的独特性,因此可以用作指纹,帮助识别底层客户端和服务器应用程序或独特实现,而无需考虑诸如 "Client" 或 "Server" 字符串之类更高级别的表面标识符。
对于 "Cyberduck" SFTP 客户端 SSH-2.0-Cyberduck/6.7.1.28683 (Mac OS X/10.13.6) (x86_64) ,其支持的算法集合如下:
将这些算法以 ";" 作为分隔符连接在一起,即可得到 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 就是 hasshAlgorithms 的 MD5,用于存储、搜索和共享。以下是一些示例:
de30354b88bae4c2810426614e1b6976 Powershell Renci.SshNet.SshClient.0.0.1 (used by Empire exploit modules)
fafc45381bfde997b6305c4e1600f1bf Ruby/Net::SSH_5.0.2 x86_64-linux (used by Metasploit exploit modules)
b5752e36ba6c5979a575e43178908adf Python Paramiko_2.4.1 (used by Metasploit exploit modules)
16f898dd8ed8279e1055350b4e20666c Dropbear_2012.55 (used in IOT embedded systems)
8a8ae540028bf433cd68356c1b9e8d5b CyberDuck Version 6.7.1 (28683)
06046964c022c6407d15a27b12a6a4fb OpenSSH_7.7p1 Ubuntu-4
对于标准 SSH-2.0-OpenSSH_5.3 SSH 服务器,其支持的算法集合如下:
| 功能 | SSH_MSG_KEXINIT 数据包中出现的算法 |
|---|
将这些算法以 ";" 作为分隔符连接在一起,即可得到 hasshServerAlgorithms,这对详细分析很有用。
diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1;aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected];hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96;none,[email protected]
最后,hasshServer 就是 hasshServerAlgorithms 的 MD5,以下是一些示例:
c1c596caaeb93c566b8ecf3cae9b5a9e SSH-2.0-dropbear_2016.74
d93f46d063c4382b6232a4d77db532b2 SSH-2.0-dropbear_2016.72
2dd9a9b3dbebfaeec8b8aabd689e75d2 SSH-2.0-AWSCodeCommit
696e7f84ac571fdf8fa5073e64ee2dc8 SSH-2.0-FTP
默认情况下,会记录原始算法字符串和密钥算法,并可通过在脚本中设置这些布尔变量来控制。
option log_raw_hasshAlgorithms = T;
option log_key_algorithm = T;
hassh 和 hasshServer 由 Salesforce 的 Detection Cloud Team 的 Ben Reardon 构思和开发,并受到 Adel Karimi(@0x4d31)和 JA3 团队的启发与贡献。
| 功能 | 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 |
| 密钥交换方法 | diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 |
| 加密 | aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] |
| 消息认证 | hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 |
| 压缩 | none,[email protected] |