امنیت

شناسایی و کرک انواع هش ها

شناسایی و شکستن انواع هش ها

سلام و درود خدمت کاربران محترم وبسایت کالی بویز. در این اموزش با نحوه شناسایی یک هش و کرک کردن ان اشنا میشیم. قبل از شروع اموزش ابتدا موارد زیر را بخوانید.

اعداد هگزا دسیمال عبادتند از 0،1،2،3،4،5،6،7،8،9 و a،b،c،d،e،f که هر عدد هگزا دسیمال ۴ بیت است. برای مثال رشته “a26fe”  که شامل ۵ عدد هگزادسیمال میباشد نشان دهنده ۴*۵=۲۰ بیت میباشد.

حال رشته “۵۱۸۷۹۴۲d399d4ed244068db70a11319e” را در نظر بگیرید که شامل ۳۲ عدد هگزادسیمال میباشد پس ۳۲*۴=۱۲۸ بیت میباشد. از این رو میتوان از روی یک هش تعداد بیت های ان را محاسبه کرد. حالا در لیست زیر انواع هش ها به همراه چند بیتی بودن انها را مشاهده میکنید:

Name Length
MD2 ۱۲۸ bits
MD4 ۱۲۸ bits
MD5 ۱۲۸ bits
MD6 Up to 512 bits
RIPEMD-128 ۱۲۸ bits
RIPEMD-160 ۱۶۰ bits
RIPEMD-320 ۳۲۰ bits
SHA-1 ۱۶۰ bits
SHA-224 ۲۲۴ bits
SHA-256 ۲۵۶ bits
SHA-384 ۳۸۴ bits
SHA-512 ۵۱۲ bits
SHA-3 (originally known as Keccak) arbitrary
Tiger ۱۹۲ bits
Whirlpool ۵۱۲ bits

بنابراین طول بیت هدف ما ۱۲۸ بیت است و طبق جدول بالا، می توان هر یک از این ۴ هش را داشته باشد:

