🔓 Brute Force ZIP Password Cracker
Panduan Lengkap Teknik Brute Force untuk File ZIP Terenkripsi
🎯 Apa itu Brute Force?
Brute force adalah teknik dalam keamanan komputer yang mencoba semua kemungkinan kombinasi password atau kunci enkripsi secara sistematis hingga menemukan yang benar. Metode ini seperti mencoba membuka gembok dengan menguji setiap kombinasi angka yang mungkin.
Karakteristik Brute Force:
- Sistematis: Mencoba setiap kemungkinan secara berurutan
- Pasti Berhasil: Jika passwordnya ada dalam range yang dicoba, pasti akan ketemu
- Memakan Waktu: Semakin panjang password, semakin lama prosesnya
- Intensif Sumber Daya: Membutuhkan CPU dan memori yang cukup
📊 Perbandingan Dua Metode
| Aspek | Wordlist Attack | Brute Force Murni |
|---|---|---|
| Kecepatan | Lebih cepat (hanya coba password yang ada di list) | Lebih lambat (coba semua kombinasi) |
| Tingkat Keberhasilan | Tergantung kualitas wordlist | 100% (jika dalam range yang ditentukan) |
| Penggunaan Resource | Rendah hingga sedang | Tinggi sekali |
| Kompleksitas Setup | Mudah (hanya perlu wordlist) | Sedang (perlu tentukan charset & panjang) |
📝 Metode 1: Wordlist Attack
Metode ini menggunakan daftar password yang sudah dibuat sebelumnya (wordlist) untuk mencoba membuka file ZIP. Seperti memiliki kumpulan kunci dan mencoba satu per satu sampai ada yang cocok.
import zipfile
import argparse
import time
def brute_force(zip_path, wordlist_path):
try:
with zipfile.ZipFile(zip_path) as zf:
with open(wordlist_path, 'r', encoding='utf-8', errors='ignore') as f:
start_time = time.time()
attempts = 0
for line in f:
password = line.strip()
attempts += 1
try:
zf.extractall(pwd=password.encode('utf-8'))
elapsed_time = time.time() - start_time
print(f"\n[✓] Password ditemukan: {password}")
print(f"[⏱] Waktu: {elapsed_time:.2f} detik")
print(f"[🔢] Jumlah percobaan: {attempts}")
return True
except:
print(f"[-] Coba ke-{attempts}: {password}")
elapsed_time = time.time() - start_time
print("\n[x] Password tidak ditemukan di wordlist.")
print(f"[⏱] Waktu: {elapsed_time:.2f} detik")
print(f"[🔢] Jumlah percobaan: {attempts}")
except FileNotFoundError:
print("[!] File ZIP atau wordlist tidak ditemukan.")
return False
Cara Kerja Wordlist Attack:
Kelebihan
- Cepat jika password ada di wordlist
- Efisien dalam penggunaan resource
- Cocok untuk password umum
- Mudah dikustomisasi wordlist
Kekurangan
- Terbatas pada wordlist yang dimiliki
- Tidak efektif untuk password unik
- Perlu wordlist berkualitas
- Bisa gagal total jika password tidak ada di list
Cara Menjalankan:
# Simpan code sebagai wordlist_attack.py # Siapkan file wordlist.txt berisi daftar password python wordlist_attack.py namafile.zip wordlist.txt
🔢 Metode 2: Brute Force Murni
Metode ini mencoba semua kemungkinan kombinasi karakter secara sistematis. Mulai dari password 1 karakter, lalu 2 karakter, dan seterusnya sampai panjang maksimum yang ditentukan.
import pyzipper
import itertools
import string
import time
import os
def get_charset(option):
if option == "1":
return string.digits
elif option == "2":
return string.ascii_lowercase
elif option == "3":
return string.ascii_letters
elif option == "4":
return string.ascii_letters + string.digits
else:
print("Pilihan tidak valid.")
exit()
def brute_force(zip_path, charset, max_length):
with pyzipper.AESZipFile(zip_path) as zf:
for length in range(1, max_length + 1):
for pwd in itertools.product(charset, repeat=length):
password = ''.join(pwd)
try:
zf.pwd = password.encode()
zf.extractall(pwd=password.encode())
print(f"\n[✅] Password ditemukan: {password}")
return True
except:
print(f"[-] Mencoba: {password}", end='\r')
print("\n[❌] Password tidak ditemukan.")
return False
Cara Kerja Brute Force Murni:
⚠️ Peringatan Penting
Brute force murni sangat intensif resource! Untuk password 6 karakter alfanumerik, ada 2.2 miliar kemungkinan. Pastikan komputer Anda kuat dan siap menunggu lama.
Kelebihan
- Pasti menemukan password (dalam range)
- Tidak perlu wordlist eksternal
- Sangat sistematis dan terukur
- Bisa disesuaikan charset-nya
Kekurangan
- Sangat lambat untuk password panjang
- Memakan resource komputer besar
- Waktu eksekusi bisa sangat lama
- Tidak praktis untuk password kompleks
Cara Menjalankan:
# Install dependency terlebih dahulu pip install pyzipper # Simpan code sebagai brute_force.py # Jalankan script python brute_force.py # Program akan meminta input: # - Nama file ZIP # - Panjang maksimum password # - Jenis karakter yang digunakan
🛡️ Aspek Keamanan dan Etika
🚨 Penggunaan yang Bertanggung Jawab
Tool ini hanya untuk tujuan edukasi dan recovery file milik sendiri. Menggunakan tool ini untuk membuka file milik orang lain tanpa izin adalah ilegal dan melanggar hukum.
Kapan Boleh Digunakan:
- ✅ Recovery file ZIP milik sendiri yang lupa password
- ✅ Testing keamanan sistem sendiri
- ✅ Pembelajaran dan penelitian akademis
- ✅ Penetration testing dengan izin tertulis
Kapan TIDAK Boleh Digunakan:
- ❌ Membuka file milik orang lain tanpa izin
- ❌ Activities hacking ilegal
- ❌ Melanggar privacy orang lain
- ❌ Aktivitas yang melanggar hukum
💡 Tips dan Optimisasi
Untuk Wordlist Attack:
- Gunakan wordlist berkualitas: Rockyou.txt, SecLists, atau buat sendiri
- Kombinasikan wordlist: Gabungkan beberapa wordlist untuk coverage lebih baik
- Prioritaskan password umum: Letakkan password yang sering digunakan di atas
- Customization: Buat wordlist spesifik berdasarkan target (nama, tanggal, dll)
Untuk Brute Force Murni:
- Mulai dari yang pendek: Coba password pendek dulu (1-3 karakter)
- Pilih charset bijak: Jangan gunakan semua karakter jika tidak perlu
- Multiprocessing: Gunakan beberapa core CPU untuk paralel processing
- Progress tracking: Simpan progress agar bisa dilanjutkan jika terhenti
Optimisasi Umum:
🔍 Kesimpulan
Kedua metode brute force ini memiliki kelebihan dan kekurangan masing-masing. Wordlist attack lebih efisien untuk password umum, sementara brute force murni lebih comprehensive tapi memakan resource besar.
Ingat selalu untuk menggunakan tool ini secara bertanggung jawab dan sesuai dengan hukum yang berlaku. Keamanan siber adalah tanggung jawab bersama! 🛡️
Comments
Post a Comment