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<40:55, 5665.23word/s]
[+] Password found: abcdef12345

TUYÊN BỐ MIỄN TRỪ TRÁCH NHIỆM. Sử dụng tập lệnh này cho tệp bạn có quyền truy cập. Mặt khác, chúng tôi không chịu trách nhiệm cho bất kỳ hành vi lạm dụng nào

Như bạn có thể thấy, tôi đã tìm thấy mật khẩu sau khoảng 435K lần thử, mất khoảng một phút trên máy của tôi. Lưu ý danh sách từ rockyou có hơn 14 triệu từ là mật khẩu được sử dụng thường xuyên nhất được sắp xếp theo tần suất

Được rồi, chúng tôi đã tạo thành công một tập lệnh đơn giản nhưng hữu ích để bẻ khóa mật khẩu tệp zip. Cố gắng sử dụng nhiều danh sách từ lớn hơn nếu bạn không bẻ khóa được bằng danh sách này

Nếu bạn muốn tạo mật khẩu mạnh, hãy đảm bảo bạn sử dụng trình tạo mật khẩu

Tôi rất khuyến khích bạn sử dụng nhiều luồng để bẻ khóa mật khẩu nhanh hơn nhiều. Nếu bạn thành công trong việc này, vui lòng chia sẻ kết quả của bạn với chúng tôi trong phần bình luận bên dưới

Cuối cùng, trong Ethical Hacking with Python EBook, chúng tôi đã xây dựng nhiều công cụ bẻ khóa mật khẩu khác nhau, bao gồm cả công cụ bẻ khóa tệp ZIP này. Bạn có thể kiểm tra nó ở đây để biết thêm chi tiết;

Làm cách nào để đặt mật khẩu cho zipfile trong Python?

Làm cách nào để bảo vệ tệp zip bằng mật khẩu trong Python? .
đường dẫn tệp src (chuỗi)
đường dẫn tiền tố tệp src (chuỗi) hoặc Không có (đường dẫn để thêm vào tệp)
đường dẫn tệp dst (chuỗi)
mật khẩu (chuỗi) hoặc Không có (để tạo zip không có mật khẩu)
compress_level(int) between 1 to 9, 1 (more fast) <—> 9 (more compress) or 0 (default).

Mật khẩu của bạn có thể bảo vệ tập lệnh Python không?

mật khẩu bảo vệ công cụ tập lệnh chỉ bảo vệ mã nguồn Python nên tập lệnh phải được nhúng trước. Nhấp chuột phải vào công cụ và chọn Đặt mật khẩu. Trên hộp thoại Đặt mật khẩu, nhập lại giá trị cho Mật khẩu mới và giá trị tương tự một lần nữa cho Xác nhận mật khẩu mới, sau đó bấm OK.

Làm cách nào để thêm mật khẩu trong Python?

Điều kiện chính để xác thực mật khẩu. .
Tối thiểu 8 ký tự
Bảng chữ cái phải nằm trong khoảng từ [a-z]
Ít nhất một bảng chữ cái phải là Chữ hoa [A-Z]
Ít nhất 1 số hoặc chữ số trong khoảng [0-9]
Ít nhất 1 ký tự từ [ _ hoặc @ hoặc $ ]

Làm cách nào để đọc zipfile bằng Python?

Để làm việc trên các tệp zip bằng python, chúng tôi sẽ sử dụng mô-đun python có sẵn có tên zipfile. .
từ zipfile nhập ZipFile. ZipFile là một lớp mô-đun zipfile để đọc và ghi các tệp zip. .
với ZipFile(file_name, 'r') dưới dạng zip. .
khóa kéo. printdir().
khóa kéo. giải nén ()