বিভিন্ন হ্যাশ ব্লাস্ট করতে হ্যাশক্যাট হ্যাশ ক্যাট সফ্টওয়্যার কীভাবে ব্যবহার করবেন

পোস্ট করা হয়েছে · লেখক:ডকুমেন্ট পাসওয়ার্ড পুনরুদ্ধার মাস্টার

শূন্য, পটভূমি জ্ঞান

1. হ্যাশ ফাংশন

হ্যাশ ফাংশন হল এক ধরনের ফাংশনের জন্য একটি সাধারণ শব্দ এই ধরনের ফাংশনের ইনপুট হল নির্বিচারে বাইনারি ডেটা, এবং আউটপুট হল একটি নির্দিষ্ট দৈর্ঘ্যের বাইনারি ডেটা এই ধরনের ফাংশনের নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

  • একমুখী: ইনপুট থেকে আউটপুট গণনা করা সহজ এবং দ্রুত, কিন্তু আউটপুট থেকে ইনপুট বের করা গাণিতিকভাবে অসম্ভব

  • সংঘর্ষের সীমাবদ্ধতা: একই আউটপুট সহ দুটি ভিন্ন ইনপুট খুঁজে পাওয়া অত্যন্ত কঠিন

এই বৈশিষ্ট্যগুলিকে সন্তুষ্ট করে এমন ফাংশনগুলিকে হ্যাশ ফাংশন বলা যেতে পারে । হ্যাশ ফাংশনের ইনপুট হিসাবে একটি নির্দিষ্ট ডেটা ব্যবহার করুন এবং আউটপুট গণনা করুন এই আউটপুটটিকে ডেটার হ্যাশ মান বলা প্রথাগত ।

হ্যাশ ফাংশনের একটি প্রধান কাজ হল পাসওয়ার্ডটি সরাসরি সংরক্ষণ করা নয় (অর্থাৎ, প্লেইন টেক্সট পাসওয়ার্ড সংরক্ষণ করা হয় না), তবে পাসওয়ার্ডের হ্যাশ মান সংরক্ষণ করা হয় যাচাইকরণের সময়, আপনাকে শুধুমাত্র ইনপুট করা পাসওয়ার্ডটি আবার গণনা করতে হবে পাসওয়ার্ডটি সঠিক কিনা তা জানতে সংরক্ষিত পাসওয়ার্ডের হ্যাশ মানের সাথে তুলনা করুন । হ্যাশ ফাংশনের একমুখী প্রকৃতি এবং সংঘর্ষের সীমাবদ্ধতার কারণে, আক্রমণকারী পাসওয়ার্ডের হ্যাশ মান পেলেও পাসওয়ার্ডটি জানা কঠিন ।

2.hashcat

আক্রমণকারী পাসওয়ার্ডের হ্যাশ মান পেয়েছে কি সত্যিই পাসওয়ার্ডটি জানার কোন উপায় নেই? অবশ্যই না, যদিও পাসওয়ার্ডের হ্যাশ মান থেকে সরাসরি পাসওয়ার্ড গণনা করা গাণিতিকভাবে সম্ভব নয়, আমরা জানি যে হ্যাশ ফাংশনটি ইনপুট থেকে আউটপুট গণনা করা সহজ এবং দ্রুত, আপনি এটি চেষ্টা করতে পারেন শুধুমাত্র পাসওয়ার্ড যা মানুষ সেট করতে পারে, আপনি যদি ভাগ্যবান হন তবে আপনি এখনও এটি চেষ্টা করতে পারেন । ক্রমাগত হ্যাশ মানের সাথে সম্পর্কিত ইনপুট পাওয়ার চেষ্টা করার অপারেশনটিকে ব্লাস্টিং বলা হয় ।

এই ধারণার উপর ভিত্তি করে, হ্যাশক্যাটের জন্ম হয়েছিল বলা হয় যে হ্যাশকে বিস্ফোরিত করা খুবই সহজ । হ্যাশক্যাট নিজেকে বিশ্বের দ্রুততম হ্যাশ ব্লাস্টিং টুল বলে দাবি করে এবং এটি এমনকি GPU এবং FGPA সমর্থন করে, যদি আপনার কাছে থাকে ।


হ্যাশক্যাট শুধুমাত্র দ্রুতই নয়, পেশাদারভাবে দুইশোরও বেশি হ্যাশ ফাংশন সমর্থন করে, কমান্ড ব্যবহার করে:

হ্যাশক্যাট --সাহায্য

আপনি হ্যাশক্যাট দ্বারা সমর্থিত সমস্ত হ্যাশ ফাংশনের একটি তালিকা দেখতে পারেন, সেগুলি অনেকগুলি আমি এখানে পোস্ট করব না ।