(MD2 (Designed in 1989
(MD4 (Designed in 1990
(MD5 (Designed in 1991
(RIPEMD-128 (Designed in 2004

همانطور که می بینید، MD5 جدیدترین هش ۱۲۸ بیتی در رده MD است، بنابراین درحال حاظر هیچ کس از MD2 و MD4 استفاده نمیکند. بنابراین می توان حدس زد که بیشتر هش ها یک MD5 یا یک RIPEMD-128 است. حالا شاید سوال باشد که کدام برنامه این هش را تولید کرده است؟ من این هش را از یک پایگاه داده MySQL در هنگام انجام حمله SQL Injection به دست اوردم

در حال حاضر شاید برای تازه کارها تشخیص نوع هش کمی سخت باشد اما من می دانم که سیستم مدیریت پایگاه داده MySQL معمولا کلمه عبور را به عنوان هش MD5 ذخیره می کند همچنین ویندوز با استفاده از الگوریتم هش NTLM، لینوکس از MD5، SHA-256 یا SHA-512، Blowfish و غیره استفاده می کند و ماریا DBMS از MD5 یا SHA-1 استفاده می کند.

شناسایی نوع هش ها

بنابراین میتوان نتیجه گرفت که با دیدن طول هش، میتوان نوع آن را تشخیص داد. شما میتوانید از وبسایت های انلاین تشخیص هش نیز استفاده کنید. یا اگر به صورت دقیق تر میخواهید، میتوانید از ابزار قوی “Hash-identifier” استفاده کنید.

کاربران لینوکس می توانند ابزار Hash-identifier را از طریق دستور زیر در ترمینال نصب کنند (این ابزار به صورت پیشفرض در لینوکس های مخصوص تست نفوذ مانند توزیع پروت و کالی لینوکس وجود دارد.)

apt-get install hash-identifier

همچنین اگر از سیستم ویندوزی استفاده میکنید، میتوانید آن را از گیت هاب دانلود و نصب کنید.

identify and crack hashes.kaliboys - شناسایی و کرک انواع هش ها

بعد از اجرا این ابزار، از شما میخواهد که هش خود را وارد کنید. بعد از وارد کردن هش، نوع hash را برای شما نشان میدهد که نتیجه های بسیار خوبی را میتوان به دست اورد.

کرک کردن انواع هش ها

اگر بخواهم یکی از ابزارهای مورد علاقه ام را در این زمینه برای شما معرفی کنم قطعا این ابزار Findmyhash میباشد.

البته روش های راحت تری هم وجود دارد مانند وبسایت های crackstation.net و hashkiller.co.uk که دارای پایگاه داده ای بزرگ از هش ها هستند و شما می توانید چک کنید که آیا هش های تارگت شما در پایگاه داده این وبسایت ها وجود دارند یا خیر.

وب سایت hashkiller
وب سایت hashkiller

FindMyHash یک اسکریپت پایتون است که هشهای هدف خود را میگیرد و ۴۰ سایت مختلف را برای crack کردن هش ها بررسی می کند. بنابراین فقط کافی است که شما هش خود را ارسال کنید و بجای چک کردن تک تک این سایت ها، به صورت یکجا همه انها را بررسی کنید.

نصب ابزار FindMyHash در لینوکس

برای نصب این ابزار میتوایند از دستور زیر استفاده کنید:

apt-get install findmyhash

همچین برای دانلود این ابزار میتوانید از لینک github استفاده کنید.

دستور اجرای این ابزار به صورت زیر میباشد:

<findmyhash <algorithm> -h <hash

برای مثال هش “۸۲۷ccb0eea8a706c4c34a16891f84e7b” را در نظر بگیرید. که میخواهیم توسط این ابزار کرک کنیم.

findmyhash MD5 -h 827ccb0eea8a706c4c34a16891f84e7b

identify and crack hashes.kaliboys 1 - شناسایی و کرک انواع هش ها

همچنین میتوانید از دستور زیر استفاده کنید:

findmyhash MD5 -h 827ccb0eea8a706c4c34a16891f84e7b -g

که ارگمان -g گوگل را نشان می دهد. بنابراین اگر این ۴۰ وب سایت در شکست هش شما ناموق بود، FindMyHash آخرین تلاش را با جستجو هش در Google انجام می دهد.

ابزار FindMyHash از هش های زیر پشتیبانی میکند:

MD4 – RFC 1320
MD5 – RFC 1321
(SHA1 – RFC 3174 (FIPS 180-3
(SHA224 – RFC 3874 (FIPS 180-3
SHA256 – FIPS 180-3
SHA384 – FIPS 180-3
SHA512 – FIPS 180-3
RMD160 – RFC 2857
GOST – RFC 5831
WHIRLPOOL – ISO/IEC 10118-3:2004
LM – Microsoft Windows hash
NTLM – Microsoft Windows hash
MYSQL – MySQL 3, 4, 5 hash
CISCO7 – Cisco IOS type 7 encrypted passwords
JUNIPER – Juniper Networks $9$ encrypted passwords
LDAP_MD5 – MD5 Base64 encoded
LDAP_SHA1 – SHA1 Base64 encoded

توجه: FindMyhash تنها از وب سایت هایی استفاده می کند که اجازه انجام این کار را می دهند. بنابراین شما باید سایت هایی مانند Crackstation را نیز امتحان کنید زیرا آنها در FindMyHash گنجانده نشده اند.

یوسف وفایی

فارغ التحصیل کارشناسی IT، علاقه مند به برنامه نویسی و علم امنیت، عاشق یادگیری حرفه های جدید، کنجکاو برای همه چیز، همچنین همیشه تلاش میکنم تا به هدفم برسم...

‫6 دیدگاه ها

  1. سلام این هش همیشه یک نتیجه یکسانی دارند؟ مثلا در هش ۲۵۶ که توی بلاکچین بیتکوین استفاده میشه hello میشه ۱۲۳۴۵ بعد خارج از بلاکچین و جای دیگه نتیجه hello بازم میشه ۱۲۳۴۵ یا تغییر میکنه؟امیدوارم منظورم رو رسونده باشم?

    1. تغییر میکنه
      چون معمولا یه سالت (نمک) بهش اضافه میکنن بعد هش میگیرن

    1. سلام
      بله احتمالا باشه باید سرچ کنید.
      همچنین میتونید از سایت های انلاین استفاده کنید که توی هر سیستم عاملی میتونید امتحان کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


دکمه بازگشت به بالا