Kısa cevap “hepsi”, hemen anlatıyorum.
- Kendi araçlarınızı yazmak
- Yazılmış araçları anlamak
- Kaynak kod analizi çalışmaları
Kendi aracınızı yazmak için
Kendinizi rahat hissettiğiniz herhangi bir dil olur. Python
ile yazılmış çok sayıda hazır araç olması, kütüphanelerinin bolluğu ve hemen
her konuda en az bir blog yazısı bulabiliyor olmanız kendi araçlarınızı yazmak
için Python’u tercih etmenize neden olabilir.
Keylogger nasıl yazılır?
Bir keylogger yazılımına ihtiyacımız olduğunu varsayalım,
kod aşağıdaki gibi olabilir.
Nasıl çalıştığına bakacak olursak; herhangi bir tuşa basılması
durumunda bu tuşun bilgisini “kayitlar.txt” isimli bir dosyaya kaydedecek. “Listener”
özelliğiyle de yeni tuş hareketlerini “dinleyecek. Bu kod geliştirilebilir ama
en temel haliyle işimizi görebilir.
Aynı şeyi C’de, Go’da, Ruby’de veya aklınıza gelen herhangi
bir yazılım dilinde de yazabilirsiniz. Önemli olan size kolay gelen, sevdiğiniz
ve takıldığınız noktada kaynak bulabileceğiniz bir dil olmasıdır.
Yazılmış Araçları Anlamak İçin
Sızma testi veya CTF sırasında bir istismar kodu
bulduğunuzu düşünelim, elbette kodu okumadan çalıştırmayacaksınız. Okurken
gözünüze aşağıdaki kısım çarpıyor.
Ne ki bu? Hex encode edilmiş kısmı çözersek acı gerçekle
karşılaşıyoruz:
Evet, root yetkileriyle çalıştırdıysanız bütün
bilgisayarınız, değilse “home” dizini üzücü şekilde silecek bir kod parçacığı.
Bu nedenle istismar kodları veya açık kaynak “hacking
araçları” kullanılmadan önce mutlaka incelenmelidir.
İstismar kodlarının ve araçların yazıldığı dillere bakarsak
genelde karşımıza C, Python, Perl ve son zamanlarda artan Go çıkacaktır.
Bunların en azından ne demek istediğini, fonksiyonların işlevleri, hangi
kütüphaneleri çağırdıkları ve varsa, dışarıda nereye hangi bilgileri/istekleri
gönderdiklerini anlayabilecek kadar bu dilleri bilmek lazım.
Kaynak kod analizi
Uygulamanın veya basit bir Javascript kütüphanesinin kodunu
okumak hedef hakkında önemli ipuçlarının yanında var olan güvenlik açıklarını
da gösterir. Bu nedenle php, javascript veya .Net gibi yaygın olarak kullanılan
web uygulama dillerine aşina olmak faydalı olacaktır.
Kendi araçlarınızı yazmak için kullanacağınız dile anadil diyelim.
Yabancı dilleriniz de C, Go, PHP ve Javascript olsun. Anadilinizi iyi,
diğerlerini de en azından ne anlatıldığını anlayacak kadar öğrenmeniz
gerekiyor.
LinkedIn’de yazılımcı arkadaşların “framework soruyorlar”
diye isyan ettiğine şahit oluyorum. Peki biz ne yapalım?