হ্যাশক্যাট ডিফল্টরূপে কালিতে ইনস্টল করা আছে এবং সরাসরি ব্যবহার করা যেতে পারে । কিন্তু আমার কালি ভার্চুয়ালবক্সে ইনস্টল করা আছে, এবং আমি সবসময় অনুভব করি যে ভার্চুয়াল সুযোগটি ধীর, তাই আমি একটি শারীরিক হোস্টে হ্যাশক্যাট ব্যবহার করতে চাই । হ্যাশক্যাট ডাউনলোড করার জন্য প্রথমে হ্যাশচ্যাটের অফিসিয়াল ওয়েবসাইটে যান, সর্বশেষ সংস্করণটি হল v3.5.0, যা আপডেটের তারিখ থেকে দেখা যায় যে হ্যাশচ্যাট প্রাণশক্তিতে পূর্ণ । এটি সংকলনের ঝামেলা দূর করে এবং বাইনারি প্যাকেজটি সরাসরি ডাউনলোড করে, যা মাত্র 2.7M, যা প্রায়শই কয়েক ডজন গিগাবাইট খরচ করে এমন গেমের তুলনায় খুবই ছোট ।

ডাউনলোড শেষ হওয়ার পরে, হ্যাশক্যাটটি আনকম্প্রেস করুন এবং দেখুন:

এই ধরনের ফাইলগুলি যথাক্রমে 32-বিট এবং 64-বিটের অধীনে লিনাক্স এবং উইন্ডোজে এক্সিকিউটেবল ফাইল আপনার কম্পিউটারের অবস্থা অনুযায়ী তাদের মধ্যে একটি নির্বাচন করুন । আমি hashcat64.bin বেছে নিয়েছি সৌন্দর্যের জন্য, ~/.bashrc ফাইলে একটি লাইন যোগ করুন:

alias hashcat='hashcat64.bin এর পথ'

সংরক্ষণ করার পরে, ~/.bashrc ফাইলটি কার্যকর করার জন্য ভার্চুয়াল টার্মিনালটি আবার খুলুন, আপনি যেখানেই থাকুন না কেন, ডিরেক্টরি পরিবর্তন না করেই বা কুৎসিত "64.bin" প্রবেশ না করেই সরাসরি হ্যাশক্যাট কমান্ডটি লিখুন । নীচের ছবিতে দেখানো হয়েছে ।

ঠিক আছে, এখন আপনি বিভিন্ন হ্যাশ ব্লাস্ট করতে হ্যাশক্যাট ব্যবহার শুরু করতে পারেন ।

1. ব্লাস্টিং MD5

MD5 সবচেয়ে বিখ্যাত এবং সর্বাধিক ব্যবহৃত হ্যাশ ফাংশনগুলির মধ্যে একটি হওয়া উচিত । প্রথমে ব্লাস্টিংয়ের জন্য বেশ কয়েকটি MD5 মান তৈরি করতে পাইথন ব্যবহার করুন:

  import hashlib 
  পাসওয়ার্ড = ['123123', 'bond007', 'xxxxxx', '*H@&(NT*@BR#^'] 
    জন্য   পাসওয়ার্ড   ইন   পাসওয়ার্ড: 
    MD5 = hashlib.MD5() 
    MD5.update(পাসওয়ার্ড) 
    print MD5.hexdigest()

উপরের কোডটি যথাক্রমে চারটি স্ট্রিংয়ের হ্যাশ মান গণনা করে:

  4297f44b13955235245b2497399d7a93 
  cbdb7e2b1ed566ceb796af2df07205a3 
  dad3a37aa9d50688b5157698acfd7aee 
  d77db958c179bbffae04b2b908b75c26

MD5.hash ফাইলে আউটপুট ফলাফল সংরক্ষণ করুন, প্রতি লাইনে একটি hahs মান । তারপর এই হ্যাশ মানগুলি বিস্ফোরিত করতে হ্যাশক্যাট ব্যবহার করুন কমান্ডটি নিম্নরূপ:

  hashcat -w 3 -a 0 -m 0 --মুছে ফেলুন -o MD5.out MD5.hash wordlist.dic

প্যারামিটার -w কাজের মোড নির্দিষ্ট করতে ব্যবহৃত হয়, যেমন নীচের সারণীতে দেখানো হয়েছে:

Nপারফরম্যান্সরানটাইমপাওয়ার খরচডেস্কটপ ইমপ্যাক্ট
1Low2 msনিম্নন্যূনতম
2ডিফল্ট12 msঅর্থনৈতিকলক্ষণীয়
3উচ্চ96 msউচ্চপ্রতিক্রিয়াহীন
4দুঃস্বপ্ন 480 msউন্মাদমাথাবিহীন

প্যারামিটার -a আক্রমণের মোড নির্দিষ্ট করতে ব্যবহৃত হয় 0 এর অর্থ সরাসরি এবং ক্রমাগত, অর্থাৎ, -a এর পাঁচটি মান রয়েছে, যেমনটি নীচের সারণীতে দেখানো হয়েছে:

Nমোড
0সোজা
1সমন্বয়
3ব্রুট-ফোর্স
6হাইব্রিড ওয়ার্ডলিস্ট + মাস্ক
7হাইব্রিড মাস্ক + ওয়ার্ডলিস্ট

-m বিস্ফোরিত হ্যাশ নির্দিষ্ট করতে ব্যবহৃত হয় মান হ্যাশ ফাংশন, 0 মানে হ্যাশ ফাংশন হল MD5, এবং অন্যান্য মানগুলি নিম্নলিখিত সারণীতে দেখানো হয়েছে:

Nনামবিভাগ
0MD5Raw হ্যাশ
300MySQL4.1/MySQL5<ডাটাবেস সার্ভার
1000NTLMঅপারেটিং সিস্টেম
1800sha512crypt $6$, SHA512 (Unix)অপারেটিং সিস্টেম
2611vBulletin < v3.8.5ফোরাম, CMS, ই-কমার্স, ফ্রেমওয়ার্ক

এই টেবিলটি খুব দীর্ঘ । আমি শুধুমাত্র এই নিবন্ধে জড়িত কয়েকটি হ্যাশ ফাংশন দেখাচ্ছি । আপনি পরামিতি - সাহায্য সঙ্গে সব দেখতে পারেন ।

প্যারামিটার – অপসারণের অর্থ হল যদি একটি নির্দিষ্ট হ্যাশ মান সফলভাবে বিস্ফোরিত হয়, তাহলে মানটি MD5 থেকে সরানো হবে । হ্যাশ সরানো হয়েছে ।

প্যারামিটার -o একটি ফাইলের নাম দ্বারা অনুসরণ করা হয়, যা নির্দেশ করে যে ব্লাস্টিং ফলাফল কোথায় সংরক্ষণ করা হয়েছে ।

শেষ দুটি প্যারামিটার হল MD5.hash এবং wordlist.dic হল যথাক্রমে হ্যাশ মান এবং পাসওয়ার্ড অভিধান এবং পাসওয়ার্ড অভিধান উভয়ই এক লাইনে । MD5.hash-এর বিষয়বস্তু পাইথন দ্বারা গণনা করা হয়েছে যদি আপনার হাতে একটি উপযুক্ত পাসওয়ার্ড অভিধান না থাকে, আপনি কমান্ডটি ব্যবহার করতে পারেন:

  wget -O wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt

