Temel Saldırı TeknikleriBu dkümanda bazı saldırı teknikleri hakkında bilgi sahibi olarak bu saldırılara karşı ne gibi korunma nlemleri alacağınızı ğrenebilirsiniz.1. a Fingerprinting Fingerprinting tanımı aslında karşı taraf hakkında bilgi toplamaktan ibarettir. Bir saldırı yntemi değildir sadece karşı sistem hakkında bilgi verir ve saldırı için doğru seçimlerin yapılmasına olanak sağlar. Çalışan işletim sistemi, çalışan programlar işletim sistemi versiyonu gibi bilgiler sayesinde karşı sistemin güvenlik açıkları kolayca tespit edilip saldırı uygulanabilir. Bir çok çeşidi ve yntemi vardır. En basit rneği, FTP Server'larından vermek mümkündür. FTP formatına gre karşı tarafa gnderilen "SYST" mesajı karşı tarafın işletim sistemi hakkında bilgi verir. rneğin; anonymous olarak ftp. sau.edu.tr adresine bağlanıp, command ekranına SYST yazılırsa sonuç aşağıdaki gibi olacaktır : Connected to ftp. sau.edu.tr SYST 215 UNIX Type: L8 Host Type : UNIX Standart Bu sayede karşı tarafta UNIX Standart yüklü bir makinenin olduğu tespit edildi. Bunun dışında telnet aracılığıyla bağlandığımız bir sistem direkt olarak bize işletim sistemini verebilir. Çoğu işletim sistemi üreticisi günümüzde bu bilgiyi telnet üzerinden otomatik olarak vermeye ayarlıyor ve çoğu sistem yneticisi de bunları kapatmıyor. Aşağıda küçük bir rnek var: playground > telnet hpux. u-aizu. ac. jp Trying 163.143.103.12... Connected to hpux. u-aizu. ac. jp. Escape character is '^]'. HP-UX hpux B.10.01 A 9000/715 (ttyp2) login: Grüldüğü gibi yaptığımız tek şey telnet aracılığı ile karşı tarafa bağlanmaktı. Sistem bize işletim sistemini versiyon numarasına kadar verdi. Bu yntemlerin dışında birde http Fingerprinting adı verilen ve adından da anlaşılabileceği gibi http protokolünü kullanan bir yntem daha var. Bu yntemde "http" 'de tanımlı "GET" metodunu kullanarak Web Server'ın ne olduğunu ğreniyoruz: playground> echo 'GET / HTTP/1.0\n' | nc hotbot.com 80 | egrep '^Server:' Server: Microsoft-IIS/4.0 IIS Web Server kurulu bir sistemde hangi işletim sisteminin yüklü olduğunu tahmin etmek pek zor değil. Bu anlatılan yntemlerden farklı olarak daha alt seviye bazı yntemler de mevcut. Bu yntemler TCP/IP protokolünün işletim sistemleri arasındaki küçük farklarından yararlanarak amacına ulaşıyor. Aşağıda bunlardan bazılarını inceleyelim: The FIN Probe: Bu teknikte karşı tarafın açık bir portuna bir FIN paketi yolluyoruz . RFC 973 standart'ına gre karşı tarafın bu pakete hiçbir karşılık vermemesi gerekirken, MS Windows, BSDI, CISCO, HP/UX, MVS, IRIX gibi işletim sistemleri geriye RST paketi yollarlar. Günümüzde bir çok Fingerprinting aracı bu yntemi kullanmaktadır. TCP ISN Sampling: Bu teknik işletim sistemlerinin TCP/IP stack'lerinin "initial sequnce number"'ları seçme zelliğinden faydalanıyor. Hatırlayacağınız gibi TCP/IP'de bir bağlantı kurulduğu zaman iki tarafta da byte akışının doğru sağlanması için sequence number'lar kullanılıyordu. Her yeni paket için de x kadar arttırılıyordu. Bu yntemde işletim sistemlerini kategorize edersek: "Random Increments", "True Random" ve "Time dependant model" olarak üçe ayırabiliriz. İlk modelde iki bağlantı için belirlenen seq. Number'lar arasındaki x artış miktarı her paket için random olarak seçilir ve sürekli bir ncekiyle toplanır. Solaris, IRIX, FreeBSD, Digital UNIX, Cray gibi işletim sistemleri ISN üretmede bu modeli kullanmaktadır. İkinci modelde ise iki bağlantının seq. Number'ları arasında hiçbir bağıntı yoktur, birbirlerinden tamamen bağımsızdırlar. Bu modeli kullanan sistemler arasında Linux 2.0. x Open VMS gibi sistemleri sayabiliriz. Üçüncü modelde ise ISN 'ler belli bir zaman aralığında sabit bir sayıyla toplanarak elde edilirler. Windows bu üçüncü modeli kullanan bir yapıya sahiptir. TCP TimeStamp: TCP başlığı içinde yer alan bu bilgiyi işletim sistemleri farklı işlerler. Bazıları bu zelliği desteklemez, bazıları ise belirli peryodlarla bu değeri arttırırlar. Bazı işletim sistemleri ise hep 0 dndürür. TCP Initial Window:Bu teknikte karşı sistemden dnen paketlerin "Window Size"'ları kontrol edilir ve buna gre değerlendirme yapılır. Bu değerlendirme nemlidir çünkü çoğu işletim sistemi bu değer için sabit bir sayı kullanır. rneğin AIX işletim sistemi Window Size değeri için hex değer olarak $3F25 sayısını kullanır. Aynı şekilde FreeBSD, OpenBSD ve Windows NT işletim sistemleri bu sayıyı $402E olarak belirlemişlerdir. ICMP Message Quoting:Bu teknikte ICMP protokolünün "port unreachable" hatasından faydalanıyoruz. Bu hata karşı tarafa bir ICMP paketi gnderildiği ve bu port açık olmadığı zaman geri gelen bir hata mesajıdır. Çoğu sistem IP Header + 8 Byte geri gnderir. Fakat Solaris işletim sistemi 8 Byte'dan daha fazla gnderir, Linux ise Solaris'ten daha fazla gnderir. Type Of Service:ICMP protokolünde alınan bir port unreachable paketinin ToS değeri incelenirse, bu değerin her işletim sisteminde 0, bir tek Linux'ta $0C olduğu grülmüştür. TCP Options: TCP paket başlığında "TCP Options" değerini kullanarak işletim sistemi tahmini yapmaktır. Bu yntemin bir çok avantajı vardır bunlardan birkaçını sıralarsak: i) Her şeyden nce bu kısım isteğe bağlıdır yani birçok işletim sistemi bu değeri gzardı eder. ii) Eğer bir Option ayarlayarak karşı makineye gnderirseniz, karşı sistemin cevabı o option' ın desteklenip desteklenmediğini gsterecektir. Bu Option'lar da her işletim sistemine gre değişeceği için bu da bize avantaj sağlar. iii) Bir çok Option'ı ayarlayıp sadece bir paket gndererek, cevap alabilirsiniz. Yani tek bir paketle karşı tarafın hangi Option' ları desteklediğini kolayca anlayabilirsiniz. WindowScale, NOP, Max Segment Size, TimeStamp TCP Options'ın alabileceği değerlerin bazılarıdır. rneğin bu sayılan zelliklerin hepsi FreeBSD tarafından desteklenmektedir. Bunun yanında Linux 2.0. x sürümleri yukarıdakilerin çok azını destekler. İki işletim sistemi aynı Option zellikleri desteklese bile bunlara verdiği cevaplar faklıdır. rneğin bir Linux sistemine küçük bir MSS değeri gnderilirse, sistem aynı değeri bize geri gnderecektir. Geri dnen değerler aynı olsa bile sıraları faklıdır. rneğin Solaris "MSS" değerine "NNTNWME" ile cevap verirken Linux 2.1.122 "MENNTNW" ile cevap verir 1. b Port Scanning Port Scanning adı verilen yntemde karşı taraf hakkında bilgi toplamayla alakalı bir işlemdir. Bu işlemde aynı Fingerprinting gibi protokol formatına dayanır ve karşı sistemde açık olan portları bulmamızı sağlar. Bu sayede Fingerprinting 'ten elde edemediğimiz bilgileri bulabiliriz. rneğin karşı tarafın 135 no'lu portu açıksa muhtemel bir Windows İşletim sistemiyle karşı karşıya olduğumuzu varsayabiliriz. Yada bir başka rnek olarak karşı tarafta eğer 80'inci port açıksa bu makinenın da bir HTTP Server olduğunu varsayabiliriz. Port Tarama ynetimde bilgi toplama portların ne işe yaradıklarını ve genel kullanımlarını bilmekle alakalıdır. Bu şekilde karşı sistemin zayıflıkları bile bulunabilir. Aşağıda kendi makinemde denediğim Port tarama işleminin sonuçları grünmekte : Scanning 127.0.0.1 , range : 1 -135 Service found at: 110 Could be: pop3 Read: Service found at: 135 Could be: epmap No data to read. Burada kendi makinemde 1 ile 135'inci portlar arasında yaptığım port taraması sonuçları grülmekte. Grüldüğü gibi makinemde 110 ve 135'inci portlar açık durumda bu portların işlevleri ise sırasıyla "pop3" ve "epmap" olarak adlandırılmış. Başka birisi bende port taraması yapıp bu sonuçları aldığında makinemde muhtemel olarak Windows yüklü olduğunu kolayca anlayabilir. Bu rnekteki port tarama işlemi basit olarak şyle bir senaryoyla anlatılabilir: Belli bir IP adresinin her portuna bağlantı isteği gnderilir. Eğer bağlantı gerçekleşirse port açık, gerçekleşmezse port kapalıdır diyebiliriz. 1. b. a Stealth SYN scan Port Tarama işleminden bahsettik fakat bu işlemin alt seviyede nasıl yapıldığından szetmedik. Bu sistem, karşı tarafın istenilen port aralığına bağlanma istekleri gndererek çalışır. Şimdi eski bilgilerimizi tekrar hatırlarsak TCP/IP protokolünde bir TCP bağlantısının gerçekleşmesi için 3 yollu el sıkışma olduğunu biliyoruz. Bu el sıkışmada bağlantı isteyen makine server'a bir SYN paketi gnderir. Bağlantı uygunsa server'da bu makineye bir SYN+ACK paketi yollar. Son olarak ta makine server'a bir ACK paketi yollar ve bağlantı kurulurdu. Stealth SYN Scan tipinde port tarama işlemlerinde son ACK paketi dikkate alınmaz, yani server 'dan SYN+ACK paketi alındığında, o portun açık olduğu varsayılır ve bu şekilde tarama işlemi hızlandırılır. Bu saldırı ynteminden korunmak neredeyse imkansızdır. Fakat bazı paket filtreleme donanım yada yazılımları sayesinde gelen paketler incelenir ve SYN paketleri hep aynı IP adresinden geliyorsa bloke edilir. Aşağıda nmap adlı bir port scanner programının lokal ağda yaptığı bir taramanın sonuçları yer alıyor: C:\osmanatabey\nmap-3.75-win32>nmap -v -sS 10.0.0.21 Starting nmap 3.75 at 2005-01-02 22:18 GTB Standard Time Initiating SYN Stealth Scan against T1000 (10.0.0.21) at 22:18 Discovered open port 3389/tcp on 10.0.0.21 Discovered open port 139/tcp on 10.0.0.21 Discovered open port 445/tcp on 10.0.0.21 Discovered open port 1025/tcp on 10.0.0.21 Discovered open port 135/tcp on 10.0.0.21 The SYN Stealth Scan took 1.47s to scan 1663 total ports. Host T1000 (10.0.0.21) appears to be up... good. Interesting ports on T1000 (10.0.0.21): (The 1658 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 3389/tcp open ms-term-serv MAC Address: 00:50:FC:A0:26:AB Nmap run completed -- 1 IP address (1 host up) scanned in 1.969 seconds Grüldüğü gibi SYN Scanning lokal ağda 1.5 saniye gibi kısa bir sürede 1600 port taradık. Aynı işlemi normal adi port scanner'la yaptığımızda sonuçları elde etmemiz 3 dakika sürdü. Dikkat edilirse port tarama işlemi bittikten sonra bir de açık portların grevleri gsterildi. Bu sayede karşı tarafta hangi işletim sisteminin yüklü olduğunu tahmin edebiliriz. 1. b. b FIN Scanning FIN Scanning'te Stealth SYN Scan mantığına dayanır. Karşı tarafa bir FIN paketi gnderilir. Bu paket TCP/IP protokolünde bağlantının bittiğini haber veren mesajdır. Eğer biz bağlı olmadığımız bir adresin herhangi bir portuna FIN paketi yollarsak ve eğer o port kapalıysa bir RST paketi geri dner. İşte bu sayede port kontrolü yapabiliyoruz. Fakat bu yntem Windows işletim sistemi yüklü makineler için geçersizdir. Çünkü Windows yollanan her FIN paketine RST cevabını verir, port açık olsa da olmasa da. Her neyse aslında bu tarama ynteminin ortaya çıkış nedeni "SYN Scan" port tarama ynteminin bir çok paket filtreleme programı tarafından engellenmesi sonucu ortaya çıkmıştır. İlk kez Uriel Maimon tarafından Phrack 49, Article 15 ' te anlatılmıştır. Bu yntem de günümüzde paket filtreleme programları tarafından engellenebildiği için hacker' lar da değişik sistemler üzerinde değişik tarama işlemleri gerçekleştirmeye başlamışlardır."XMAS Scan" ve "NULL Scan" adı verilen iki tip tarama yntemi daha mevcuttur. XMAS ynteminde tıpkı bir Noel Ağacının her tarafının ışıl ışıl parlaması gibi, bir TCP paketinin bütün kontrol bitlerini etkin duruma getirir. Bu şekilde cevapları inceleyerek tarama işlemini yapar. NULL tarama metodunda ise XMAS 'ın tam tersi olarak tüm kontrol bitlerini etkisiz duruma getirir. Her neyse her iki metotta da karşı sistemin işletim sistemi paket cevaplarının incelenmesinde kilit rol oynar. 1. b. c Fragmented Packet Scanning Bu tarama metodu, paket filtreleme programları tarafından engellenmesi en güç olandır. Çünkü bu metotta TCP Başlıkları da kendi içinde parçalara ayrılarak karşı tarafa gnderilir. Bu sayede paket filtreleme programı tüm TCP başlığını gremediği için filtreleme işlemini yapamayacaktır. Ancak yine de bu tarama metoduna da dayanıklı sistemler mevcut:rneğin Linux sürümlerinde CONFIG_IP_ALWAYS_DEFRAG zelliği sayesinde, herhangi bir başlık tamamen oluşturulmadan cevap gnderilmez, paket işlenmez, yani bir nevi kuyruk oluşturur. Fakat çoğu ağ yneticisi bu zelliği kullanmaz, çünkü ağ trafiğini yavaşlatır. Günümüzde çoğu port tarayıcı program bu yntemi kullanmaktadır. 1. c Network Sniffing Network Sniffing adı verilen yntem ağda dolaşan paketlerin grüntülenmesi, ve kaydedilmesine olanak sağlayan bir yntemdir. Bilindiği gibi çoğu yerel ağ sisteminin temelini Ethernet oluşturmaktadır. Ethernet ilk tasarlanırken mühendisler kendi protokollerini test etmek için sniffer programlarını kullanıyorlardı. Fakat günümüzde Network Sniffing genellikle ktü amaçlara hizmet ediyor. Ethernet protokolü veriyi olduğu gibi gnderir, yani veriye herhangi bir şifreleme uygulamaz. İşte bu aşamada Sniffing daha da kolaylaşır. Ayrıca Ethernet protokolü gnderilen bu şifrelenmemiş veriyi bağlı olan tüm düğümlere gnderir. Yani aslında aynı non-switched bir LAN da birbirlerine bağlı iki bilgisayarın birbirlerinin ağ trafiğini incelemeleri, sadece NIC bir değişikliğe bağlıdır. Bu değişikliğin uygulandığı bir NIC üzerine gelen tüm bilgiyi filtrelemeden alır. Yani bağlı olduğu tüm ağ trafiğini inceleyebilir. Bu duruma gelmiş bir NIC 'e "promiscuous mode" 'a geçmiş denilir. NIC farklı amaçlara hizmet etmesi için farklı filtreleme metotları vardır. Unicast D estination Address ' i NIC 'in kendi fiziksel adresi olan paketleri alır. Broadcast : Destination Address 'i FF FF FF FF FF FF olan paketleri alır. Bu paketler ağ üzerindeki tüm düğümlere gnderilmek amacıyla oluşturulmuştur. Multicast : Belirli bir adres veya adres aralığından gelen paketleri kabul eder. Bu adres aralığı NIC 'in içinde tanımlanmıştır. Ayrıca bir paketin multicast zeliği taşıması için paketin grup bitinin aktif olması gerekir. Yani bir gruba ait olduğunu gsteren bit. Bu biti aktif olanlar NIC ' teki listeyle kontrol edilir. All Multicast :Herhangi bir gruba bağlı yani grup biti aktif tüm paketler NIC tarafından kabul edilir. Promiscuous : NIC gelen bütün veriyi alır. Non-switched ağlarda "Packet Sniffing" oldukça kolay. Çünkü filtreleme işlemi NIC ' te yapıldığı için bu filtreleme işlemini değiştirme imkanımız var. Switched ağlarda ise durum biraz farklı. Switched ağlarda bahsedilen filtreleme işlemleri, switch yada router ' de yapılır. Yani gelen paket hangi adrese gidecekse o adrese yollanır. Switch o adresin nerede olduğunu bilir ve paketi o adrese yollar.1. d DoS DoS saldırıları günümüzde en yaygın kullanılan saldırı biçimlerinden biridir. Çünkü bir çok saldırı yntemini içinde barındırır. DoS saldırıları genelde bir ağa ya da kaynağa ulaşımı engellemek için kullanılır. Kendi içinde mantıksal olarak ikiye ayırmak mümkündür: Program tabanlı DoS saldırıları ve Network tabanlı DoS saldırıları. Bu iki saldırıda da iki yntem kullanılabilir birisi "flooding" diğeri "exploiting". Flooding'te kullanıcı kurbana çok sayıda paket yollayarak belli bir işlemi çalışamaz duruma getirir. Exploiting ynteminde ise kurbanda çalışan herhangi bir program hedef alınıp bu programın açıklarından faydalanarak program, kullanılamaz hale gelir. Şimdi DoS saldırılarını kısa bilgilerle inceleyelim. 1. d. a DDoS Flooding Bir makineye yada ağa DDoS saldırısı yapabilmek için bir kişi nceden kendine bir çok kurban makine bulup onlara kendi hazırladığı küçük bir programcık yükler . Bu programcık bu makinelerde sürekli bu kişiden bir istek bekler. Bu kişi istediği zaman bu programcıkları da kullanarak aynı anda binlerce paketi hedef sisteme yollayabilir. Bu paketler genelde ICMP Echo request yada UDP Echo gibi masum grünen ve sadece basit işlemler için tasarlanmış paketler olabilir. Ama aynı anda binlercesi gelince bu hedef sistemin ağ trafiğinin durmasına ve hatta programların çalışamaz hale gelmesine sebep olabilir. Bu saldırı sisteminden www.yahoo.com gibi siteler bile etkilenmiştir. Günümüzde hala nemini korumaktadır ve paket filtreleyici yazılımları veya donanımlarıyla fark edilememektedir. Akıllıca yapılmış bir DDoS saldırısı farklı IP adreslerinden geleceği için filtreleyici programı şaşırtabilir. Ama çoğu sistem bu tür saldırılara karşı nlemini almıştır. 1. d. b The Ping of Death Artık günümüzde neredeyse bütün işletim sistemleri bu tür bir saldırıya karşı nlemini aldıysa da zamanında çok etkili bir yntemdi. Bu yntemin mantığı şyle çalışır: ICMP protokolü ağda bilgisayarların hata mesajlarını birbirlerine gndermesini yada "Ping" gibi basit işlemlerin yapılmasını sağlar. ICMP spesifikasyonunda, ICMP Echo request'lerin data kısmı 216 ile 65,536 byte arasında olmak zorundadır. Eğer bu veri sınırlarının dışına taşmış bir paket kurban sisteme yollanırsa işletim sistemi byle bir şey beklemediği için çalışamaz duruma gelecektir. 1. d. c TearDrop Bu saldırı yntemi biraz karışıktır ve IP paketlerinin reassembly yapılmasıyla ilgilidir. Bir IP paketi karşı tarafa yollandığında bu paket tekrar verilere ayrılırken paketin içinde bulunan "offset" bilgisi kullanılır. Bu "offset" bilgilerinin birbirleriyle çakışmaması yani üst üste gelmemesi lazımdır. zel ayarlanmış bir paket bu senkronizasyonu bozabilir ve paketler üst üste gelirse ve bunu kontrol edebilecek bir mekanizma da mevcut değilse bu işletim sistemini çalışmaz duruma getirebilir. Bu saldırı ynteminden korunma yntemi IP protokülünün kodlanması ile ilgili olduğundan tamamen işletim sistemi ile alakalıdır. Günümüzde çoğu işletim sistemi bu tür saldırılara karşı dayanıklıdır. 1. d. d Ping Flood "Flooding" adı verilen olay aslında bir işlemin bir çok kere tekrarlanması demektir. Flooding saldırılarında amaç programa hata verdirmek değil programı işlemez duruma sokmaktır, yani kaldırabileceğinden daha fazla işlem emri vermektir. Daha nce aynı DDoS flooding'te olduğu gibi bu saldırı ynteminde de karşı sisteme binlerce paket yollanır ve bu paketler karşı tarafın ağ trafiğinin akışını durdurabilir. Bu paketler karşı sistemle aramızdaki hızı lçmeye yarayan ping komutundan başka bir şey değildir. Ama bunlardan binlercesi sistemde ciddi ağ trafiğine yol açar ve kullanılamaz hale gelir. Bu saldırı ynteminde zekice bir taraf yoktur, sadece internet hızı yüksek olan bir sistem daha düşük olan bir sistemin ağ trafiğini kitleyebilir. Günümüzde çoğu sistem bu tür bir sadırıya korunmalıdır. Filtreleme programları bu sadırıları kolaylıkla engeller. Aşağıda rnek bir ping komutu ve sonuçları grünmektedir: C:\ping www.tcpsecurity.comPinging http://www.tcpsecurity.com/ with 32 bytes of data: Reply from 66.102.11.104: bytes=32 time=119ms TTL=242 Reply from 66.102.11.104: bytes=32 time=126ms TTL=242 Reply from 66.102.11.104: bytes=32 time=165ms TTL=242 Reply from 66.102.11.104: bytes=32 time=178ms TTL=242 Ping statistics for 66.102.11.104: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 119ms, Maximum = 178ms, Average = 147ms 1. d. e SYN Flooding TCP/IP "stack" denilen bir blgede tüm bağlantıları tutar. Tekrar eski bilgilerimize dnersek üç yollu el sıkışmadan hatırlayacağımız gibi SYN paketine cevap olarak SYN/ACK gnderiliyordu daha sonra biz tekrar ACK gnderiyorduk ve bağlantı kuruluyordu. Şimdi şyle bir senaryo düşünelim:Bir kişi bir server'a SYN paketi gnderiyor fakat bu paketin zelliği içindeki "Source ip" kısmı bizim IP adresimizi gstermiyor, tam tersine aslında gerçekte varolmayan bir IP adresini gsteriyor. Bu noktada server bu SYN paketini alıp bağlantı işleminin aslında varolmayan IP adresiyle gerçekleşmesi için bu IP adresine SYN+ACK gnderiyor ve ACK almak için bekliyor. Bu bekleme sırasında IP adresi TCP/IP'nin stack'inde tutuluyor ve biz sürekli bu aslında varolmayan IP adresinden bu sisteme SYN paketleri yolluyoruz. IP adresinde hiçbir sistem varolmadığı için asla ACK paketi gelmiyor sonuçta belli bir süre sonra kurbanın TCP/IP stack'i taşıyor ve ağ trafiği neredeyse işlemez hale geliyor. Bu saldırı ynteminden de korunmak için yine basit bir paket filtreleme sayesinde mümkündür. 1. d. f Buffer Overflow Buffer Overflow dediğimiz şey hatalı kodlanmış bir programın dışarıdan bir etkiyle belleğinin taşmasına neden olmaktır. Daha açarsak sınır kontrolü yapılmamış bir değişkenine alabileceğinden daha fazla veri atanırsa program bellek hatası verir ve bu hatayı kullanarak zel olarak hazırlanmış bazı kodlar sayesinde programın akışı değiştirilebilir. Bunun en güzel rneklerinden biri daha 1.5 seneyi doldurmamış Sasser Solucanıdır. Bu solucan Windows işletim sisteminde sürekli çalışan LSASS. EXE adlı dosyada bulunan bir Buffer Overflow hatası sayesinde milyonlarca makinaya bulaşabildi. Bu LSASS. exe 'nin asıl grevi Windows un kulanıcı işlemlerinin güvenliğini sağlamak ve kullanıcı izinlerini düzenlemekti. Fakat Windows 2000 ve XP yüklü makinelerde bu dosyanın kullandığı bir DLL dosyasında Buffer Overflow tesbit edildi.( . Bu sayede virüs 445'inci porta bağlanıp, programa istediği işlemleri yaptırıyordu. Daha sonra da LSASS. EXE kapatılıyordu ve 1 dakika içinde de server ' a reset atılıyordu. Kısacası "Buffer Overflow Exploiting" bir programdaki programlama hatalarını kullanarak o programın değişkenlerine ve program akışına dışarıdan erişmeye denir. Bu tür bir saldırı yntemini engellemenin iki çeşit yolu olduğunu sleyebiliriz:Birincisi eğer programı geliştiren firma yada kişi bizsek Buffer Overflow hatalarını engellemek için alt seviye bellek fonksiyonlarından ve sınır kontrolü yapmayan değişken işlemlerinden olabildiğince kaçınmalıyız. rneğin C dilinde, iki string tipinde değişkeni birbirine kopyalamak için kullanılan "strcpy " fonksiyonu bu tür buffer overflow hatalarına gebedir. Çünkü birinci string'i ikinci string'e kopyalar fakat sınır kontrolü yapmaz. Yani eğer biz değişkenlerden herhangi birinin büyüklüğünü statik olarak girmişsek bu programda bellek taşmasına yol açacaktır. rneğin aşağıdaki C programında çok basit bir buffer overflow grülmektedir: int main Kodda grüldüğü gibi ilk 4 byte ' tan sonra yazılan "OverFlow" kelimesi tam anlamını yansıtmaktadır. Bu pogram çalıştığında Buffer Overrun hatası verecektir. Ama OverFlow szcüğü program stack ' inin kritik kısımlarını etkileyecektir.1. e TCP/IP Hijacking TCP/IP Hijacking bir A sisteminin B sistemi ile C sistemi arasında kurulan bağlantıya sızarak kendini C sistemine B sistemi olarak gstermesi demektir. Peki bu iş nasıl yapılır?ncelikle şunu sylemeliyimki bu tür bir saldırı için network sniffing kullanılacağı için A sistemi ile B sistemi aynı ağ üzerinde olmalıdır. Bilindiği gibi TCP güvenilir bir protokoldür. Güvenilirden kastım her paketin karşı tarafa ulaşıp ulaşmadığı kontrol edilir ve sonra gitmesi gereken paketin nce gitmesi gerekenden daha nce gitmesi gibi senkronizasyon problemlerinin aşılması için her pakete belli senkronizasyon numaraları verilir . Bu numaralar sayesinde iletişimde bulunan iki program gelen giden paketleri sırasına gre alıp sırasına gre işleyebilir. Eğer A sistemi "network sniffing" sayesinde B sisteminini tüm gelen giden paketlerini incelerse, B sisteminin C sistemiyle olan bağlantısında o andaki "sequence number"'ını tahmin edebilir. Bu hesapladığı sequence number ve B sisteminin IP adresini source IP olarak kullanarak karşı tarafa bir paket yollarsa, C sistemi doğal olarak artık A sistemini B sistemi olarak algılayacaktır. Bu sırada B sistemi C sistemine bir paket gnderse bile aralarındaki senkronizasyon numaralarında hata oluştuğu için artık C sistemi B sistemini tanımaz. Bu çeşit bir saldırının engellenmesi imkansızdır. Yapabileceğiniz tek şey ağda bir sniffer olup olmadığını araştırmak olacaktır. 1. e. a RST Hijacking RST Hijacking iki sistem arasında kurulan bağlantıyı dışarıdan kesmek için kullanılır. Bilindiği gibi RST Kontrol Biti TCP başlığında tanımlı spesifik bir bittir. Bu kontrol bit'i 1 olduğu zaman iki sistem arasındaki bağlantı sona erer. Eğer biz doğru ayarlanmış bir paketi iki sitemden herhangi birine RST biti 1 olarak olarak gnderirsek iki sistem arasındaki bağlantıyı dışarıdan kesmiş oluruz. Burada dikkat edilecek nokta yine TCP Başlık formatında tanımlı "acknowledgement number" dediğimiz kısımdır. Bu 32 bitlik kısım, sistemin bir sonra alacağını varsaydığı paketin "sequence number"'ını içerir. . Eğer biz source ip kısmını iki sistemden birine ayarlayıp "acknowledgement number"'ıda bulabilirsek ve RST bitini de 1 olarak ayarlarsak, bu paketi alan sistem, bağlı olduğu diğer sistemin bağlantıyı kesmek istediğini sanarak bağlantıyı bitirecektir. Bu saldırı ynteminden de korunmak neredeyse imkansızdır. Fakat 32 bitlik bir sayıyı tahmin etmek imkansıza yakındır. Yani aynı TCP/IP Hijacking 'te olduğu gibi, bu saldırının gerçekleşmesi için saldıranın kurban sistemle aynı ağda olup trafiği bir sniffer aracıyla izlemesi gerekmektedir. Bu noktada bu saldırıyı engellemenin tek yolu ağda sniffer kullanımını bloke etmekten geçer. 1. f Shattering Bu saldırı yntemi aslında çok yeni değildir fakat son günlerde hacker' ların ilgisini biraz daha çekmiştir. Bu yntemde Windows'un mesajlaşma sisteminin zayıflıklarından faydalanılır. Windows'ta daha nce API düzeyinde programlama ile uğraşan herkesin bileceği gibi Windows işletim sistemi mesajlaşma sistemi üzerine kurulmuştur. Bundan kastım, oluşturulan her kontrolün kendine zgü bir "handle"'ı vardır. Sistem bu "handle"'lar arasında giden mesajlar sayesinde işler. rneğin Windows'ta bir düğmeye tıklandığında WM_LBUTTONDOWN mesajı bu düğmeyi içeren form'a gnderilir ve işlemler orada gerçekleşir. Bu şekilde binlerce mesaj aynı anda farklı programlarda işlenebilir. Fakat bu sistemin de bir takım zayıflıkları vardır. Windows bu mesajı gnderenin kim olduğuna bakmaz, yani daha açarsak, mesaj dışarıdan başka bir programla da rahatlıkla gnderilebilir. BU zayıflıkta diğer programın ilk programı kullanarak bazı haklar elde etmesine yol açabilir. rneğin Microsoft'un Windows 2000 SP3'e kadar ürettiği Windows versiyonlarda WM_TIMER mesajı ile ilgili bu tür bir açık mevcuttu. Bu açık sayesinde ktü niyetli bir kişi başka bir programı kullanarak yetkisi dahilinde olmayan işlemleri gerçekleştirebiliyordu. Bu saldırı yntemini birisinin gerçekleştirebilmesi için saldırıyı yapacağı makineyi kullanıyor olması gerekmektedir. Yani dışarıdan bir tehlikesi yoktur. Bu saldırı yntemi ile bir kişi administrator yetkisi olmayan bir sistemde administrator yetkisini kolaylıkla kazanıp ağda bir takım değişikler yaparak o makinenin bağlı olduğu ağın tümünü kullanılmaz hale getirebilir. Bu tür konular paylaşım download a deil şu an mevcut bulunduğu blümde yayınlanır. bi dahakine dikkat ediniz.-yonetim- "Sylesem Tesiri Yok ; Sussam Gnül Razı Değil."