23 Şubat 2017

Zararlı Chrome Extension Geliştirme

Kullanıcılar bir takım işlerini kolaylaştırmak için browser eklentisi kullanmaktadır. Fakat bu eklentilerin zararları neler olabileceği hakkında fikirleri bulunmamaktadır. Bazen browser’ın storelarından bazen de zararlı bir çalıştırılabilir (executable) kod yardımı ile bu eklentiler browser'a eklenebilmektedir.

Store'lardan indirilen eklenti normal bir işleşi bulunmaktadır. Fakat bunun yanında bir de saldırganın belirlediği kodlar çalıştırılabilir.

Zararlı eklenti kurdurmak için, zararlı bir çalıştırılabilir dosya yardımıyla eklenti gizli bir şekilde browser'a eklenebilmekte ve kullanıcı fark etmemektedir. Burada çalıştırılabilir dosya fark edilse, kaldırılsa bile eklenti browser'da kalabilmekte. Böylece sağ gösterip sol vurulmuş olabilir. Bu sadece gizlenmenin, yakalanmamanın bir adımı olarak kullanılabilir. Ama çalıştırılabilir dosya çalıştırıldıktan sonra shell de alınabilir denilebilir. Burada amaca yönelik işlem yapmaya çalışıyoruz. 

Bu yazımızda zararlı bir extension nasıl geliştirilirilebilir bunun üzerinde duracağız. Bir extension geliştirmek için html ve javascript bilmeniz gerekmektedir. Benim yazdığım extension her web sitesi açıldığında sayfaya yüklendikten sonra kullanıcı adı ve parola bilgilerini bizim belirlediğimiz bir alana göndermektedir.

Extension oluşturmak için bir manifest.json dosyası olması gerekmektedir. Bu dosya içersinde extension tanımları ve özellikle izinler tanımlanmalıdır.

Manifest dosyası aşağıdaki gibi olmalıdır.



  • "name" eklentimizin ismidir ve eklentiler sayfasında görünür.
  • "description" eklentiye ait açıklamadır.
  • "version" eklentinin versiyonudur.
  • "background" kısmında ise eklentimizde kullanacağımız ana kütüphaneleri ve geliştirdiğimiz JavaScript dosyalarını belirtiyoruz. 
  • "browser_action" eklentiye ait olaylar ve dosya bağlantıları burada tanımlanır.
  • "default_icon" adres çubuğunun yanında görünecek olan icondur.
  • "popup" icona tıklandığında yüklenecek olan html dosyasının adıdır.
Event.js aşağıdaki gibi olmalıdır.



Content.js aşağıdaki gibi olmalıdır.



Oluşturulan dosyalardan sonra klasör görünümü;



Şimdi Chrome Eklentiler sayfasına geliyoruz. Eklemek için “developer mode” aktif edilmesi gerekmektedir. Load unpacked extensions butonuna tıklayıpda direk yükleyebiliriz. 



Aşağıda oluşturduğumuz dosyayı yolunu seçerek bulunduğu dosyaya .crx uzantılı dosyayı ve sertifikayı çıkarmaktadır.



Artık extension hazır. Extention’ı browser'a eklemeniz gerekmektedir. Dosyayı aşağıdaki gibi extensions sayfasını açarak buradan sürükle bırak yaparak ekleyebilirsiniz. Bu adıma dikkat edin.



Extention eklendiğe dair bilgileri kontrol etmelisiniz.


Şimdi test edelim. Kullanıcı herhangi bir siteye girdiğinde kullanıcı adı ve parolasını yazdığında bizim extension bu bilgileri html içinden alarak(sol taraftaki resim), bizim belirlediğimiz adrese(sağ taraftaki resim) göndermektedir. Biz de tabi başka bir saldırı makinasından diyor olacağız. Kullanıcı adı girildiğinde sağ tarafta girilen bilgi saldırgana iletilmiş olur.



Extension parola bilgisini de göndermektedir. Kullanıcı parola bilgisini girdiğinde saldırgan(sağ taraftaki resim) bu bilgiyi elde edecektir.



Tabi buraya kadar anlattıklarımız nasıl extention geliştirme ile ilgili oldu. Seneryoları geliştirerek sayfaya ait cookie bilgileri, diğer bilgileri elde edilebilir. 

Sizin adınıza facebook, twitter ve diğer sosyal ağlarda beğenme, yorum, paylaşım ile karşılaşdığınız olmuştur. Bunu da extension ile yapılabileceğini görmekteyiz. Belki ddos yapmak için bir botnet ağı kurulabilir. Hayal gücünüzü kullanarak saldırı adımları genişletilebilir.