下载一个。现在完事具备,按下回车,结果华丽地报错:(

  clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR

সম্ভবত কিছু চলমান পরিবেশের অভাব রয়েছে, তাই এটি ইনস্টল করুন । আমি এই জিনিসগুলি মোট ইনস্টল করেছি:

     sudo   apt-get   install   gcc   make   p7zip-full   git   lsb-core 
  wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz 
  tar -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz 
  সিডি opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 
  sudo ./install.sh

যদি নেটওয়ার্কের গতি ভাল হয়, তাহলে এটি কিছুক্ষণের মধ্যে ঠিক হয়ে যাবে:

   /sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a প্রতীকী লিঙ্ক 
  /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1  নয় একটি প্রতীকী লিঙ্ক 

কিন্তু এটি কিছুই প্রভাবিত করে বলে মনে হয় না, তাই এটিকে উপেক্ষা করুন । এইগুলি ইনস্টল করার পরে, আবার এন্টার টিপুন এবং কমান্ডটি চালান যা মূলত ত্রুটি রিপোর্ট করেছিল আমি দেখতে পেলাম যে আবার কোনও ত্রুটি রিপোর্ট করা হয়নি এবং এটি এক মুহুর্তের মধ্যে সম্পন্ন হয়েছিল । কমান্ডটি কার্যকর হওয়ার পরে, MD5.hash এবং MD5.out ফাইলের বিষয়বস্তু পরীক্ষা করুন এবং দেখুন যে MD5.hash-এ শুধুমাত্র একটি হ্যাশ অবশিষ্ট রয়েছে যা সফলভাবে ব্লাস্ট করা হয়েছে MD5.out ফাইলে স্থানান্তরিত হয়েছে । MD5.out তিনটি হ্যাশ মান এবং এর মূল মান নীচের চিত্রে দেখানো হয়েছে:

2. উইন্ডোজ 7 লগইন পাসওয়ার্ড হ্যাশ ব্লাস্ট করুন

উইন্ডোজ লগইন পাসওয়ার্ডের হ্যাশ মান SAM ফাইলে সংরক্ষণ করা হয়েছে, SAM হল "সিকিউরিটি অ্যাকাউন্ট ম্যানেজার" এর সংক্ষিপ্ত রূপ । সাধারণত, এটি

  C:\Windows\system32\config\SAM

এ অবস্থিত SAM ফাইলটি উইন্ডোজ দ্বারা সুরক্ষিত এবং সরাসরি পড়া যায় না, যেমন SAMInside এর সাহায্যে সরঞ্জাম প্রয়োজন । একটি উইন্ডোজ 7 ভার্চুয়াল মেশিন খুঁজুন, হ্যাশক্যাট নামে একটি নতুন অ্যাডমিনিস্ট্রেটর ব্যবহারকারী তৈরি করুন এবং একটি পাসওয়ার্ড সেট করুন, উইন্ডোজ 7-এ SAMInside ডাউনলোড করুন এবং আনকম্প্রেস করুন এবং প্রশাসক অধিকারের সাথে এটি চালান, তারপরে ফাইল-> স্থানীয় ব্যবহারকারীদের ভিস শিডিউলারে আমদানি করুন, যেমন নীচের ছবিতে দেখানো হয়েছে:

এর পরে, SAMInside "সাড়া দিতে পারে না", কিন্তু এটি কোন ব্যাপার না, ধৈর্য ধরে কয়েক সেকেন্ড অপেক্ষা করুন, SAMInside প্রত্যাশা অনুযায়ী বেঁচে থাকে এবং আমরা যে হ্যাশটি চাই তা পড়ে, যেমন নীচের ছবিতে দেখানো হয়েছে:

ব্যবহারকারী "hashcat" নির্বাচন করুন যাকে আমরা পাসওয়ার্ড বিস্ফোরিত করতে চাই, Ctrl+5 টিপুন NT-hash অনুলিপি করুন, তারপর উবুন্টুতে ফিরে যান যেখানে hashcat ইনস্টল করা আছে, অনুলিপি করা হ্যাশ মান win7.hash ফাইলে সংরক্ষণ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

  echo 356CEAE0C89FB65ED6D6AA7A445C4CE5 < 
  356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112

কিভাবে SAM ফাইল পেতে হয়, অনুগ্রহ করে "উইন্ডোজ হ্যাশ সিরিজ 1 কীভাবে রপ্তানি করবেন" দেখুন । ভার্চুয়াল মেশিন উইন্ডোজ 7 এ SAM ফাইলটি পড়ার প্রক্রিয়াটি নিম্নলিখিত ।

যদি এটি একটি ফিজিক্যাল মেশিন হয়, তাহলে মেশিনটি শুরু করতে Win PE ব্যবহার করুন এবং ডিস্কে SAM ফাইলটি পড়ুন । আমার একটি ভার্চুয়াল মেশিন । আপনি ফাইল সিস্টেমে ভার্চুয়াল ডিস্ক ফাইল মাউন্ট করে ভার্চুয়াল ডিস্কে ফাইলগুলি পড়তে পারেন । আমি যে ভার্চুয়াল মেশিনটি ব্যবহার করি তা হল ভার্চুয়ালবক্স, যা vdfuse কমান্ড ব্যবহার করে করা যেতে পারে । আপনার যদি vdfuse না থাকে তবে আপনাকে প্রথমে ভার্চুয়ালবক্স-ফিউজ ইনস্টল করতে হবে:

  sudo apt-get install virtualbox-fuse

আপনি ভার্চুয়ালবক্স-ফিউজ ডাউনলোড করতে পারেন ফিউজ ইনস্টলেশন প্যাকেজ নিজেই ইনস্টল করুন ।

ইনস্টলেশন সম্পন্ন হওয়ার পরে, আপনার কাছে vdfuse কমান্ড রয়েছে এবং আপনি ভার্চুয়াল ডিস্ক ম্যাপিং এবং মাউন্ট শুরু করতে পারেন:

  mkdir -p ~/vmdisk 
  sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~/vmdisk/

দেখুন ~/vmdisk ডিরেক্টরি, যার মধ্যে তিনটি ফাইল রয়েছে: EntireDisk, Partition1 এবং Partition2, নতুন ডিরেক্টরি তৈরি করুন:

  mkdir -p ~/vmdisk_en 
  mkdir -p ~/vmdisk_1 
  mkdir -p ~/vmdisk_2

তিনটি ফাইল যথাক্রমে EntireDisk, Partition1 এবং Partition2 মাউন্ট করতে মাউন্ট কমান্ড ব্যবহার করুন:

  sudo মাউন্ট ~/vmdisk/EntireDisk   ~/vmdisk_en 
  sudo মাউন্ট ~/vmdisk/Partition1   ~/vmdisk_1 
    sudo   মাউন্ট   ~ / vmdisk / Partition2       ~ / vmdisk_2 

পাওয়া গেছে যে সম্পূর্ণ ডিস্ক মাউন্ট ব্যর্থ হয়েছে, পার্টিশন 1 এর বিষয়বস্তু আমি যা চেয়েছিলাম তা ছিল না, পার্টিশন 2 উইন্ডোজ 7 ভার্চুয়াল মেশিনে ফাইল ছিল, ঠিক যা আমি চেয়েছিলাম । vmdisk_fs থেকে আমাদের টার্গেট SAM ফাইলটি অনুলিপি করুন:

  cp ~/vmdisk_2/Windows/System32/config/SAM ./

যাইহোক, সিস্টেম ফাইলটিও অনুলিপি করুন:

  cp ~/vmdisk_2/Windows/System32/config/SYSTEM ./

স্যাম ফাইলের বিষয়বস্তু দেখুন, যেমন নীচের ছবিতে দেখানো হয়েছে, এটি একটি প্লেইন টেক্সট ফাইল নয়, এটি আসলেই উইন্ডোজ স্টাইল,

ঠিক আছে, যদিও স্যাম ফাইলটি সফলভাবে খোলা হয়েছে, আমরা এখনও হ্যাশ পাইনি, পরবর্তীতে কী করব? আপনি শুধুমাত্র সরঞ্জামগুলির সাহায্যে SAM ফাইলের বিষয়বস্তু পার্স করতে পারেন । কালিতে স্যাম ফাইল এবং সিস্টেম ফাইল উভয়ই রাখুন এবং কমান্ডটি চালান:

  samdump2 -o sam । হ্যাশ সিস্টেম sam

তারপর sam দেখুন । হ্যাশ, আপনি প্রতিটি ব্যবহারকারীর লগইন পাসওয়ার্ডের হ্যাশ মানও দেখতে পারেন । sam.hash ফাইলের প্রতিটি লাইন একজন ব্যবহারকারী, এবং প্রতিটি লাইনের বিন্যাস হল:

   ব্যবহারকারীর নাম: RID: LM-hash value: NTLM-hash value

মনে রাখবেন যে এই বিন্যাসটি samdump2 কমান্ড আউটপুট বিন্যাস, "উইন্ডোজের অধীনে হ্যাশ পাসওয়ার্ড বিন্যাস" নয় ।

3. ব্লাস্টিং লিনাক্স লগইন পাসওয়ার্ড হ্যাশ

প্রথমত, আপনার একটি লিনাক্স সিস্টেম চালানোর জন্য একটি কম্পিউটার থাকতে হবে, এটি বলা সহজ, ভার্চুয়াল মেশিন যথেষ্ট । তারপরে, একটি নতুন ব্যবহারকারী যোগ করতে এবং আমাদের বিস্ফোরণের জন্য একটি পাসওয়ার্ড সেট করতে নিম্নলিখিত কমান্ডটি চালান:

  sudo adduser justforfun

লিনাক্সে ব্যবহারকারীর লগইন পাসওয়ার্ডের হ্যাশ মান /etc/shadow ফাইলে সংরক্ষণ করা হয় (দ্রষ্টব্য: /etc/passwd নয়) নতুন ব্যবহারকারীর লগইন পাসওয়ার্ডের হ্যাশ মান দেখতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

test@test-VirtualBox:~$ sudo tail -n 1 /etc/shadow 
justforfun:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:99999:7:::

টেইল কমান্ডটি একটি ফাইলের শেষ কয়েকটি লাইন পড়তে ব্যবহৃত হয়, ডিফল্টরূপে 10 লাইন, প্যারামিটার -n দিয়ে লাইনের সংখ্যা নির্দিষ্ট করুন । আমরা যে নতুন ব্যবহারকারীটি তৈরি করেছি তা স্বাভাবিকভাবেই শেষ লাইনে রয়েছে, তাই আমরা এটি পড়তে tail -n 1 ব্যবহার করি । পড়া ফলাফল হল ":" দ্বারা বিভক্ত ডেটা, প্রথম অংশটি ব্যবহারকারীর নাম "justforfun", দ্বিতীয় অংশটি পাসওয়ার্ডের হ্যাশ মান, অন্যান্য অংশগুলি এই নিবন্ধে চিন্তা করার দরকার নেই । আমরা দ্বিতীয় অংশে ফোকাস করব ।

এর শুরুতে "$6$" বলতে বোঝায় যে ব্যবহৃত হ্যাশ ফাংশনের ধরন হল SHA512 "$6$" ছাড়াও, লিনাক্সে, "$1$" MD5 এবং "$2a$" বোঝায় । ব্লোফিশ, "$2y$" বলতে বোঝায় ব্লোফিশ (8-বিট অক্ষরের সঠিক পরিচালনা), "$5$" SHA256 বোঝায়, বিস্তারিত জানার জন্য উইকিপিডিয়া:পাসডব্লিউডি দেখুন । উপরন্তু, ফাইল /etc/login.defs এছাড়াও হ্যাশ অ্যালগরিদম ব্যাখ্যা করে ।

"$6$" থেকে পরবর্তী "$" এর আগে "0fokwg59" অংশটি লবণ (SALT) হয় । লবণ কি? Baidu জানে যে "MD5 লবণের মান কী" প্রশ্নের CNB2009 এর উত্তরটি সহজ এবং বোঝা সহজ:

সহজভাবে বলতে গেলে, এটি একই পাসওয়ার্ড তৈরি করার একটি উপায় বিভিন্ন হ্যাশ মান আছে, যা লবণাক্তকরণ । MD5 নিজেই অপরিবর্তনীয়, কিন্তু বর্তমানে ইন্টারনেটে অনেকগুলি ডাটাবেস রয়েছে যা অ্যান্টি-কোয়েরি সমর্থন করে যদি ব্যবহারকারীর পাসওয়ার্ড ডাটাবেস ঘটনাক্রমে ফাঁস হয়ে যায়, তাহলে হ্যাকাররা অ্যান্টি-কোয়েরির মাধ্যমে ব্যবহারকারীর পাসওয়ার্ড পেতে পারে, অথবা হ্যাশ কোডগুলি পেতে পারে যা প্রায়শই ডাটাবেসে প্রদর্শিত হয় । (অর্থাৎ, অনেক লোক দ্বারা ব্যবহৃত) সহিংস ক্র্যাকিংয়ের জন্য (কারণ এটি সাধারণত একটি দুর্বল পাসওয়ার্ড)। লবণ মান হল একটি অতিরিক্ত র্যান্ডম মান যা পাসওয়ার্ড হ্যাশ প্রক্রিয়া চলাকালীন যোগ করা হয়, উদাহরণস্বরূপ, আমার আইডি হল 123456, যখন এটি ডাটাবেসে সংরক্ষণ করা হয়, আপনি "123456/123456 এইভাবে, যখন আরেকটি বোকা পাসওয়ার্ড 123456 হয়, তখনও বিভিন্ন হ্যাশ মান তৈরি করা যেতে পারে এবং সফলভাবে যাচাই করা যেতে পারে । এই সময়ে, আমার আইডি পাসওয়ার্ডে জটিল হ্যাশ করার জন্য একটি লবণ মান হিসাবে ব্যবহৃত হয় । তাই কি । . লবণ মান ভূমিকা ডাটাবেস ফাঁস দ্বারা সৃষ্ট ক্ষতি কমাতে হয় । যদি আপনার RP খুব ভাল হয় এবং আমার পাসওয়ার্ড 123456 অনুমান করে, আমি আপনাকে থামাতে পারব না

এই উত্তরটি MD5 এর জন্য, এবং অন্যান্য হ্যাশ ফাংশনের ক্ষেত্রেও একই কথা সত্য । লবণের পরে অংশটি হ্যাশ মান । এখন পুরো দ্বিতীয় অংশটি linux.hash ফাইলে অনুলিপি করুন, linux.hash এর বিষয়বস্তু হওয়া উচিত:

 $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0

তারপর নিম্নলিখিত কমান্ডটি ব্যবহার করে লিনাক্স লগইন পাসওয়ার্ড হ্যাশ ব্লাস্ট করুন:

  hashcat -w 3 -a 0 -m 1800 --সরান -o linux.out linux.hash wordlist.dic

কিছুক্ষণ পরে, ব্লাস্টিং সম্পন্ন হয়, ফলাফল দেখুন:

werner@Yasser:~/hashcat$ cat linux.out $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321<

4. মাইএসকিউএল লগইন পাসওয়ার্ড হ্যাশ বিস্ফোরণ

প্রথমে, আপনার অবশ্যই মাইএসকিউএল থাকতে হবে । আমার ভার্চুয়াল মেশিনে এটি আছে । Baidu জানে যে Mysql লগইন পাসওয়ার্ডের হ্যাশ মান user.MYD ফাইলে সংরক্ষণ করা হয়েছে । user.MYD ফাইলটি কোথায়? আমিও জানি না, তাই শুধু এটি খুঁজুন:

  test@test-VirtualBox:~$ sudo find / -নাম user.MYD 
  /var/lib/mysql/mysql/user.MYD

এটি /var/lib/mysql/mysql/user.MYD-এ পাওয়া গেছে, ফাইলের বিষয়বস্তু দেখুন:

  sudo cat /var/lib/mysql/mysql/user.MYD

একটি প্লেইন টেক্সট ফাইল নয়, এটি খুব বেশি গুরুত্বপূর্ণ নয়, এটি এখনও দেখা যায় যে ব্যবহারকারীর রুট লগইন পাসওয়ার্ডের হ্যাশ মান হল:

  6B825255FB466413D6B1B724644E23428C94BBCB

এই মানটি mysql.hash ফাইলে সংরক্ষণ করুন এবং mysql লগইন পাসওয়ার্ড ব্লাস্ট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন হ্যাশ:

     হ্যাশক্যাট   -w   3   -A   0   -m   300   - মুছে ফেলুন   -o   mysql.out   mysql.hash   wordlist.dic 

কিছুক্ষণ পরে, বিস্ফোরণ সম্পন্ন হয়, ফলাফল দেখুন:

  werner@Yasser:~/hashcat$ cat mysql.out 
  6b825255fb466413d6b1b724644e23428c94bbcb:ভাইপার

দেখা যায় যে ব্লাস্টিং সফল হয়েছে ।

5. বিস্ফোরণ আলোচনা! ফোরাম পাসওয়ার্ড

Discuz! এটি চীনে একটি সুপরিচিত পিএইচপি ফোরাম প্রোগ্রাম এবং ব্যাপকভাবে ব্যবহৃত হয় । এখন আসুন Discuz বিস্ফোরণ করা যাক! ব্যবহারকারীর পাসওয়ার্ডের হ্যাশ মান । প্রথমে, আপনাকে হ্যাশ মান খুঁজে বের করতে হবে, আমি এটি কোথায় খুঁজে পাব? অবশ্যই ডিসকাউন্ট থেকে! ডাটাবেসে ।

আলোচনা করা যেতে পারে! ডাটাবেস কোথায়? এইভাবে আমি এটি সমাধান করেছি, এর অফিসিয়াল ওয়েবসাইট থেকে Discuz এর সর্বশেষ সংস্করণটি ডাউনলোড করুন! সোর্স কোড, চালান এবং ইনস্টল করুন, এবং আপনি Discuz পাবেন! ডাটাবেস :smile:

Discuz! ডিফল্ট ডাটাবেসের নাম ultrax, এবং pre_ucenter_members টেবিলটি লগইন পাসওয়ার্ডের হ্যাশ মান সংরক্ষণ করে "pre_" হল ডিফল্ট উপসর্গ, যা ইনস্টলেশনের সময় পরিবর্তন করা যেতে পারে, কিন্তু "ucenter_members" পরিবর্তন হবে না । লগইন পাসওয়ার্ডের হ্যাশ মান জিজ্ঞাসা করতে নিম্নলিখিত sql স্টেটমেন্ট ব্যবহার করুন:

  নির্বাচন পাসওয়ার্ড, লবণ থেকে pre_ucenter_members; 

হ্যাশ মান এবং লবণ মান ফাইলে সংরক্ষণ করুন:

  echo 69bcba126b93c6f397983629a0f70553:c13fd9 > discuz.hash

হ্যাশ মান এবং লবণ মান একই লাইনে, ":" দ্বারা বিভক্ত । অবশেষে, Discuz লগইন পাসওয়ার্ড হ্যাশ ব্লাস্ট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

  hashcat -w 3 -A 0 -m 2611 --সরান -o discuz.out discuz.hash wordlist.dic

কিছুক্ষণ পরে, ব্লাস্টিং সম্পন্ন হয়, ফলাফল দেখুন:

  werner@Yasser:~/hashcat$ cat discuz.out 
  69bcba126b93c6f397983629a0f70553:c13fd9:winter

দেখা যায় যে ব্লাস্টিং সফল হয়েছে ।

6. বড় অভিধান পরীক্ষা

এখন পর্যন্ত, আমরা মাত্র 500টি শব্দের একটি ছোট অভিধান ব্যবহার করেছি, এবং প্রতিবার বিভিন্ন হ্যাশ সফলভাবে বিস্ফোরিত করতে এটি অদ্ভুত মনে হয় না? এর কারণ হল আমি ইচ্ছাকৃতভাবে হ্যাশক্যাট ব্যবহার করার অনুশীলন করার জন্য অভিধানে একটি দুর্বল পাসওয়ার্ড সেট করেছি, অন্যথায় এটি বিস্ফোরিত না হলে মানুষকে খারাপ বোধ করবে না । বাস্তবে এমন সৌভাগ্য পাওয়া অসম্ভব । আসুন একটি কম দুর্বল পাসওয়ার্ডের MD5 মান গণনা করা যাক, একটি বড় অভিধান দিয়ে বিস্ফোরিত করা যাক, একদিকে আপনার ভাগ্য চেষ্টা করুন এবং অন্যদিকে হ্যাশক্যাট কত দ্রুত হতে পারে তা দেখুন ।

প্রথমে MD5 মান গণনা করুন:

  আমদানি হ্যাশলিব 
  MD5 = হ্যাশলিব.MD5() 
  MD5.update("werner123456!!!") 
  print MD5.hexdigest()

আউটপুট হল:

  b17133f9abff287ed0546c1af2b171f7

তারপর একটি 10.5G আকার নির্বাচন করুন, 940 মিলিয়ন পাসওয়ার্ড সহ একটি অভিধান, বিস্ফোরণ শুরু করুন:

  হ্যাশক্যাট -w 3 -A 0 -m 0 --সরান -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic

লক্ষ্য করুন যে যখন শুধুমাত্র একটি হ্যাশ মান থাকে, তখন আপনাকে এটি ফাইলে সংরক্ষণ করতে হবে না, আপনি এটি সরাসরি কমান্ড লাইন প্যারামিটারে লিখতে পারেন । বিছানায় যাওয়ার আগে বিস্ফোরণ শুরু করে, পরের দিন ফলাফল দেখার জন্য উঠে দেখলাম:

  শুরু: বুধ জুলাই 26 22:55:27 2017 
  বন্ধ করা হয়েছে: বুধ জুলাই 26 23:02:28 2017

এটি দেখা যাচ্ছে যে এটি মাত্র 7 মিনিট সময় নিয়েছে! আমি ভেবেছিলাম এটি 7 ঘন্টা লাগবে, যা আমার প্রত্যাশার চেয়ে 60 গুণ দ্রুত! এটা দুঃখজনক যে হ্যাশ মান সফলভাবে বিস্ফোরিত হয়নি মনে হচ্ছে "werner123456!!!" পাসওয়ার্ড অভিধানে নেই । মনে হচ্ছে আমাকে একটি 100G পাসওয়ার্ড অভিধান প্রস্তুত করতে হবে, কিন্তু এত বড় অভিধান সংরক্ষণ এবং স্থানান্তর করা খুব অসুবিধাজনক । অন্য কোন উপায় নেই? অবশ্যই আছে, আক্রমণ মোড মনে আছে? আমরা "সোজা" মোড ব্যবহার করছি । পরবর্তী, অন্যান্য মোড অধ্যয়ন করা যাক ।

7. সারাংশ

হ্যাশ ব্লাস্ট করার জন্য হ্যাশক্যাট ব্যবহার করার জন্য, প্রথম জিনিসটি হল বিভিন্ন সিস্টেম এবং বিভিন্ন সফ্টওয়্যারের বিভিন্ন অবস্থানে হ্যাশ সংরক্ষণ করা হয়, তাই আপনাকে সঠিকভাবে খুঁজে বের করতে হবে হ্যাশ মান আসা; দ্বিতীয়টি হল হ্যাশের ধরনটি সঠিকভাবে বিচার করা, হ্যাশক্যাট এই ধরনের হ্যাশকে সমর্থন করে কিনা তা নির্ধারণ করা এবং সঠিক -m প্যারামিটার নির্বাচন করা, অন্যথায় সফল হওয়া প্রায় অসম্ভব; তৃতীয়টি হল পাসওয়ার্ড অভিধানটি ভাল হওয়া উচিত এটি শেষ পর্যন্ত সফলভাবে বিস্ফোরিত হতে পারে কিনা তা অভিধানের উপর নির্ভর করে । যদিও পাসওয়ার্ড অভিধানটি বড় নয়, ততটা ভাল, এটি সর্বদা বড় হওয়া ভাল । হ্যাশক্যাটও তার গতির জন্য পরিচিত । বড় অভিধানগুলি হ্যাশক্যাটের জন্য সমস্যা নয় । এখানে একটি ভাল অভিধান রেকর্ড করা হয়েছে: পূর্ববর্তী লিক গেট + সাধারণভাবে ব্যবহৃত দুর্বল পাসওয়ার্ড অভিধান সংগ্রহ । 7Z, ডিকম্প্রেশন পাসওয়ার্ড হল: anywlan । উপরন্তু, আপনি যদি অনেকগুলি ছোট অভিধান সংগ্রহ করেন, তাহলে আপনি হ্যাশক্যাট ব্লাস্টিংয়ের সুবিধার্থে একটি বড় অভিধান পেতে ছোট অভিধানগুলিকে একত্রিত, বাছাই এবং ডুপ্লিকেট করতে পারেন । যদি ছোট অভিধানটি একই ডিরেক্টরিতে থাকে, তাহলে এটি একটি কমান্ড ব্যবহার করে করা যেতে পারে:

    cat * | sort | uniq > Merge.dic

যদি ছোট অভিধানগুলিকে বিভাগ অনুসারে সংগঠিত করা হয় এবং বহু-স্তরের ডিরেক্টরিতে বিতরণ করা হয়? শুধুমাত্র cat কমান্ড ব্যবহার করা স্পষ্টতই যথেষ্ট নয়, কিন্তু আসলে শুধুমাত্র একটি কমান্ডের প্রয়োজন হয় ধরে নিই যে সমস্ত ছোট অভিধান MyDictionary ডিরেক্টরিতে সংরক্ষণ করা হয়েছে, কমান্ডটি এভাবে লেখা যেতে পারে:

     find ./MyDictionary -type f -exec cat {} \;  | বাছাই | ইউনিক > Merge.dic

পূর্ববর্তী নিবন্ধ:ডকুমেন্ট পাসওয়ার্ড রিকভারি মাস্টার কি ধরনের এনক্রিপ্ট করা ফাইল সমাধান করতে পারে? নিম্নলিখিত বিন্যাস ফাইল যা ক্র্যাকিং সমর্থন
পরবর্তী নিবন্ধ:হ্যাশক্যাট হ্যাশক্যাটের বেশ কয়েকটি আক্রমণ মোড

সর্বশেষ নিবন্ধ

পিন করা নিবন্ধ

সম্পর্কিত নিবন্ধ