1. Malware Nedir ve Ne İşe Yarar?
Malware (zararlı yazılım), bilgisayar sistemlerine, ağlara veya kullanıcılara çakmak, casusluk yapmak veya sağlam vurgun yapmak için kullanılan araçların genel adıdır. İşlevleri şöyle uzar gider:
- Veri çekmek,
- Klavyeyi dinlemek (keylogger),
- Makineyi şifreleyip fidye istemek (ransomware),
- Arkakapı (backdoor) oluşturup gizlice içeri girmek... diye gidebilir.
2. Peki Bu İşler Hangi Dillerle Yazılır?
Öncelikle kernel seviyesine inebileceğimiz, en ufak şeye kütüphane eklemeyeceğimiz ve derlenen (compiled) dillere ihtiyacımız var. Yorumlanan diller (Python, Java falan) çok masum kalır, hem tespit edilmesi kolaydır. O yüzden tercihimiz şunlar:- C / C++ (Klasik, sağlam, her yerde çalışır)
- Rust (Bellek güvenliği manyağı, son zamanların gözdesi)
- Go (Golang) (Concurrency mevzusunda çok başarılı, tek binary çıkarır)
- Assembly (ASM) (En dibe inersin, kimse ne olduğunu anlamaz)
3. API Çağrılarında Altın Kural: Az Ateş, Az Duman
API çağrıları ne kadar az RAM'de gözükürse, bizim için o kadar iyi olur. Çünkü böylece EDR veya XDR'lere yakalanmayız.Her yaptığımız CreateRemoteThread veya WriteProcessMemory çağrısı, güvenlik yazılımlarının kancaladığı (hook) noktalardır. Ne kadar az API çağırırsak, o kadar az iz bırakırız. Mümkünse direkt syscall yaparak kullanıcı modundaki hook'lardan sıyrılırız.
4. Düşmanı Tanımak: AV, EDR ve XDR Nedir?
Kodlamaya başlamadan önce, bizi tespit edecek sistemleri tanıyalım.4.1. AV (Antivirüs) - Geleneksel Güvenlik
Herkesin bildiği klasik antivirüslerdir. Dosyaların imzalarına (bilinen zararlıların veri tabanına) bakarak çalışır. Bilinen tehditleri engeller ama yeni nesil, şifrelenmiş veya sıfır gün saldırılarda yetersiz kalabilir. Bunlar pastane işi yani.4.2. EDR (Endpoint Detection and Response)
Uç nokta (bilgisayar/sunucu) düzeyinde sadece dosyalara değil, davranışlara da bakar. Şüpheli bir süreç veya komut çalıştırıldığında bunu tespit eder ve kaydeder. Yani sadece dosya ismine değil, "Bu powershell neden banka sitelerine veri gönderiyor?" diye sorgular.4.3. XDR (Extended Detection and Response)
EDR'ın abisi, genişletilmiş halidir. Sadece bilgisayarları değil; ağ trafiğini, bulut altyapısını ve e-posta sunucularını tek bir merkezden izleyerek büyük resmi görmeyi sağlar. Genelde sunucularda kullanılır. Bizi bir yerden yakalarsa, diğer açığımızdan tutar.5. Kalıcılık (Persistence) Sağlamak Şart!
Bir backdoor yazdık diyelim, arkada çalışıyor. Eğer sistem yöneticisi bunu kapatırsa ne olur? İşte olası arızalarda hacker koltuğunu kaybetmemeli. Process'den geçici düşebilirsin ama kendini Registry üzerine kayıt ediyorsan veya Görev Zamanlayıcısı'na (Task Scheduler) yeniden başlatılma eklediysen, virüs gene ayağa kalkar.Nasıl yaparız?
- Registry üzerine kayıt: Bilgisayar açılışında çalışacak şekilde Run anahtarlarına ekleriz.
- Service (Servis) olarak kayıt: Kendini bir Windows servisi gibi gösterir. Çökerse otomatik yeniden başlar.
- Görev Zamanlayıcı: 5 dakikada bir veya kullanıcı oturum açtığında tetiklenir.
6. Kalıcılık Sonrası Sırada Ne Var?
Kalıcılık sağlandı, tamam. Geriye şunlar kaldı:- Yetki Atlama (Privilege Escalation): Sistemde daha yüksek yetkilere sahip olmak.
- Tersine Mühendisliği Engellemek: Debugger'lara veya statik analiz araçlarına yakalanmamak.
- AMSI.dll'yi Kör Etmek: Windows'un önemli parçası olan bu DLL, PowerShell ve .NET tabanlı zararlıları tarar. EDR'ler ve AV'lerin gözünü burada kör ederiz.
- ETW'lere Saldırı (Event Tracing for Windows): Windows'un olay günlüğü mekanizmalarını devre dışı bırakır veya logları temizleriz.
UAC Bypass Nasıl Yapılır?
cmstp.exe manipüle edilerek kendimizi yönetici olarak çalıştırabiliriz. Amaç, o Windows'ta çıkan gereksiz "Bu uygulama cihazınızda değişiklik yapmasını istiyor musunuz?" uyarısını engellemek. Bunu yaptıktan sonra her şeyin arkasına (algoritmanın aşağısına biraz) istersen gene loop içinde bir thread koy, istersen hemen altına devam et.7. Saldırının Asıl Amacı: C2 Server ve Process Sızma
Bunlardan sonra genelde Ransomware'ler ransomware'liğini, Backdoor'lar backdoor'luğunu yapacak. Ama ben burada size (Registry'e kendini ekleyen ransom olmaz) process ile sızma yöntemlerinden birkaçını anlatacağım. Ki C2 Server'ınıza victim'leri ekleyebilesiniz.Genelde malware'lar kendi içinde shellcode çalıştırır. Bu, kendi kitabını okula açıp üzerine karalamak gibidir. Ama bu bazen aptalık olabilir çünkü doğrudan dosyaya yazmak kolay tespit edilir.
8. Process Hollowing (İçi Boşaltma)
Bunun için geliştirilen yöntemlerden biri Process Hollowing'dir. Şimdi arkadaşınızın kitabını alıp karalayıp ona geri verdiğinizi düşünün.Yani shellcode'u meşru bir servise veya arkada çalışan başka uygulamalara sokabiliriz. Ama bunu da dikkatli yapmamız gerekir, yoksa XDR tarafından yakalanırız.
9. Process Hypnosis (Hipnoz)
Bunun içinde Hypnosis denen bir yöntem geliştirildi. Benzer mantık, gene shellcode'u başka bir şeye yükleyip aradan çekileceğiz.Çalışma Prensibi: Zararlı yazılım, hata ayıklama (debugging) mekanizmalarını ve hafıza izinlerini değiştirerek meşru bir Windows işlemine (örneğin; csc.exe) kendi zararlı kodunu yansıtır veya enjekte eder.
Gizlilik Sağlama: Güvenlik yazılımları, genellikle zararlı görünen kendi başına çalışan .exe dosyalarını tarar. Ancak Process Hypnosis tekniğinde kod, güvenilir bir Microsoft sürecinin içinde çalışır gibi göründüğü için antivirüsler tarafından fark edilmez.
10. Process Ghosting (Hayalet Süreç) - Açık Ara Favorim!
Buna benzer bir yöntem daha var: Ghost Process veya tam adıyla Process Ghosting.Hatta açık ara benim favorimdir kendisi. Nasıl çalışır?
- Zararlı yazılım, hedef işletim sisteminde geçici ve boş bir dosya oluşturur.
- Dosya açılır açılmaz, işletim sistemine "kapatıldığında bu dosyayı sil" komutu verilir (FILE_FLAG_DELETE_ON_CLOSE).
- İşaretlenen bu silinme sürecindeki (delete-pending) dosyanın içine zararlı kod (payload) enjekte edilir.
- EDR'ler, XDR'ler olan biteni görür ama "Ne var canım, silinecek dosya işte" deyip geçer. Tam bir açık!
Bu da Windows'un PE algısını takla ettirip 9 farklı boyuta çift futbol maçı yapmaya benzer, ama daha karışık tabi.
11. Sırada Ne Var?
Bir dahaki sefere Rust ile nasıl yazılacağını anlatacağım ve C2 Server nedir, nasıl kurulur, victim'ler nasıl bağlanır... onları anlatacağım. Yeter ki eve gelelim, tamam mı?
Son düzenleme: