Các tệp Microsoft Office có thể được bảo vệ bằng mật khẩu để tránh giả mạo và đảm bảo tính toàn vẹn dữ liệu. Nhưng các tài liệu được bảo vệ bằng mật khẩu từ các phiên bản trước của Office dễ bị trích xuất băm bằng một chương trình đơn giản gọi là office2john. Những băm được trích xuất sau đó có thể được bẻ khóa bằng John the Ripper và Hashcat.

Trích xuất hàm băm từ tệp Microsoft Office được bảo vệ bằng mật khẩu chỉ mất vài giây với công cụ office2john . Mặc dù tiêu chuẩn mã hóa trên các sản phẩm Office khác nhau dao động trong suốt nhiều năm, nhưng không ai trong số họ có thể đứng vững trước khả năng ăn cắp băm của office2john.

Công cụ này được viết bằng Python và có thể chạy ngay từ terminal . Về khả năng tương thích Office, nó được biết là hoạt động trên mọi tệp được bảo vệ bằng mật khẩu từ Word, Excel, PowerPoint, OneNote, Project, Access và Outlook được tạo bằng Office 97 , Office 2000 , Office XP , Office 2003 , Office 2007 , Office 2010 và Office 2013 , bao gồm các phiên bản Office cho Mac . Nó có thể không hoạt động trên các phiên bản Office mới hơn, tuy nhiên, chúng tôi đã lưu DOCX trong Office 2016 được gắn nhãn là Office 2013.

Bước 1 Cài đặt Office2John

Để bắt đầu, chúng tôi sẽ cần tải xuống công cụ từ GitHub vì office2john không được bao gồm trong phiên bản tiêu chuẩn của John the Ripper (đã được cài đặt trong hệ thống Kali của bạn). Điều này có thể dễ dàng được thực hiện với 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]

Bước 2 Đảm bảo mọi thứ trong cùng một thư mục

Để chạy office2john với Python , chúng ta sẽ cần thay đổi vào cùng thư mục mà nó đã được cài đặt. Đối với hầu hết các bạn, đây sẽ là Trang chủ theo mặc định (chỉ cần nhập cd ), nhưng hãy thoải mái tạo một thư mục riêng.

Tiếp theo, chúng tôi cần một tệp thích hợp để kiểm tra điều này. Tôi đang sử dụng một tệp DOCX đơn giản có tên “dummy.docx” mà tôi đã tạo và bảo vệ bằng mật khẩu với Word 2007. Tải xuống để làm theo. Mật khẩu là “password123” như bạn sẽ tìm ra. Bạn cũng có thể tải xuống các tài liệu được tạo bằng Word 2010 và Word 2016 (hiển thị như năm 2013) để sử dụng cho nhiều ví dụ hơn. Mật khẩu cho những người cũng là “password123.”

Bước 3 Trích xuất Hash bằng Office2john

Điều đầu tiên chúng ta cần làm là trích xuất hàm băm của tệp Office được bảo vệ bằng mật khẩu. Chạy lệnh sau và chuyển đầu ra thành “hash.txt” để sử dụng sau.

~# python office2john.py dummy.docx > hash.txt

Để xác minh rằng hàm băm được trích xuất thành công, hãy sử dụng lệnh cat . Chúng ta có thể thấy rằng hàm băm tôi đã lưu tương ứng với Microsoft Office 2007. Neat.

~# cat hash.txt

dummy.docx:$office$*2007*20*128*16*a7c7a4eadc2d90fb22c073c6324b6b49*abc5f80409f5f96f97e184e44aacd0b7*930b0c48a7eb5e13a57af4f3030b48e9402b6870

Bước 4 Crack Hash bạn vừa lưu

Giống như đã đề cập, chúng tôi sẽ chỉ cho bạn hai cách để bẻ khóa hàm băm bạn vừa lưu từ tệp Microsoft Office được bảo vệ bằng mật khẩu. Cả hai phương pháp đều hoạt động tốt, vì vậy nó thực sự tùy thuộc vào sở thích.

Lựa chọn 1 Bẻ khóa với John

Đặt cờ –wordlist với vị trí của danh sách từ yêu thích của bạn. Một cái được bao gồm trong Nmap sẽ thực hiện cho các mục đích của chúng tôi ở đây, nhưng đối với các mật khẩu khó hơn, bạn có thể muốn đi với một danh sách từ rộng rãi hơn.

~# john --wordlist=/usr/share/wordlists/nmap.lst hash.txt

Using default input encoding: UTF-8
Loaded 1 password hash (Office, 2007/2010/2013 [SHA1 128/128 SSE2 4x / SHA512 128/128 SSE2 2x AES])
Cost 1 (MS Office version) is 2007 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

John sẽ bắt đầu bẻ khóa, và tùy thuộc vào độ phức tạp của mật khẩu, sẽ kết thúc khi tìm thấy kết quả khớp. Nhấn gần như bất kỳ phím nào để xem trạng thái hiện tại. Khi băm bị bẻ khóa, một thông báo sẽ được hiển thị trên màn hình với mật khẩu của tài liệu: Vì mật khẩu của chúng tôi khá đơn giản, chỉ mất vài giây để bẻ khóa nó.

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

Chúng ta cũng có thể sử dụng tùy chọn –show để hiển thị nó, như vậy:

~# john --show hash.txt

dummy.docx:password123

1 password hash cracked, 0 left

Bây giờ chúng ta đã biết một phương pháp bẻ khóa tệp Microsoft Office được bảo vệ bằng mật khẩu, chúng ta hãy xem xét một cách khác bằng cách sử dụng công cụ mạnh mẽ Hashcat .

Tùy chọn 2 Bẻ khóa với Hashcat

