Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
hassh — HASSH 是一种网络指纹识别标准,可用于识别特定的客户端和服务器 SSH 实现。这些指纹可以以小型 MD5 指纹的形式轻松存储、搜索和共享。 | Kitploit
工具/GitHubGitHub/salesforce/hassh
危害指标 (IOC) 管理物联网安全取证分析网络安全威胁情报入侵检测事件响应异常检测Archived
GitHubsalesforce/hassh

hassh

HASSH 是一种网络指纹识别标准,可用于识别特定的客户端和服务器 SSH 实现。这些指纹可以以小型 MD5 指纹的形式轻松存储、搜索和共享。

查看仓库
5547791年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

"HASSH" - SSH客户端和服务器的指纹识别方法

"HASSH"是一种网络指纹识别标准,可用于识别特定的客户端和服务器SSH实现。这些指纹可以以MD5指纹的形式轻松存储、搜索和共享。

HASSH于2018年在Salesforce发明。然而,该项目已不再由Salesforce积极维护。其原始创建者Ben Reardon在Corelight维护着活跃的分支。

License: BSD 3-Clause License

HASSH可以帮助解决什么:

  • 用于高度可控、充分理解的环境中,任何不在已知良好集合中的指纹均可触发告警。
  • 可以比IP源更细粒度地检测、控制和调查暴力破解或凭证填充密码尝试——IP源可能受到NAT或类似僵尸网络行为的影响。hassh将成为所使用的特定客户端软件实现的一个特征,即使IP经过NAT而与其他许多SSH客户端共享。
  • 检测客户端算法集组件中的隐蔽数据外泄。在这种情况下,特制编码的SSH客户端可以通过一系列SSH_MSG_KEXINIT数据包,将数据从受信任环境发送至较不受信任的环境。在类似于已知的DNS外泄场景中,数据可以作为一系列尝试的、但不完整且未记录的连接到由恶意行为者控制的SSH服务器发送出去,这些恶意行为者随后可以记录、解码并重组这些数据片段为原始形式。迄今为止,即使是成熟的包分析器或终端系统,也未曾记录此类尝试——更不用说明文数据包的内容了。现在可以通过异常检测或对具有多个不同hassh的SSH客户端进行告警,轻松检测这种风格的外泄。
  • 结合其他上下文指标使用,例如通过异常的hassh检测网络发现和横向移动尝试,如Paramiko、PowerShell、Ruby、Meterpreter、Empire所使用的hassh。
  • 将恶意的hassh作为入侵指标(IOC)共享。
  • 创建额外级别的客户端应用程序控制,例如,可以阻止所有不在已批准已知hassh值集合内的客户端连接到SSH服务器。
  • 在取证上下文中贡献于不可否认性——其抽象级别高于IP源,因为IP源可能受到NAT影响,或使用了多个IP源。
  • 检测欺骗性应用程序。例如,已知属于Cowrie/Kippo SSH蜜罐服务器安装的hasshServer值,其在服务器字符串中声称是普通的OpenSSH服务器。
  • 检测具有已知属于物联网嵌入式系统的hassh的设备。示例可能包括摄像头、麦克风、键盘记录器、窃听器,这些设备可能很容易被隐藏起来,并通过加密通道静默地与控制服务器通信。

HASSH如何工作:

"hassh"和"hasshServer"是由各种SSH客户端和服务器应用程序支持的一组特定算法构造的MD5哈希。这些算法在初始TCP三次握手后以称为"SSH_MSG_KEXINIT"消息的明文数据包进行交换,是最终加密SSH通道建立的组成部分。 这些算法的存在和顺序足够独特,可以用作指纹来帮助识别底层客户端和服务器应用程序或独特实现,而忽略诸如"Client"或"Server"字符串等更高级别的表面标识。

示例1:客户端指纹识别 - "hassh"

对于"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(用于Empire利用模块) fafc45381bfde997b6305c4e1600f1bf Ruby/Net::SSH_5.0.2 x86_64-linux(用于Metasploit利用模块) b5752e36ba6c5979a575e43178908adf Python Paramiko_2.4.1(用于Metasploit利用模块) 16f898dd8ed8279e1055350b4e20666c Dropbear_2012.55(用于物联网嵌入式系统) 8a8ae540028bf433cd68356c1b9e8d5b CyberDuck版本6.7.1 (28683) 06046964c022c6407d15a27b12a6a4fb OpenSSH_7.7p1 Ubuntu-4

示例2:服务器指纹识别 - "hasshServer"

对于一个标准的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

参考:

  • RFC4253 安全外壳(SSH)传输层协议
  • Salesforce Engineering博客

致谢:

hassh和hasshServer由Ben Reardon (@benreardon) 在Salesforce的Detection Cloud团队中构思和开发,灵感与贡献来自Adel Karimi (@0x4d31) 以及JA3团队的成员:John B. Althouse、Jeff Atkinson和Josh Atkins。

下载工具
功能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]