
HASSH는 특정 클라이언트 및 서버 SSH 구현을 식별하는 데 사용할 수 있는 네트워크 핑거프린팅 표준입니다. 핑거프린트는 작은 MD5 핑거프린트 형태로 쉽게 저장, 검색 및 공유할 수 있습니다.
"HASSH"는 특정 클라이언트 및 서버 SSH 구현을 식별하는 데 사용할 수 있는 네트워크 지문 표준입니다. 지문은 MD5 지문 형태로 쉽게 저장, 검색 및 공유할 수 있습니다.
HASSH는 2018년 Salesforce에서 발명되었습니다. 그러나 이 프로젝트는 더 이상 Salesforce에서 적극적으로 유지 관리되지 않습니다. 원래 제작자 Ben Reardon은 Corelight에서 활성 포크를 유지 관리하고 있습니다.
"hassh"와 "hasshServer"는 다양한 SSH 클라이언트 및 서버 애플리케이션에서 지원하는 특정 알고리즘 세트로 구성된 MD5 해시입니다. 이러한 알고리즘은 초기 TCP 3방향 핸드셰이크 후에 "SSH_MSG_KEXINIT" 메시지로 알려진 일반 텍스트 패킷으로 교환되며, 최종 암호화된 SSH 채널 설정의 필수적인 부분입니다. 이러한 알고리즘의 존재와 순서는 "클라이언트" 또는 "서버" 문자열과 같은 상위 수준의 표면적 식별자와 관계없이 기본 클라이언트 및 서버 애플리케이션 또는 고유 구현을 식별하는 데 도움이 되는 지문으로 사용될 수 있을 만큼 충분히 고유합니다.
"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 (IOT 임베디드 시스템에서 사용)
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
hassh와 hasshServer는 Salesforce의 Detection Cloud Team에서 Ben Reardon (@benreardon)이 구상하고 개발했으며, Adel Karimi (@0x4d31) 및 JA3 crew의 영감과 기여를 받았습니다: 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] |