Microsoft

Silverlight Uygulamalari Icin Guvenlik Denetimi Yaklasimi

Microsoft Silverlight, ağ uygulamaları için animasyon, vektör, 3d grafik ve görüntü oynatma imkanları sağlayan zengin internet uygulamaları geliştirme düzlemidir. Bir cok kurum tarafindan internal uygulamalarda tercih sebebidir. Bu tercih sebebinin nedeni ise bana gore ozellikle ust yoneticileri sunulacak kipir kipir grafikli surukle birakli tamamen gosterisli arayuzlerin gelistiriciler tarafindan rahatca hazirlanmasindan kaynaklanmatir.

Yukarida verdigim kisa bir giristen sonrasinda bir pentest aktivitesinde sosyal muhendislikle kurum icerisinde ust duzey yoneticilere ust duzey datalarin sunuldugu Silverlight temelli web sayfalari ile karsilasmaniz olasidir.

Silverlight temelli uygulamalar icin guvenlik denetimlerinde uyguladigim yaklasimi sizlerle paylasmak istiyorum.

1)- Oncelikle bir silverlight uygulamasinin varligi tespit edilir. Bunun icin en basit yontem uygulama uzerindeyken sag tusa tiklamaniz ve Silverlight yazisini gormenizdir.

Silverlight uygulamalarınin calisma mantiginda tüm uygulamaya ait VB veya C# kodu ile beraber XAML dosyalarının da birer DLL olarak düzenlenmekte ve sonrasında .XAP adında, özünde ZIP dosyaları şeklinde paketlenerek istemciye gondermektedir.

2)- Bu basit bilgiden sonra hedefimiz; uygulamanin kaynak kodundan .xap uzantili adresi bulup. Bilgisayarimiza kaydetmektir. Bunun icin uygulamanin kaynak kodun acmak icin internet explorerda F12 tusuna basabilirsiniz.

en buradan uygulamanin adresini alip browserima yapistirdigimda;

http://localhost/ClientBin/deneme.xap

dosyasini bilgisayarima kaydediyorum. Sonrasinda ise uzantisini .xap yerine .zip yaptigimda yukarida bahsi gecen bir cok dll dosyaya erisim saglayabiliyorum.

3)- Bu kapsamda elde edilen dosylardan ilk once ServiceReferences.ClientConfig dosyasini acip uygulamanin web servis adresini ogrenebiliyoruz.

Ayrica uygulama icinde bulunan tum dll ler elinize gectigine gore bunlari . NET REFLECTOR veya DIS# ile acip, iclerinde neler var neler yok gorebilirsiniz. Ozellikle bir cok uygulamada DB baglantilarinin acik metin olarak client tarafina gonderilen dll ler icerisine yazildigina sahit oldum.

Hi, I’m Savaş Saygılı