Chúng ta có thể bắt đầu bằng cách hiển thị menu trợ giúp ( –help ) cho Hashcat. Điều này sẽ cung cấp cho chúng tôi rất nhiều thông tin bao gồm các tùy chọn sử dụng, chế độ băm và các tính năng khác. Có rất nhiều thông tin ở đây, vì vậy tôi sẽ không hiển thị đầu ra, nhưng bạn nên đi sâu vào nó nếu bạn thực sự muốn biết Hashcat.

~# hashcat --help

Từ đầu ra, chúng tôi chỉ quan tâm đến các chế độ băm của MS Office. Gần cuối menu trợ giúp, chúng ta sẽ tìm thấy các tùy chọn chế độ MS Office và các số tương ứng của chúng. Chúng tôi biết từ hàm băm của mình rằng đây là tệp Office 2007, vì vậy hãy xác định ID số 9400 của nó .

9700 | MS Office <= 2003 $0/$1, MD5 + RC4               | Documents
9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1  | Documents
9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2  | Documents
9800 | MS Office <= 2003 $3/$4, SHA1 + RC4              | Documents
9810 | MS Office <= 2003 $3, SHA1 + RC4, collider #1    | Documents
9820 | MS Office <= 2003 $3, SHA1 + RC4, collider #2    | Documents
9400 | MS Office 2007                                   | Documents
9500 | MS Office 2010                                   | Documents
9600 | MS Office 2013                                   | Documents

Bây giờ chúng ta có thể thiết lập phần còn lại của các tùy chọn bằng cách sử dụng lệnh sau.

~# hashcat -a 0 -m 9400 --username -o cracked_pass.txt hash.txt /usr/share/wordlists/nmap.lst

Các -a cờ đặt kiểu tấn công như chế độ mặc định thẳng của 0 .

Các -m cờ quy định cụ thể chế độ chúng ta muốn sử dụng, mà chúng chỉ được tìm thấy.

Các –username tùy chọn bỏ qua bất kỳ tên người dùng trong tập tin băm.

Chúng tôi có thể chỉ định tệp đầu ra là cracked.txt với cờ -o .

Và cuối cùng, chúng ta có thể chuyển vào hash.txt chứa hàm băm và thiết lập một danh sách từ giống như chúng ta đã làm trước đó.

Hashcat sau đó sẽ bắt đầu bẻ khóa.

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

...

Sau một thời gian trôi qua, trạng thái sẽ hiển thị là bị bẻ khóa và chúng tôi đã sẵn sàng để xem mật khẩu.

Session..........: hashcat
Status...........: Cracked
Hash.Type........: MS Office 2007
Hash.Target......: $office$*2007*20*128*16*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.#1.........:      610 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.#1...: Salt:0 Amplifier:0-1 Iteration:49920-50000
Candidates.#1....: #!comment:  ***********************IMPORTANT NMAP LICENSE TERMS************************ -> Princess

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

Đơn giản chỉ cần mèo ra các tập tin đầu ra quy định, và nó sẽ hiển thị các hash với mật khẩu chữ thô tacked ở cuối dòng.

~# cat cracked_pass.txt

$office$*2007*20*128*16*a7c7a4eadc2d90fb22c073c6324b6b49*abc5f80409f5f96f97e184e44aacd0b7*930b0c48a7eb5e13a57af4f3030b48e9402b6870:password123

Sự thành công! Bây giờ chúng ta đã biết hai phương pháp bẻ khóa hàm băm sau khi giải nén nó từ tệp Microsoft Office được bảo vệ bằng mật khẩu với office2john.

Làm thế nào để bảo vệ chống lại

Khi nói đến việc bẻ khóa mật khẩu dưới bất kỳ hình thức nào, kỹ thuật phòng thủ tốt nhất là sử dụng các thực hành tốt nhất về mật khẩu . Điều này có nghĩa là sử dụng mật khẩu duy nhất dài và không dễ đoán. Nó giúp sử dụng kết hợp chữ hoa và chữ thường, số và ký hiệu, mặc dù nghiên cứu gần đây đã chỉ ra rằng chỉ cần sử dụng các cụm từ dài với entropy cao là vượt trội . Thậm chí tốt hơn là các mật khẩu dài, được tạo ngẫu nhiên khiến việc bẻ khóa chúng gần như không thể.

Liên quan đến cuộc tấn công cụ thể này, sử dụng các tài liệu Microsoft Office 2016 hoặc 2019 hoặc mới hơn có thể không hiệu quả, vì office2john được thiết kế để hoạt động trên các phiên bản Office trước đó. Tuy nhiên, như bạn có thể thấy ở trên, Office 2016 rất có thể nhổ một tài liệu 2013 mà người dùng không hề biết, vì vậy nó không có nghĩa là tệp “mới” không thể bị bẻ khóa. Ngoài ra, vẫn còn nhiều tài liệu Microsoft Office cũ trôi nổi ngoài kia và một số tổ chức tiếp tục sử dụng các phiên bản cũ hơn này, khiến cuộc tấn công này vẫn rất khả thi cho đến ngày nay.

Kết thúc

Hôm nay, chúng tôi đã biết rằng các tệp Microsoft Office được bảo vệ bằng mật khẩu không hoàn toàn an toàn như người ta sẽ tin tưởng. Chúng tôi đã sử dụng một công cụ có tên office2john để trích xuất hàm băm của tệp DOCX và sau đó bẻ khóa hàm băm đó bằng John the Ripper và Hashcat. Các loại tệp này vẫn được sử dụng phổ biến hiện nay, vì vậy nếu bạn bắt gặp một loại có mật khẩu trên đó, hãy yên tâm rằng có một cách để bẻ khóa nó.

Để lại một bình luận