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

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

تالار گفتگو زوم تر ورود به تالار گفتگو زوم تر

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

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

اعداد هگزا دسیمال عبادتند از 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

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

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

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

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

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

شناسایی و کرک انواع هش ها
وب سایت hashkiller

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

آیا هش‌ها در برابر حملات با استفاده از ترکیبی از این روش‌ها کاملاً ایمن هستند؟

استفاده از ترکیبی از روش‌های امنیتی برای جلوگیری از کرک کردن هش‌ها، برای افزایش امنیت هش‌ها بسیار مفید است. با این حال، باید توجه داشت که هیچ روش امنیتی به طور کامل از حملات کرک هش‌ها جلوگیری نمی‌کند. به عنوان مثال، حملات با استفاده از تکنیک‌های Brute Force و Dictionary Attack همچنان می‌توانند به صورت موفقیت‌آمیزی انجام شوند، اگر پسوردها ضعیف باشند.

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

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

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

apt-get install findmyhash

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

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

<findmyhash <algorithm> -h <hash

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

findmyhash MD5 -h 827ccb0eea8a706c4c34a16891f84e7b

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

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

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 گنجانده نشده اند.

هش‌ها یکی از مهم‌ترین ابزارهای رمزنگاری و امنیتی هستند، اما به دلیل قابلیت کرک شدن آن‌ها، نیاز به روش‌های امنیتی برای جلوگیری از کرک شدن آن‌ها وجود دارد. در ادامه، روش‌هایی برای جلوگیری از کرک کردن هش‌ها را توضیح می‌دهیم:
1. استفاده از الگوریتم‌های پیچیده: الگوریتم‌های پیچیده مانند SHA-256 و SHA-512 به دلیل پیچیدگی زیاد، برای کرک شدن سخت هستند و امنیت بیشتری را فراهم می‌کنند.
2. اعمال محدودیت بر روی تعداد تلاش‌ها: برای جلوگیری از کرک شدن هش‌ها، محدودیت‌هایی بر روی تعداد تلاش‌ها و حداکثر زمان مجاز برای تلاش باید وارد شود. به عنوان مثال، اگر یک کاربر سعی کند بیش از ۱۰ بار تلاش کند، باید به صورت خودکار از سیستم مسدود شود.
3. استفاده از سولت: سولت یک رشته تصادفی است که به هش اضافه می‌شود و امنیت آن را افزایش می‌دهد. با استفاده از سولت، حملات با استفاده از دیکشنری و رینبو توسط کراکرها قابل انجام نخواهد بود.
4. استفاده از الگوریتم‌های امن تر: الگوریتم‌های جدید مانند Argon2 و bcrypt روش‌های امنی را برای تولید هش‌های امن‌تر فراهم می‌کنند.
5. انتخاب پسورد امن: انتخاب پسورد قوی و پیچیده با استفاده از کاراکترهای مختلف، اعداد و حروف بزرگ و کوچک، و استفاده از عبارات تصادفی به کراکرها کمک نمی‌کند تا پسورد را کرک کنند.
6. استفاده از تکنولوژی‌های امنیتی مانند احراز هویت دو عاملی: با استفاده از تکنولوژی‌های احراز هویت دو عاملی، مثل تایید دو مرحله‌ای، می‌توان از حملات کرک هش‌ها جلوگیری کرد.
استفاده از ترکیبی از این روش‌ها به کاربران کمک می‌کند تا هش‌هایشان را از نظر امنیتی تقویت کنند.

آیا تغییر دادن پسوردها به صورت دوره‌ای می‌تواند به افزایش امنیت کمک کند؟

بله، تغییر دادن پسوردها به صورت دوره‌ای می‌تواند به افزایش امنیت کمک کند. این امر به دلیل این است که با تغییر دادن پسورد، احتمال اینکه یک حمله کرک شده بتواند از همان پسورد برای ورود به سیستم استفاده کند، به شدت کاهش می‌یابد.

به طور معمول، توصیه می‌شود که پسوردها به صورت دوره‌ای تغییر داده شوند، به طوری که پسوردهای جدید قوی‌تر و پیچیده‌تر باشند. بهترین روش برای اینکه کاربران پسوردهای قوی و پیچیده انتخاب کنند، این است که از آن‌ها بخواهید که از یک رمز عبور تصادفی استفاده کنند و از آن‌ها بخواهید که پسورد جدید را به صورت دوره‌ای تغییر دهند.

به هر حال، تغییر دادن پسوردها تنها یکی از روش‌هایی است که برای افزایش امنیت سیستم می‌توان استفاده کرد و باید با ترکیبی از روش‌های دیگر، همچون استفاده از الگوریتم‌های پیچیده برای تولید هش‌های امن‌تر، احراز هویت دو مرحله‌ای و سولتینگ هش‌ها، امنیت سیستم را تقویت کرد.

چه روش‌های دیگری برای افزایش امنیت سیستم وجود دارد؟

برای افزایش امنیت سیستم، می‌توان از روش‌های زیادی استفاده کرد. در زیر به برخی از این روش‌ها اشاره می‌کنم:

1. الگوریتم‌های پیچیده برای تولید هش‌های امن‌تر: با استفاده از الگوریتم‌های پیچیده و امن، می‌توان هش‌هایی با طول بلندتر و مقاومت بیشتری در برابر حملات کرک تولید کرد.

2. استفاده از الگوریتم‌های رمزنگاری قوی: استفاده از الگوریتم‌های رمزنگاری قوی، مانند AES و RSA، می‌تواند در امنیت سیستم تأثیرگذار باشد.

3. احراز هویت دو مرحله‌ای: با استفاده از احراز هویت دو مرحله‌ای، مانند ارسال کد تأییدیه به تلفن همراه کاربر، می‌توان از هک شدن حساب کاربری جلوگیری کرد.

4. سولتینگ هش‌ها: با استفاده از روش سولتینگ، می‌توان از حملات با تکنیک‌های Rainbow Table جلوگیری کرد.

5. محدود کردن تلاش‌های ورود: با محدود کردن تعداد تلاش‌های ورود ناموفق، به سیستم، می‌توان از حملات با تکنیک‌های Brute Force و Dictionary Attack جلوگیری کرد.

6. به‌روزرسانی سیستم: به‌روزرسانی سیستم و نرم‌افزارها به طور دوره‌ای، می‌تواند از ثبات و امنیت سیستم پشتیبانی کند.

7. آموزش کاربران: آموزش کاربران در مورد روش‌های امنیتی و مدیریت رمز عبور قوی، می‌تواند به افزایش امنیت سیستم کمک کند.

8. کنترل دسترسی: با کنترل دقیق دسترسی کاربران به منابع سیستم، می‌توان از حملات داخلی جلوگیری کرد.

به طور کلی، استفاده از ترکیبی از این روش‌ها می‌تواند به افزایش امنیت سیستم کمک کند و بهترین راه برای اینکه سیستم امن باشد، این است که به‌صورت دوره‌ای و مداوم اقدامات امنیتی لازم را انجام دهید.

نوشته های مشابه

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

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