Mật khẩu zipfile Python

Xin chào, tôi đang cố giải nén một tệp, mở nó ở chế độ đọc và in nội dung nhưng tôi gặp sự cố với mật khẩu. Trong đoạn mã dưới đây có các mô tả và các lỗi. Tôi đang sử dụng trăn 3. 7 trên máy tính của tôi. Cảm ơn bạn đã giúp https. //mã số. tự học. com/cx46S2442zJX/?ref=app https. //mã số. tự học. com/cx46S2442zJX/?ref=ứng dụng

Nhận toàn quyền truy cập vào Kiểm tra thâm nhập Python hiệu quả và hơn 60 nghìn tiêu đề khác, với bản dùng thử miễn phí 10 ngày của O'Reilly

Ngoài ra còn có các sự kiện trực tuyến trực tiếp, nội dung tương tác, tài liệu chuẩn bị chứng nhận, v.v.

Giả sử bạn được giao nhiệm vụ điều tra máy tính của kẻ tình nghi và bạn tìm thấy một tệp zip có vẻ rất hữu ích nhưng được bảo vệ bằng mật khẩu. Trong hướng dẫn này, bạn sẽ viết một tập lệnh Python đơn giản để cố bẻ khóa mật khẩu của tệp zip bằng tấn công từ điển

Lưu ý rằng có nhiều công cụ thuận tiện hơn để bẻ khóa các tệp zip trong Linux, chẳng hạn như John the Ripper hoặc fcrackzip [hướng dẫn này chỉ cho bạn cách sử dụng chúng]. Mục tiêu của hướng dẫn này là làm chính xác điều tương tự nhưng với ngôn ngữ lập trình Python

Lấy. Xây dựng 24 công cụ và tập lệnh hack đạo đức bằng sách điện tử Python

Chúng tôi sẽ sử dụng mô-đun zipfile tích hợp sẵn của Python và thư viện tqdm của bên thứ ba để in nhanh các thanh tiến trình

pip3 install tqdm

Như đã đề cập trước đó, chúng tôi sẽ sử dụng tấn công từ điển, có nghĩa là chúng tôi sẽ cần một danh sách từ để bắt buộc tệp zip được bảo vệ bằng mật khẩu này. Đối với hướng dẫn này, chúng tôi sẽ sử dụng danh sách từ big rockyou [với kích thước khoảng 133MB]. Nếu bạn đang dùng Kali Linux, bạn có thể tìm thấy nó trong thư mục /usr/share/wordlists/rockyou. txt. đường dẫn gz. Nếu không, bạn có thể tải xuống tại đây

Bạn cũng có thể sử dụng công cụ crunch để tạo danh sách từ tùy chỉnh của mình khi bạn chỉ định chính xác

Có liên quan. Cách bẻ khóa tệp PDF bằng Python

Mở một tệp Python mới và làm theo

import zipfile
from tqdm import tqdm

Hãy chỉ định tệp zip mục tiêu của chúng tôi cùng với đường dẫn danh sách từ

# the password list path you want to use, must be available in the current directory
wordlist = "rockyou.txt"
# the zip file you want to crack its password
zip_file = "secret.zip"

Để đọc tệp zip trong Python, chúng tôi sử dụng zipfile. Lớp ZipFile có các phương thức để mở, đọc, ghi, đóng, liệt kê và giải nén các tệp zip [chúng tôi sẽ chỉ sử dụng phương thức extractall[] ở đây]

# initialize the Zip File object
zip_file = zipfile.ZipFile[zip_file]
# count the number of words in this wordlist
n_words = len[list[open[wordlist, "rb"]]]
# print the total number of passwords
print["Total passwords to test:", n_words]

Lưu ý rằng chúng tôi đọc toàn bộ danh sách từ và sau đó chỉ lấy số lượng mật khẩu để kiểm tra. Điều này có thể hữu ích cho tqdm để chúng tôi có thể theo dõi chúng tôi đang ở đâu trong quá trình cưỡng bức. Đây là phần còn lại của mã

with open[wordlist, "rb"] as wordlist:
    for word in tqdm[wordlist, total=n_words, unit="word"]:
        try:
            zip_file.extractall[pwd=word.strip[]]
        except:
            continue
        else:
            print["[+] Password found:", word.decode[].strip[]]
            exit[0]
print["[!] Password not found, try other wordlist."]

Có liên quan. Xây dựng 24 công cụ và tập lệnh hack đạo đức bằng sách điện tử Python

Vì danh sách từ bây giờ là trình tạo Python, nên việc sử dụng tqdm sẽ không cung cấp nhiều thông tin về tiến trình. Đó là lý do tại sao tôi đã giới thiệu tham số tổng để cung cấp cho tqdm cái nhìn sâu sắc về số lượng từ trong tệp

Chúng tôi mở danh sách từ và đọc từng từ một, đồng thời thử dùng nó làm mật khẩu để giải nén tệp zip; . Kết quả là chúng ta sử dụng phương thức strip[] để loại bỏ các khoảng trắng

Phương thức extractall[] sẽ đưa ra một ngoại lệ bất cứ khi nào mật khẩu không chính xác, vì vậy chúng ta có thể chuyển sang mật khẩu tiếp theo, trong trường hợp đó. Nếu không, chúng tôi in đúng mật khẩu và thoát khỏi chương trình

Tôi đã chỉnh sửa mã một chút để chấp nhận các tệp zip và wordlist từ các đối số dòng lệnh. Kiểm tra nó ở đây

Kiểm tra kết quả của tôi

root@rockikz:~# gunzip /usr/share/wordlists/rockyou.txt.gz
root@rockikz:~# python3 zip_cracker.py secret.zip /usr/share/wordlists/rockyou.txt
Total passwords to test: 14344395
  3%|▉                            | 435977/14344395 [01:15

Chủ Đề