چگونه فایل‌های رمزدار مایکروسافت آفیس را بازکنیم؟

چگونه فایل‌های رمزدار مایکروسافت آفیس را بازکنیم؟

فایل‌های مایکروسافت آفیس می‌توانند با رمز ایمن شوند تا از دسترسی غیرمجاز و دست‌کاری داده‌ها مصون بمانند. بااین‌حال، اسناد رمزگذاری‌شده به‌وسیله‌ی نسخه‌های قدیمی‌تر آفیس مشکل امنیتی دارند و هَش‌های (Hash) آن‌ها می‌تواند با برنامه‌ی ساده office2john استخراج شود. همچنین، ابزارهایی نظیر John the Ripper و Hashcat می‌توانند هَش‌های استخراج‌شده را کرک کنند.

مقاله‌های مرتبط:

استخراج هَش از فایل مایکروسافت آفیس با ابزار office2john فقط چند ثانیه طول می‌کشد. استاندارد رمزنگاری محصولات آفیس طی سال‌ها تغییر کرده؛ اما هیچ‌کدام از آن‌ها در مقابل office2john امن نیستند.

این ابزار به زبان پایتون نوشته شده و فقط از ترمینال اجراشدنی است. این ابزار روی نرم‌افزارهای ورد، اکسل، پاورپوینت، وان‌نوت، پراجکت، اکسس و اوت‌لوک نسخه‌های ۹۷، ۲۰۰۰، ۲۰۰۳، ۲۰۰۷، ۲۰۱۰ و ۲۰۱۳ روی ویندوز و مک، کاربردی است. البته، office2john روی نسخه‌های جدیدتر ۲۰۱۶ و ۲۰۱۹ کار نمی‌کند.

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

نصب کالی

Kali Linux

