
تحديد بصمة عملاء وخوادم SSH.
ملاحظة: تم إنشاء مستودع Corelight هذا ليتم الحفاظ عليه بشكل فعّال، وذلك بناءً على طلب من Salesforce الذي لم يعد مستودعه الأصلي قيد الصيانة.
"HASSH" هو معيار لبصمة الشبكة يمكن استخدامه لتحديد تنفيذات محددة لعملاء وخوادم SSH. يمكن بسهولة تخزين هذه البصمات والبحث فيها ومشاركتها في شكل بصمة MD5.
يتم إنشاء "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)، مجموعة الخوارزميات المدعومة هي كما يلي:
إن دمج هذه الخوارزميات معًا باستخدام فاصل ";" يعطي 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، ويُستخدم للتخزين والبحث والمشاركة. فيما يلي بعض الأمثلة:
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 قياسي SSH-2.0-OpenSSH_5.3، مجموعة الخوارزميات المدعومة هي كما يلي:
| الوظيفة |
|---|
إن دمج هذه الخوارزميات معًا باستخدام فاصل ";" يعطي 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 هو ببساطة MD5 الخاص بـ hasshServerAlgorithms، فيما يلي بعض الأمثلة:
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 بواسطة Ben Reardon ضمن فريق Detection Cloud في Salesforce، مع إلهام ومساهمات من 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 |
| الخوارزميات الظاهرة في حزم SSH_MSG_KEXINIT |
|---|
| طرق تبادل المفاتيح | 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] |