Metasploit Exploit Geliştirme - 1


Temel Kavramlar

Vulnerability

Herhangi bir yazılımın içerisinde yer alan sistem hatalarıdır. Bu zafiyetler;

  • bir servisten(smb),
  • bir plugin/eklentiden(wordpress eklentileri),
  • Bir yazılımdan(firefox),
  • hatalı/eksik kod yazımından(xss, sqli) kaynaklanabilir.

Exploit

Exploit kelime anlamı olarak bir şeyi kendi avantajına kullanmak demektir. İstenmeyen yada beklenmeyen bir duruma neden olmak için bir hata veya güvenlik açığından yararlanan koddur. Bu genelde sistemi ele geçirme, yetki yükseltme, hizmet dışı bırakma ve bilgi ele geçirme için kullanılır.

Bu noktada exploitler bazı kriterlere göre gruplara ayrılmıştır. Genel hatlarıyla exploit türlerine baktığımızda bunlar;

  • Remote Exploit
  • Local Exploit
  • Dos Exploit
  • Web App Exploit
  • Zero Day Exploit
  • One Day Exploit

olarak 6 gruba ayırmak mümkündür.

Remote Exploit

İstismar edilecek sisteme sadece uzaktan erişimin yeterli olduğu exploit türüdür. Genellikle dışarıya portları açık olan servislerde görülür.

Local Exploit

İstismar edilecek sisteme erişimin olmasının yanında sistem üzerinde erişim sağlanacak bir hesabında olmasını gerektiren exploit türüdür. Örneğin; Paylaşımlı hostinglerde, sadece bir web hostun hacklenerek elde edilen düşük seviyeli kullanıcı hesabından (local)exploit çalıştırarak sunucuda root haklarına sahip olmaya çalışmak.

(D)Dos Exploit

Sistemin kendisini veya sistemde var olan bir servisi hizmet veremeyecek duruma getiren exploit türüdür. Sisteme herhangi bir sızma söz konusu değildir. Tek bir kaynaktan yapıldığında dos, dağıtılmış bir şekilde bir çok noktadan tek bir noktaya yapılan saldırı türlerine ise ddos denir.

Zero Day Exploit

Daha önce keşfedilmeyen bir zafiyet bulup bunu istismar edecek exploit kodunu yazan kişiden(grup) başka kimsenin bilmediği zafiyettir/exploittir. Zafiyete söz konusu olan firma/ürün bile exploit public edildiği zaman haberdar olur. Ayrıca zafiyet ortaya çıktıktan sonra geliştirici tarafından bir güncelleme sunulamadan önce faydalanılan bir exploittir.

One Day Exploit

Public edilen zero day exploitin etkilediği yazılım patch geçmesine rağmen zafiyetli sürümün hala son kullanıcılar arasında yaygın bir şekilde kullanılmasından dolayı exploitten etkilendiği exploit çeşididir.

Encoders

Sistemde bulunan antivirüs, firewall, ips/ids gibi korunma sistemlerine yakalanmamak için (bypass) gönderilecek olan zararlı kodların (payload) encode işleminden geçirilmesi sonucu zararlı yazılımın sistem tarafından tespit edilmesini zorlaştıran araçlardır.

Auxiliary

Hedef sistem hakkında bilgi toplamak için yapılan taramalardır. Path traversial, local file download, file read gibi zafiyetleri istismar etmek için auxiliary modülleri vardır. Bunlar saldırgana herhangi bir shell oturumu vermediklerinden exploit olarak değerlendirilmezler.

Payload

Exploit sonrası hedef sistemde çalışacak olan kodlardır. Platforma ve işletim sistemine bağlıdırlar. Meterpreter, dll injection, binary upload en sık kullanılan payloadlar arasında gösterilebilir.

Üç grupta incelenebilirler.

  • Stagers
  • Stages
  • Single(Inline / Non Staged)
Stagers

Hedef ile saldırgan arasındaki veri iletişiminin sağlanması için gerekli bağlantıyı sağlar. Boyutu küçüktür. Bağlantı kurulduktan sonra büyük boyutlu olan payloadları hedef makineye göndermekle sorumludurlar. En çok kullanılanlar arasında bind_tcp, reverse_tcp, http_tcp, reverse_http, bind_http gösterilebilir.

Stages

Stagers ile bağlantı sağlandıktan sonra hedef sisteme gönderilerek çalıştırılacak olan payloadlardır. Hedef sistem üzerinde birçok post exploit işlemi gerçekleştirebilirler. Büyük boyutlu ve komplexdirler. Meterpreter, vnc injection, ipwn örnek olarak gösterilebilir.

Stagers(stage0 olarak da geçer) ve stages(stage1 olarak de geçer)’in en belirgin özellikleri aşağıdaki gibidir.

  • Initial shellcode (Stage0, stagers) saldırganın makinesine bağlantı isteği gönderebilir. Bu genellikle reverse_* olur.
  • Stege0 hedef sisteme bir kez yüklendikten sonra kendisinden sonra gelecek olan payloadları belleğe yerleştirip çalıştırmasından sorumludur.
  • Stege0’dan sonra boyut olarak daha büyük olan stage1 payloadı gönderilir ki bu shell oturumu veren payload da olabilir veya daha komplex olan bir meterpreter oturumu da olabilir.
Singles (Inline / Non Staged)

İhtiyaç duyduğu bütün bileşenleri içinde barındırır. Belli bir işi yapmak kullanılırlar. Stage payloadlara göre daha küçük boyutludur. Örneğin, hedef sisteme bir kullanıcı ekleyen payload, işlemini yapar ve durur. Başka bir komut satırına ihtiyaç duymaz.




Onur ER
Onur ER
Onur ER
comments powered by Disqus