این آموزش برای سیستم‌عامل کالی (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

--۲۰۱۹-۰۲-۰۵ ۱۴:۳۴:۴۵-- 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

۲۰۱۹-۰۲-۰۵ ۱۴:۳۴:۴۶ (۱.۴۵ 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$*۲۰۰۷*۲۰*۱۲۸*۱۶*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, ۲۰۰۷/۲۰۱۰/۲۰۱۳ [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)
۱g 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

۱ password hash cracked, 0 left

روش دوم: Hashcat

روش دوم استفاده از Hashcat است. برای شروع می‌توانید از منوِ راهنمای این ابزار (–help) بهره ببرید. این راهنما اطلاعات کاملی از نحوه‌ی کار و امکانات این ابزار دراختیارتان قرار می‌دهد.

hashcat --help

در این آزمایش، ما فقط به حالت‌های هَش مایکروسافت آفیس نیاز داریم. نزدیک انتهای منوِ راهنما، تنظیمات مربوط‌به حالت‌های مایکروسافت آفیس و شماره‌های مرتبط با آن را مشاهده می‌کنیم. برای مثال، شماره ID مربوط‌به فایل آفیس ۲۰۰۷ عدد ۹۴۰۰ است.

۹۷۰۰ | MS Office <= ۲۰۰۳ $۰/$۱, MD5 + RC4 | Documents
۹۷۱۰ | MS Office <= ۲۰۰۳ $۰/$۱, MD5 + RC4, collider #1 | Documents
۹۷۲۰ | MS Office <= ۲۰۰۳ $۰/$۱, MD5 + RC4, collider #2 | Documents
۹۸۰۰ | MS Office <= ۲۰۰۳ $۳/$۴, SHA1 + RC4 | Documents
۹۸۱۰ | MS Office <= ۲۰۰۳ $۳, SHA1 + RC4, collider #1 | Documents
۹۸۲۰ | MS Office <= ۲۰۰۳ $۳, SHA1 + RC4, collider #2 | Documents
۹۴۰۰ | MS Office ۲۰۰۷ | Documents
۹۵۰۰ | MS Office ۲۰۱۰ | Documents
۹۶۰۰ | MS Office 2013 | Documents

حال می‌توان سایر تنظیمات را با دستورهای زیر اعمال کرد:

hashcat -a 0 -m 9400 --username -o cracked_pass.txt hash.txt /usr/share/wordlists/nmap.lst
  • نشانگر -a نوع حمله را تنظیم می‌کند (مقدار پیش‌فرض ۰).
  • نشانگر -m حالت استفاده‌شده را تعیین می‌کند (عددی که پیدا کردیم ۹۴۰۰ برای آفیس ۲۰۰۷).
  • گزینه‌ی –usename هرگونه نام‌ کاربری را در فایل هَش نادیده می‌گیرد.
  • فایل خروجی را با نشانگر -o می‌توان تعیین کرد.

درنهایت، با ورود فایل 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..........: hashcat
Status...........: Cracked
Hash.Type........: MS Office ۲۰۰۷
Hash.Target......: $office$*۲۰۰۷*۲۰*۱۲۸*۱۶*a7c7a4eadc2d90fb22c073c6324...2b6870
Time.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.#۱.........: ۶۱۰ H/s (8.51ms) @ Accel:512 Loops:128 Thr:1 Vec:4
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 2048/5084 (40.28%)
Rejected.........: 0/2048 (0.00%)
Restore.Point....: 0/5084 (0.00%)
Restore.Sub.#۱...: Salt:0 Amplifier:0-1 Iteration:49920-50000
Candidates.#۱....: #!comment: ***********************IMPORTANT NMAP LICENSE TERMS************************ -> Princess

Started: Tue Feb 5 15:07:50 2019
Stopped: Tue Feb 5 15:08:05 2019

محتویات فایل خروجی را می‌توانید با استفاده از cat ببینید. رمز یافت‌شده در انتهای فایل و پس از هَش قرار دارد.

cat cracked_pass.txt
$office$*۲۰۰۷*۲۰*۱۲۸*۱۶*a7c7a4eadc2d90fb22c073c6324b6b49*abc5f80409f5f96f97e184e44aacd0b7*930b0c48a7eb5e13a57af4f3030b48e9402b6870:password123

استفاده از دو روش مختلف برای کرک هَش به‌دست‌آمده از ابزار office2john را یاد گرفتیم.

چگونه فایل‌های خود را ایمن نگه‌داریم؟

همیشه برای مقابله با شکستن رمزها، بهترین راه انتخاب رمزی مناسب است. رمز مناسب رمزی است که طولانی و حدس‌نزدنی باشد. ترکیبی از حروف کوچک‌و‌بزرگ و اعداد و علائم خاص بهترین گزینه برای رمز قوی و ‌مطمئن است. رمزعبور هرچه طولانی‌تر باشد، بهتر است؛ زیرا احتمال کرک‌شدن آن ازطریق سیستم‌های حدس رمز تقریبا به صفر می‌رسد.

در نظر بگیرید این آسیب‌پذیری در نسخه‌های ۲۰۱۶ و ۲۰۱۹ مایکروسافت آفیس وجود ندارد؛ پس، بهتر است هرچه‌سریع‌تر آفیس خود را به‌روزرسانی کنید. درضمن، فایل‌های قدیمی شما که با نسخه‌های قبلی ساخته‌شده‌اند، همچنان آسیب‌پذیرند. استفاده از روش‌های رمزنگاری‌های دیگر نیز می‌تواند امنیت فایل‌های شما را تضمین کنند.

جمع‌بندی

در این مقاله، متوجه شدیم فایل‌های رمزنگاری‌شده‌ی مایکروسافت آفیس چندان هم امن نیستند. از ابزار office2john می‌توان هَش فایل‌ها را استخراج و با ابزارهایی نظیر John the Ripper و Hashcat آن را کرک کرد. در انتها نیز با روش‌های مقابله با این آسیب‌پذیری آشنا شدیم. نکات این بخش را رعایت کنید تا خیالتان از بابت امنیت اسناد آفیس راحت شود.

دیدگاه شما درباره این باگ مایکروسافت آفیس چیست؟ این باگ را چقدر جدی می‌دانید؟ برای امن‌کردن اسناد خود چه کارهایی انجام می‌دهید؟ دیدگاه‌ها و تجربه‌های خود را با ما به‌اشتراک بگذارید.

درباره محمد حسینی راد

چند سالی هست که در دنیای دیجیتال مشغول فعالیتم. کارشناسی ارشد نرم افزار خوندم و از اینکه دارم مطالب مرتبط با زمینه کاری خودم را انتشار می دهم بسیار خرسندم.

نظر بدهید

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