چگونه فایلهای رمزدار مایکروسافت آفیس را بازکنیم؟
فایلهای مایکروسافت آفیس میتوانند با رمز ایمن شوند تا از دسترسی غیرمجاز و دستکاری دادهها مصون بمانند. بااینحال، اسناد رمزگذاریشده بهوسیلهی نسخههای قدیمیتر آفیس مشکل امنیتی دارند و هَشهای (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.pyResolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.148.133Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.148.133|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 131690 (129K) [text/plain]Saving to: ‘office2john.py’office2john.py 100%[=======================================================================>] 128.60K --.-KB/s in 0.09s2019-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-8Loaded 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 hashesCost 2 (iteration count) is 50000 for all loaded hashesWill run 4 OpenMP threadsPress '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..cooldudeUse the "--show" option to display all of the cracked passwords reliablySession completed
امکان نمایش با استفاده از --show نیز وجود دارد و بهصورت زیر است:
john --show hash.txt
dummy.docx:password1231 password hash cracked, 0 left
روش دوم: Hashcat
روش دوم استفاده از Hashcat است. برای شروع میتوانید از منوِ راهنمای این ابزار (--help) بهره ببرید. این راهنما اطلاعات کاملی از نحوهی کار و امکانات این ابزار دراختیارتان قرار میدهد.
hashcat --help
در این آزمایش، ما فقط به حالتهای هَش مایکروسافت آفیس نیاز داریم. نزدیک انتهای منوِ راهنما، تنظیمات مربوطبه حالتهای مایکروسافت آفیس و شمارههای مرتبط با آن را مشاهده میکنیم. برای مثال، شماره ID مربوطبه فایل آفیس ۲۰۰۷ عدد ۹۴۰۰ است.
9700 | MS Office <= ۲۰۰۳ $0/$1, MD5 + RC4 | Documents9710 | MS Office <= ۲۰۰۳ $0/$1, MD5 + RC4, collider #1 | Documents9720 | MS Office <= ۲۰۰۳ $0/$1, MD5 + RC4, collider #2 | Documents9800 | MS Office <= ۲۰۰۳ $3/$4, SHA1 + RC4 | Documents9810 | MS Office <= ۲۰۰۳ $3, SHA1 + RC4, collider #1 | Documents9820 | MS Office <= ۲۰۰۳ $3, SHA1 + RC4, collider #2 | Documents9400 | MS Office ۲۰۰۷ | Documents9500 | MS Office ۲۰۱۰ | Documents9600 | MS Office 2013 | Documents
حال میتوان سایر تنظیمات را با دستورهای زیر اعمال کرد:
hashcat -a 0 -m 9400 --username -o cracked_pass.txt hash.txt /usr/share/wordlists/nmap.lst
درنهایت، با ورود فایل hash.txt که حاوی هَش فایل ما است و یک بانک لغات، Hashcat شروع به کرک میکند.
hashcat (v5.1.0) starting...* Device #2: Not a native Intel OpenCL runtime. Expect massive speed loss. You can use --force to override, but do not report related errors.OpenCL Platform #1: Intel(R) Corporation========================================* Device #1: Intel(R) Core(TM) i5 CPU M 480 @ 2.67GHz, 934/3736 MB allocatable, 4MCU...
پس از گذشت زمان متناسب با پیچیدگی رمز فایل، Hashcat رمز را پیدا و آن را در فایل خروجی چاپ میکند.
Session..........: hashcatStatus...........: CrackedHash.Type........: MS Office ۲۰۰۷Hash.Target......: $office$*۲۰۰۷*20*128*16*a7c7a4eadc2d90fb22c073c6324...2b6870Time.Started.....: Tue Feb 5 15:08:00 2019 (4 secs)Time.Estimated...: Tue Feb 5 15:08:04 2019 (0 secs)Guess.Base.......: File (/usr/share/wordlists/nmap.lst)Guess.Queue......: 1/1 (100.00%)Speed.#۱.........: 610 H/s (8.51ms) @ Accel:512 Loops:128 Thr:1 Vec:4Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) SaltsProgress.........: 2048/5084 (40.28%)Rejected.........: 0/2048 (0.00%)Restore.Point....: 0/5084 (0.00%)Restore.Sub.#۱...: Salt:0 Amplifier:0-1 Iteration:49920-50000Candidates.#۱....: #!comment: ***********************IMPORTANT NMAP LICENSE TERMS************************ -> PrincessStarted: Tue Feb 5 15:07:50 2019Stopped: Tue Feb 5 15:08:05 2019
محتویات فایل خروجی را میتوانید با استفاده از cat ببینید. رمز یافتشده در انتهای فایل و پس از هَش قرار دارد.
cat cracked_pass.txt
$office$*۲۰۰۷*20*128*16*a7c7a4eadc2d90fb22c073c6324b6b49*abc5f80409f5f96f97e184e44aacd0b7*930b0c48a7eb5e13a57af4f3030b48e9402b6870:password123
استفاده از دو روش مختلف برای کرک هَش بهدستآمده از ابزار office2john را یاد گرفتیم.
چگونه فایلهای خود را ایمن نگهداریم؟
همیشه برای مقابله با شکستن رمزها، بهترین راه انتخاب رمزی مناسب است. رمز مناسب رمزی است که طولانی و حدسنزدنی باشد. ترکیبی از حروف کوچکوبزرگ و اعداد و علائم خاص بهترین گزینه برای رمز قوی و مطمئن است. رمزعبور هرچه طولانیتر باشد، بهتر است؛ زیرا احتمال کرکشدن آن ازطریق سیستمهای حدس رمز تقریبا به صفر میرسد.
در نظر بگیرید این آسیبپذیری در نسخههای ۲۰۱۶ و ۲۰۱۹ مایکروسافت آفیس وجود ندارد؛ پس، بهتر است هرچهسریعتر آفیس خود را بهروزرسانی کنید. درضمن، فایلهای قدیمی شما که با نسخههای قبلی ساختهشدهاند، همچنان آسیبپذیرند. استفاده از روشهای رمزنگاریهای دیگر نیز میتواند امنیت فایلهای شما را تضمین کنند.
جمعبندی
در این مقاله، متوجه شدیم فایلهای رمزنگاریشدهی مایکروسافت آفیس چندان هم امن نیستند. از ابزار office2john میتوان هَش فایلها را استخراج و با ابزارهایی نظیر John the Ripper و Hashcat آن را کرک کرد. در انتها نیز با روشهای مقابله با این آسیبپذیری آشنا شدیم. نکات این بخش را رعایت کنید تا خیالتان از بابت امنیت اسناد آفیس راحت شود.
دیدگاه شما درباره این باگ مایکروسافت آفیس چیست؟ این باگ را چقدر جدی میدانید؟ برای امنکردن اسناد خود چه کارهایی انجام میدهید؟ دیدگاهها و تجربههای خود را با ما بهاشتراک بگذارید.