فایلهای مایکروسافت آفیس میتوانند با رمز ایمن شوند تا از دسترسی غیرمجاز و دستکاری دادهها مصون بمانند. بااینحال، اسناد رمزگذاریشده بهوسیلهی نسخههای قدیمیتر آفیس مشکل امنیتی دارند و هَشهای (Hash) آنها میتواند با برنامهی ساده office2john استخراج شود. همچنین، ابزارهایی نظیر John the Ripper و Hashcat میتوانند هَشهای استخراجشده را کرک کنند.
مقالههای مرتبط:
استخراج هَش از فایل مایکروسافت آفیس با ابزار office2john فقط چند ثانیه طول میکشد. استاندارد رمزنگاری محصولات آفیس طی سالها تغییر کرده؛ اما هیچکدام از آنها در مقابل office2john امن نیستند.
این ابزار به زبان پایتون نوشته شده و فقط از ترمینال اجراشدنی است. این ابزار روی نرمافزارهای ورد،اکسل، پاورپوینت، واننوت، پراجکت، اکسس واوتلوک نسخههای ۹۷، ۲۰۰۰، ۲۰۰۳، ۲۰۰۷، ۲۰۱۰ و ۲۰۱۳ روی ویندوز و مک، کاربردی است. البته، office2john روی نسخههای جدیدتر ۲۰۱۶ و ۲۰۱۹ کار نمیکند.
دقت کنید این مقاله صرفا جنبهی آموزشی دارد و استفادهی صحیح و اخلاقی و قانونی از آن برعهدهی خود شماست.
نصب کالی
این آموزش برای سیستمعامل کالی (Kali) تدارک دیده شده است. کالی توزیع لینوکس مشتقشدهای از دبیان است که بهطور خاص برای امنیت و آزمایش نفوذ طراحی شده است. این سیستمعامل نسخهی جدیدی از BackTrack بهحساب میآید. کالی را شرکت آفنسیو سکیوریتی (Offensive Security) پشتیبانی میکند. برای دریافت رایگان این سیستمعامل به این لینک مراجعه کنید. افزونبراین، میتوانید کالی را بهطور مستقیم یا روی VMWare نصب کنید.
مرحلهی اول: office2john را نصب کنید
برای شروع کار ابتدا باید این ابزار را از گیتهاب دریافت کنید؛ زیرا office2john در نسخهی استاندارد John the Ripper وجود ندارد. ابزار John the Ripper بهطور پیشفرض روی سیستم کالی شما نصب است. این ابزار با wget بهراحتی دریافت میشود.
wget https://raw.githubusercontent.com/magnumripper/JohnTheRipper/bleeding-jumbo/run/office2john.py
--2019-02-05 14:34:45-- https://raw.githubusercontent.com/magnumripper/JohnTheRipper/bleeding-jumbo/run/office2john.py
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.148.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.148.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 131690 (129K) [text/plain]
Saving to: ‘office2john.py’
office2john.py 100%[=======================================================================>] 128.60K --.-KB/s in 0.09s
2019-02-05 14:34:46 (1.45 MB/s) - ‘office2john.py’ saved [131690/131690]
مرحلهی دوم: همه فایلها را در یک مسیر قرار دهید
برای اجرای office2john با پایتون، باید ترمینال را به مسیر نصب آن هدایت کنیم. برای اکثر افراد این مسیر بهطور پیشفرض همان Home است (فقط تایپ کنید cd)؛ اما میتوانید مسیرهایی جدا نیز ایجاد کنید.
پس از این کار، نیاز داریم فایل مناسبی برای آزمایش پیدا کنیم. برای این آزمایش فایلی با نام dummy.docx با ورد ۲۰۰۷ و رمزعبور password123 ساخته و استفاده شد. این فایل را میتوانید از این لینک دریافت کنید. نمونههای ساختهشده با ورد ۲۰۱۰ و ۲۰۱۶ را نیز میتوانید دریافت کنید. رمزعبور تمامی این فایلها password123 است.
مرحلهی سوم: هَش را با office2john استخراج کنید
در این مرحله، هَش فایل رمزگذاریشده را باید استخراج کنیم. دستور زیر را اجرا کنید و خروجی در hash.txt برای استفادهی آتی ذخیره میشود.
python office2john.py dummy.docx > hash.txt
برای تأیید موفقیت عملیات استخراج از دستور cat استفاده کنید. میتوانید هش استخراجشده از فایل ورد ۲۰۰۷ را در خط دوم مشاهده کنید.
cat hash.txt
dummy.docx:$office$*۲۰۰۷*20*128*16*a7c7a4eadc2d90fb22c073c6324b6b49*abc5f80409f5f96f97e184e44aacd0b7*930b0c48a7eb5e13a57af4f3030b48e9402b6870
مرحلهی چهارم: هَش استخراجشده را کرک کنید
در این مرحله، باید هشی را کرک کنیم که از فایل آفیس استخراج کردهایم. همانطور که ابتدای مقاله اشاره کردیم، دو ابزار برای این کار وجود دارد که هر دو کاملا عالی کار میکنند و هیچکدام درمقایسهبا دیگری برتری ندارد و انتخاب بین آنها کاملا سلیقگی است.
روش اول: John the Ripper
نشانهی --wordlist را برابر مکان فهرست کلمات خود قرار دهید. بدیهی است برای رمزعبورهای دشوارتر و پیچیدهتر به بانکهای غنیتری نیاز خواهید داشت.
john --wordlist=/usr/share/wordlists/nmap.lst hash.txt
Using default input encoding: UTF-8
Loaded 1 password hash (Office, ۲۰۰۷/۲۰۱۰/2013 [SHA1 128/128 SSE2 4x / SHA512 128/128 SSE2 2x AES])
Cost 1 (MS Office version) is ۲۰۰۷ for all loaded hashes
Cost 2 (iteration count) is 50000 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
این ابزار کرک را شروع میکند و بهدنبال مورد مطابق میگردد. هرچه پیچیدگی رمز بیشتر باشد، زمان بیشتری نیاز است. برای مشاهدهی وضعیت ابزار کافی است دکمهای را فشار دهید. وقتی عملیات تمام شود، رمز یافتشده روی صفحهنمایش نشان داده خواهد شد. بهدلیل رمزعبور سادهی فایل استفادهشده، این عمل تنها چند ثانیه طول کشد.
password123 (dummy.docx)
1g 0:00:00:03 DONE (2019-02-05 15:00) 0.2824g/s 415.8p/s 415.8c/s 415.8C/s lacoste..cooldude
Use the "--show" option to display all of the cracked passwords reliably
Session completed
امکان نمایش با استفاده از --show نیز وجود دارد و بهصورت زیر است:
john --show hash.txt
dummy.docx:password123
1 password hash cracked, 0 left
روش دوم: Hashcat
روش دوم استفاده از Hashcat است. برای شروع میتوانید از منوِ راهنمای این ابزار (--help) بهره ببرید. این راهنما اطلاعات کاملی از نحوهی کار و امکانات این ابزار دراختیارتان قرار میدهد