Hedef sistem hakkında yeterince bilgi topladıktan sonra, exploitation yani sömürme aşamasına geçiyoruz. Hedef sisteme sızmak için birden fazla yol olabilir. Hangi yolu kullanacağımız, sistemden sisteme değişiklik gösteriyor.
Exploitationun ilk amacı hedef sistem üzerinde oturum elde etmektir. Oturum almak için sistemsel zafiyetleri ya da oltalama tekniklerini kullanabiliriz. Oturum aldıktan sonra, şayet yetkisiz bir kullanıcı haklarında oturum aldıysak haklarımızı yükseltip administrator (eğer ağda varsa domain admin) olmayı hedefliyoruz. Haklarımızı yükselttikten sonra da şayet ağ içerisinde farklı makineler varsa, elde ettiğimiz credentiallar ile diğer makinelere de sızabiliriz.
Exploitation, illa siber saldırılar ile yapılmak zorunda değildir. Hedef sistem üzerinde zafiyet bulunamaması durumunda en zayıf halka olan insan faktörüne saldırılar gerçekleştirebiliriz. Bilinçsiz personellere yönelik bir oltalama saldırısı ile hedef sistem üzerinde zafiyet olmasa bile oturum alabilir ve sisteme sızabiliriz.
Şifre politikaları yeterince güçlü ayarlanmadıysa, hedef sistem üzerindeki kullanıcı hesaplarına brute-force saldırısı uygulayabilir ve şifreleri tahmin etmeye çalışabiliriz.
Eğer hedef domain ile aynı ağ içerisindeysek, ağı dinleyip hassas verileri yakalamayı deneyebiliriz.
Sisteme sızıldıktan ve yetkilerimizi yükselttikten sonra, hedef sistem üzerinde kalıcı olmayı hedefleyebiliriz. Windows üzerinde SAM dosyalarını, Linux üzerinde ise /etc/passwd ve /etc/shadow dosyalarını kullanarak sistem üzerindeki parolaları kırmaya çalışabiliriz. Bunların yanında, kalıcı olmak için sisteme kendimiz için RDP ve SSH yetkilerine sahip için bir admin kullanıcısı da ekleyebiliriz.
Örneğin akşam evde çöpü çıkarmadınız. Eşiniz ya da anneniz size hiç bir işe yaramadığınızla ilgili bir ton söylenmeye başladı. Belirli bir söz işittikten sonra istemsiz bir şekilde kalkıp o çöpü dökmeye gidiyorsunuz. Bu beyninizle aldığınız bir karar değildi.
Buffer overflowun da mantığı kabaca bu şekildedir. Programlar sizden input istediğinde, programa kaldırabileceğinden fazla input girmeniz halinde program crash verecektir. Ancak crash vermesi istediğimiz bir şey değil. Bizim istediğimizi de yapacak kıvama gelmesi gerekir. EIP değerini ESP değerini işaret edecek şekilde override edebilirsek, Program crash verdiği takdirde ESP'ye gidecek ve ESP'nin gösterdiği satırda yazanları uygulayacaktır. Eğer ESP'den sonra kendi zararlı kodumuzu eklersek, programın tam anlamıyla crashleyip kapanmasını engelleyip, düşünemeyecek duruma getirip kendi kodumuzu çalıştırmasını sağlayabiliriz. (Emre Aslan hocama BGA Bootcampindeki ctf'in sonuna koyduğu stack buffer overflow için ayrıca teşekkür ediyorum.)
-Kenan Özgür ÖZÜGÜRLER
Comments