GENEL HACK:
Genel Web Hack Yöntemleri Ve Güvenlik Yolları
Bu yazıyı okumak 1 saat kadar vaktinizi alabilir. Onun
için vaktiniz yoksa hiç başlamayın yazıyı okumaya
Yazıma başlamadan önce size bazı
gerçeklerden bahsetmek istiyorum. Özellikle gerçekten bilimsel anlamda bilgisayar sektörü ile ilgilenmemişseniz,
bu söyleyeceklerim sizin için altın değerinde olacaktır.
1. Kural : Hiçbir Hacker yada Saldırgan,
sihirbaz değildir. Bir şekilde var olan bir açık varsa, o saldırgan, bilgi, yetenek, tecrübe ve şans
kriterleri ile o açığı bulur ve kullanır. Her saldırganda bu kriterler aynı olmayacağı
için bazıları için atak başarısız olur, bazılar için ise atak karşı tafa büyük
hasarlar verir.
2. Kural : Tamamiyle güvenli sistem diye birşey yoktur.
3. Kural : Güvenlik işinde
garanti yoktur.
Bu kurallar gerçekten altın niteliğinde. Eğer ki bunların doğru olduğunu
bilerek düşünürseniz, yaptığınız işlerde ve yapacağınız yorumlarda bir çok
şeyi kolayca elde edersiniz.
İnternet ortamı, bir çok bilgisayarın, farklı protokoller
üzerinden birbirine bağlandığı, büyük bir paylaşım ağıdır. Bunu söylememin
sebebi, satırlarımı doldurmak için değil. Burdaki önemli bir şeyi vurgulamak içindir. Az
önceki cümlede “Paylaşım” denilen birşeyden bahsettim. Evet, ineternette bulunan her bilgisayar
bir paylaşım içindedir...
Şimdi kısaca internette bir web sitesi için gereken birimlerden bahsedeceğim.
Domian
Name: Alan adıdır. Örneğin, http://www .savsak.com" target="_blank">http://http://www .savsak.com bir
Top-Level domaindir. “savsak.com” kısmı domainin adıdır. *.com kısmı domainin hangi
level olduğunu belirtir. http://www .*" target="_blank">http://http://www .* kısmı ise, domainin gösterdiği
Ipdeki http://www klasör veya hizmetinin yoludur. Domain Name her zaman bir Ipnin yerini alır. Bu IP ise bir
bilgisayara ait olan, ve o bilgisayarın internete erişimini sağlayan numaradır. Her internete bağlanan
makinaya verilen ve birbirinden farklı olan bu numaraya, internet protokolü numarası denir.
Host: İnterenete
sürekli bağlı olan, belli bir ipsi olan ve içinde internette yayınlanacak dosyaları barındıran,
multi-user işletim sistemi barındıran ve farklı kullanıcıların, biribirinden bağımsız
kullanabilecekleri bir bilgisayardır. Eğer siz kendi bilgisayarınıza bu işletim sistemlerinden
birini kurup, makinanızı ayarlarsanız bu makine sizinki bile olabilir.
Bu makinalarda web sunucusu
dediğimiz programlar bulunur. Bu programlar sayesinde sizin herkese paylaşıma açacağınız
internette yayınlayacağınız sitenin dosyalarını 80 numaralı port üzerinden yada başka
bir port üzerinden web tarayıcılarının okuyabileceği şekilde yayınlanabilir.
Bir
web sitesi aldığınızda, aldığınız yer size bir bilgisayarda hesap açar. Bu hesap
sizin dosyalarını koyabileceğiniz bir hesaptır. Bu hesap sayesinde size izin verilen şeyleri
yapabilirsiniz. Örneğin izin verilen miktarda dosyalarınızı koyabilir, yayınlayabilir veya karşı
makinede dosyalarınızı çalıştırabilir, irc server gibi şeyler kurabilirsiniz. Yada
şu anda geocities gibi yerlerin yaptığı sadece dosyalarınızı depo edip, yayınlanmasını
sağlayabilirsiniz. Yani bu web yayımcılığının en temel ve basit işini yapmış
olursunuz.
Ancak web yayımcılığı daha karmaşık ve daha çok şekilde yapılabilmekte.
Bunları sağlayan şeylerin başında script dediğimiz, web browserlarından yollanan
komutlarla karşı makinada çalışan uygulamalardır. Bir script, sınırlandırılmış
bir *.exe uygulaması gibi çalışır. Belli bir yorumlayıcısı vardır ve tüm görevleri
bu yorumlayıcı yapar. Scriptte ise bu yorumlayıcının anlayacağı komutlar vardır.
Bu yüzden yaptığınız uygulamanın sınırları bu yorumlayıcının yeteneklerine
bağlıdır. Bilinen en yaygın yorumlayıcılar ASP, PHP ve Perl yorumlayıcılarıdır.
Aynı
şekilde size verilen bir hesapta, bazı normal *.exe uygulamaları yada ortamına göre sadece uygulama
çalıştırabilir, bunlarla oyun serverları, chat serverları kurabilirsiniz. Elbette bu aldığınızın
hostun yeteneklerine bağlıdır.
Böylece internete bağlı bir bilgisayarı bazı
server uygulamaları sayesinde internette bilgi paylaşabilen bir sistem haline getirip, adına web sunucusu
yada host demiş oluyoruz. Bir host içinde yüzlerce kullanıcı ve buna bağlı olarak yüzlerce
web sitesi barındırabilir. Bunun böyle olması sağlayan şey ise Domain Name Server dediğimiz
sistem ve Multi-User dediğimiz, işletim sistemleridir.
Kısaca bilmeyenler için, bir web sitesi için
gereken bir server yazılımı ve internete bağlı bir bilgisayar diyebiliriz. Ancak gerçekte durum
daha Complex bir haldedir. Bu complex yerleşim ise bu sistemleri iyi bilen kişiler için bazı avantajlar
sağlamakta ve başkasının sahip olduğu sistemlere bile onların istemleri dışında
hükmetme şansı vermektedir.
Şimdi kısaca şu anda Türkiye’de Hack adı altında
dolaşan, insanların Hack ettim diyerek övündüğü basit ve karmaşık olmayan sistemleri açıklamakta.
Bunların başlıcaları şunlardır:
Mass Scannerlar: En yaygın olanı son dönemde
budur. Bazı scannerlar, internetteki ipleri yani bilgisayarları tarayarak, onların paylaşım izni
olup olmadığını ve ftp gibi protokolllerinde erişim izinlerine Anonymous kullanıcılara
izin verip vermediğini kısa zamanda tarayıp bulan scannerlardır. Netbios ve Vulnerability scanner
diye bir kaç türleri vardır. Kullanıcının bilgili biri olması gerekmez. Tek yapacağı
ip aralığını girip tarama yapmasıdır. Aynı şekilde scriptlerdeki açıkları
ve hataları bulmak hazırlanmış scannerlarda vardır. Bunlarla mesela, internette bulunan Alış-Veriş
scriptlerinin bilinen açıkları veya Permission ayarları hatalarıyla kredi kartları bilgilerine
ulaşım yapılmaktadır. Oldukça kolay ve basit birşeydir. Bir mass scanner çok iyi Up ve Down stream
bağlantıya ihtiyaç duyar. DSL ve Tx bağlantılar biçilmiş kaftandır.
Eğer internette
gecede 100-200 site hack ettik yada saatte 1000 site hack ettik gibi şeyler görürseniz, bunların Mass toolarla
sadece butonlara basılarak yapıldığını rahatlıkla söyleyebilirsiniz. Özellikle bu hack
edilen sitelerin bir ortak yanı olmaz. Diğelim bu 1000 siteyi hack etmiş adama 1 site adresi verseniz
onu hack edemediğini görebilirsiniz. Çünkü kendi rastgele belli ip aralıklarını tarayarak bu işi
yapmıştır, belki hack edilen sitelerin adını kendi bile daha önceden duymamıştır.
Diyelimki sadece Amerikan sitelerini hack edicek biri, Amerikan hostlarının bulunduğu ve bulunabileceği,
belli Amerikan IP aralıklarını tarama yapar ve içinde açıkların olduğu siteleri bularak
işlemi yapar. Böylece saatte bağlantı hızına göre 1000 Amerikan sitesi hack edebilir. Ancak bu
sitelerin çoğu uyduruk kişisel siteler olacaktır yada kendi çabasıyla hosting hizmeti vermeye
çalışan deneyimsiz insanların siteleri olacaktır.
Başka bir şekilde de saatte
yüzlerce site hack etmek mümkündür. Bunun için atak yapan şahıs, içinde yüzlerce hesabın bulunduğun
bir Host’un açığını bulup, Root, Admin konumuna yada yetki düzeyi olacak bir konuma erişmiş
ise tüm hesapları kitleyebilir yada hesapların indexlerine erişim varsa, hazırlayacağı
ufak bir uygulama ile tüm indexleri değiştirebilir. Diyelim ki permission ayarları yapılmamış
ve tüm kullanıcılarının Home klasörleri chmod 777 gibi bir izinle hazırlanmış bir hostta,
açacağınız yada alacağınız bir hesapla, bir script yazmanız yada hostun işletim
sistemine göre bir uygulama yazmanız sonucunda, tüm klasörlerdeki indexleri değiştirip, sistemi hack edilmiş
havasına sokabilirsiniz. Bu işi eğer hostta 1000 site varsa, hepsine yapmış ve aynı anda
yüzlercesini hack etmiş olursunuz... Bu verdiğim örnek bile en azından yetenek isteyen bir örnektir ancak
yukarıda verilen tool örneği herkesin yapabileceği ve hali hazırda tüm hack sitelerinin kullanıcıların
gözünü boyamak ve kendilerini tatmin etmek için kullandıkları yöntemdir. Bilgisayar bilimi hakkında bilgisi
olmayan kişiler ise bu insanların arkasından gitmeye çalışmakta ve onların ağlarına
düşmektedirler. Unutmayın ki bu iş sihirle yapılmıyor. Size mantığı açıklanmamış
hiçbir hack girişimini gerçek sanmayın.
Fake Yollarla: Özellikle bedava siteler dağıtan
geocities gibi yerlerden sitesi olan kişilerin sitelerini çalmak için kullanılan yöntemdir. Kişinin mail
adresine sahte şifre isteyen mailler yollanır yada user’ın hesabında şifreler denenir.
Hiç bişey yapamayan lamer siteyi şikayet etmekte bulur çareyi. Eğer User ile bir chat ortamında bağlantısı
varsa ona bir Trojan yada Keylogger yollayarak şifreyi almaya çalışır. İnternet kafe gibi ortamlarda
user ve oturduğu makineleri takip ederek şifreyi almaya çalışır. Buda çok kullanılan bir
yöntem. Her zamanki gibi bilgisayar bilimi ile ilgisi olmayan kişilerin yolu veya karşısındaki user’ı
bilgisi az olunca denen yoldur.
Script Açıkları: Bilinen scriptlerin açıklarıyla, sistemdeki
bir şifreye ulaşarak yapılan yöntemdir. Örneğin bir forum scriptinin admin şifresini ele geçirip,
bu şifreyle sistemin diğer yerlerine ulaşıp, forumun anasayfasını değiştirme,
şifre FTP şifresiyle aynı ise siteyi ele geçirme gibi, bilinen ve hala kullanılan yöntemlerdir.
------------------------------------------------------------------------------
“..........İşte
Log Kurulumlarından doğan açıklardan çıkan riskler...
Bu yöntemde zor olan tek bir yer var o da
CClerin hangi program tarafından alınıp log edildiğini bulmak. Programı bulduktan sonra ise ona
bazı parametreler girerek onun log dosyasını bulmak. Zor değil, kolay. Bazı web siteleri
bile bu yöntemlerle hack ediliyor. Yapılması gereken şey scripte bazı parametreler girerek istenene
ulaşmak.
Şimdi, ilk iş kıytırık ama CC ile alışveriş yapılan bir
site bulmak ve bu sitenin CC verilerinin girildiği alana gitmek. Karşınıza CClerin girildiği
form alanı gelince kaynağı görüntüleyip, içindeki POST methodunun bulunduğu yere bakın. Diyelim
ki şu an zaten çalışan ve aktif olan http://http://www .xxxx.com/cgi-local/shopper linkini POST verisinin
yollanacağı yerde buldunuz. İşte o zaman bu durumda şans dileyip şunları deneyin:
Orda
yazan URLyi kopayalaın, eğer URL yerinde "/cgi-local/shopper" yazıyorsa başına sitenin adresini
koyun, yani http://http://www .xxxx.com daha sonra URLyi browserınızın git çubuğuna yapıştırın.
Şimdi LOG'u bulmaya çalışcaz, ilk önce bu adrese şu TAGları ekliycez, http://http://www .xxxx.com/cgi-local/shopper?search=action
bu sayede scriptten bir arama yapmasını istiycez. Tabii ki arıycak ama ne? tabii ki ufak bir keyword,
arama yapmamızın nedeni, log'u görüntülemek için başka şansımızın olmaması. Çünkü
log'u print edecek bir girdi giremiyoruz, bunun için her zaman otomatik print yapan search tagını kullanıyoruz.
Bunun
üstüne bir keyword girdisi ve üstüne de aranacak harfleri giriyoruz http://www .xxxx.com/cgi-local/shopper?search=action&keywords=yeye
şu an yeye yazdık ve yeye kelimesini aratmaya başladık ama nerde; Bunun için asıl karışık
olan kısmı yapıcaz ve yapılan alışverişlerin nerede LOGlandığını
bulucaz. İşte bu durumda devreye zeka giriyor ve denemeye başlıyoruz. http://www .xxxx.com/cgi-local/shopper?search=action&keywords=yeye%20&template=sales.log
diyoruz. Burdaki %20 boşluk anlamına, template ise aranacak kütüphane anlamına geliyor ve tabii ki
sales.log ise aranacak olan döküman. Deniyoruz ve tabii ki olmuyor çünkü sales.log yok. O zaman devam ediyoruz ve oraya
sales.log yerine sale.log yazıyoruz deniyoruz, olmazsa sell.log yazıyoruz, olmazsa order.log yazıyoruz
ve tatam, oldu İşte bütün log karşınızda, yada şöyle diyim, bütün log değil yanlızca
içinde yeye kelimesi olanlar karşınızda... Yukarda anlatılırken kullanılan taglar değişebilir.
Mesela,
?search=actin yerine ?action=search olabilir. yada direkt ?search de olabilir bunu bilmeyeiz bu yüzen deniycez. Mesela
keywords yerine keyword de olabilir. Sonuç URL http://www .xxxx.com/cgi-local/shopper?search=action&keywords=yeye%20&template=order.log
Şu
ana kadar anlattığım Shopper.Cgi için olan açıktı. Birde Cart32.exe gibi windows için hazırlanmış
olan scriptin açığı var. Onun hack edilmesi daha kolay.Cart32 kullanan bir sitede http://http://www
.michaeljackson.com/cgi-bin/cart32.exe olarak scripti bulduğunuzda, bunu http://http://www .michaeljackson.com/cgi-bin/cart32/herhangibisi-ORDERS.txt
yada OUTPUT.txt olarak girerek CClere ulaşabilirsiniz. Tabii dediğim ORDERS başka bişi de olabilir
ama genelde orders dır.
Ayrıca Cart32 de CC dışında:
Admin Şifresi için-> http://http://www
.michaeljackson.com/cgi-bin/(Cart32/)cart32.ini
Müşteri Şifreleri için-> http://http://www .michaeljackson.com/cgi-bin/cart32/cart32clientlist
Bilgisyar
Klasörünü görüntülemek için-> http://http://www .michaeljackson.com/cgi-bin/cart32/error
Unutmayın, michaeljackson.com
yerine Vulnerable olan scriptin bulunduğu site adresi yazılacaktır. Pathler değişebilir ama v4.00
a kadar olan tüm scriptlerdeki açık aynı yöntem ve komutlarla sabit kalır.”
------------------------------------------------------------------------------
Kişiyi
Kandırma: Yöntemlerin en ilginci budur J Karşınızdaki kişiyi, bir şekilde kandırıp,
ondan bir mail şifresi yada buna benzer bir şey (gizli soru cevabı) alınarak şifreye ulaşma
yoludur. Tavsiye edilmez....
Brute Ve Dict. Force: Bir dosya içine yazılmış şifrelerin bir programla
denenmesi işlemine Dictionary Attack, var olabilecek tüm şifre kombinasyonlarının denenmesi olayına
Brute Force Attack denir. Bu iki yöntem çok uzun sürecek yöntemlerdir. Eğer ki bekleyecek bir kaç yüz yılınız
varsa sonuç alabilirsiniz Ama hiç belli olmaz, kısa zamanda da sonuç alınabilir, hiç sonuçta alınmayabilir.
Şimdi
bir Dictionary Attack için şifre hazırlamak isteyenler.
----------------------------------------------------------------------------------------------
“...
İşte bu deneyeceğiniz şifreleri hazırlamada yardım edecek bir kaç şey anlatmak istiyorum.
Bunları şu güne kadar yaşadığım olaylardan esinlenerek yazıyorum.
Şimdi
diyelim ki X (12-03-1984) yaşında olan Ali adında birinin Hotmailini kıracağız. Bu adamı
az buçuk tanıyoruz. Mesela aynı okulda aynı sınıftasınız, ne kadar bu işlerden
çaktığınıda biliyorsunuz. O zaman başalyalım. Bu adamında soyadı Veli olsun yani
Ali Veli. Cep telefonuda 0 535 543 21 09 olsun.
Bu adam en basitinden şifresini bir 1984 koymak ister sonra
olmadı der 19841984 koymak ister o da olmadı 12031984 koymak ister. Bunlarla doğum tarihine göre kombinasyonlar
yapabiliriz. Daha çok seçenek var. En çok 19841984 tutar. Bu adamın şifresi 05355432109 olabilir. Yada 5432109
olabilir.
Şifre VeliAli olabilir AliVeli olabilir, babasının adı Ahmet olsun, AhmetVeli
olabilir. VeliAhmet olabilir. AlVel olabilir.Aliv84 olabilir. yada Galatasaraylı olsun benim gibi, o zaman GS84 olabilir.
aliGS84 olabilir. AGS84 olabilir. Yada ev telefonuda olabilir.
Diyelim ki gizli sorusunu bulucaz. Soru yanlızca
"ALIM" diye bir kelime. O zaman onun cevabı yukardakinin aynısı yani "ALIM" olabilir.
Yada şifre
yedi tane 7 , üç tane 3 de olabilir. 54321 olabileceği gibi 123456789 da olabilir. 0000 da olabilir 9876543210 da
olabilir.
Oturduğu apartman, şehir, sokak isimleride kullanılır. Annesinin kızlık soyadı.
Yada okul numarası. Sonuçta kişi unutmamak için herkesin bildiği ve kullanılan bazı numaralardan
ve isimlerden bir kombinasyon yapmak isteycektir. Bizim burda yapmamaız gereken burda bu kişiye göre yapılabilecek
kombinasyonları tahmin edip bir sözlük hazırlayarak. Dict. attack yapmak olacaktır. Baya uzun süren bir
iş olabilir ama bu tarz şifreler kullanan biriyse kesin düşer zokaya.
Mesela bazı klavye oyunları
vardır. Q klavyeler QWERTY harfleriyle başlar, bunlar rahatlıkla şifre olabilir. Yada QAZWSXEDC harfleride
olabilir. Bakın bakalım bu harfler klavyede nasıl dizilmiş?
Yada rakamlardan 98745632210 olabilir.
Bu sizin düşünce kabiliyetinize bağlı daha çok üretebilirsiniz.
Bu tarz klavye oyunlarıyla
hazırlanmış, ayrıca kişiye özel olarakta hazırlanmış bir sözlüğün; sanıyorum
ki başakalarının şifrelerini bulmakta büyük yararı olur, ki oluyor zaten. Bazen şahıslar
en sevdikleri hayvanı, eşyayı, şarkıcıyı, futbolcuyu falanda yazarlar. Demek ki
şahsi olan biligilere ve klavye oyunlarına dikkat etmemiz gerekiyormuş. Önemli olan kişi için kolay
hatırlanabilecek bir şey yazmak. Herkes şifrelerini bu mantıkla bulur. Eminimki bu yazıyı
okuyanlardan, yani sizlerden birileri de burda kendi şifresinin formülünüde görmüştür. Dedim ya herkes bu
tarz şeyler kullanıyor. Ama bilmiyor ki bu yöntemleri bazıları zaten biliyor. İnsan mantığı
işte, her yerde aynı...”
----------------------------------------------------------------------------------------------
Bilgisayar
Bilimiyle uğraşan yada bu işlerden daha çok anlayanların kullandılkları yöntemler:
Bu
kişiler yukardaki yöntemleri kullanabilir ama yukardaki bilgileri kullanabilen kişiler bu yöntemleri kullanamaz...
Enjeksiyon
Yöntemleri: Bilinen scriptler veya bilinmeyen scriptler içindeki açık ve hataları kullanarak, bir database’e
kod girme yada benzeri bir kodun çalışmasını sağlamaktır. Örnek vermem gerekirse, 2003 mayıs
ayında, bir siteyi bu yöntemle hack etmiştim. Site bir arama motoru koymuştu. Arama motorunda yazdığınız
kelime en son arananlar diye bir liste çıkıyordu ve orda da ana sayfada gözüküyordu. Ancak aramaya girilen kelime
“, \, /, <, > içerse bile bu içerilen HTML koduna aynen yazılıyordu. Yani Special Chars dediğimiz
bu karakterler doğal halleriye yazılıyor &NbSp; gibi özel HTML dili ile yazılmıyordu. Bende
arama kısmına ufak bir Java Script yönlendirme kodu girdim ve anasayfayı kendi siteme yönlendirdim. Böylece
o siteye giren kişi 1 saniye sonra direkt bizim siteye yönlenmiş oluyordu. Bu örnekte olduğu gibi, bazı
forum scriptlerinin kullandığı DataBase’lere bazı kodlama hatalarından yararlanarak, değerler
girilebiliyor. Bunların en ünlülerinden birisi, 2002 yılında bulunan Snitz forumları açığıdır.
Permission
Açıkları: Gerek HTTP gerek FTP üzerinden olsun, bu açıklar her şekilde risk oluşturur. En güvenli
sistem, Unix/Linux sistemidir. Bildiğiniz üzere Multi-User işletim sistemlerinde, bir dosyaya sizden başka
kimin ulaşıp, ulaşamayacağını ayarlayabileceğiniz, Kernel tarafından yönetilen
bir Permission Tablosu vardır. Linux ile bir örnekle açıklayayım: Bir Linux makinada benim Home klasörüm
“gokhan” olsun ve yolum aşağıdaki gibi olsun:
İçinde de MichaelJackson.mp3 diye
bir dosya olsun.
“ /etc/home/gokhan/spymastersnake/MichaelJackson.mp3”
Burdaki “etc”
klasörü herkesin okumasına açık, ancak yazma işlemlerine kapalı bir klasördür. Ben klasörün içeriğini
görebilirim ama içine dosya koyamam. Diyelimki “etc” altında BeatIt.mp3 isimli bir dosya olsun. Klasörün
herkese açık okunabilir READ ayarı açık oldukça bu dosyayı alabilirim. Eğerki Herkese açık
EXECUTE ayarı açıksa ben bu dosyayı Shell den komut girerek bir mp3 playerla açabilirim. Eğerki Dosyanın
READ ayarı herkese kapalı ise ben sadece bu dosyayı okuyamam. Aynı şekilde dosyanın READ
ayarı açık olursa fakat klasörün READ ayarı kapalı olursa “etc” klasörünün içi boş
görünsede dosyanın direk yolu yani “/etc/BeatIt.mp3” girilirse ben bu dosyayı okuyabilirim.
İşte burda anlattığım klasör ve dosya Permission ayarlarında bir kullanıcı bir
klaörün READ ayarını kaldırarak o klasörün içindeki bir dosyanın erişime kapalı olduğu
sanmaktadır. Halbuki burda erişime kapalı olan klasörün içeriğidir. Yani TOC dediğimiz Table
Of Contets öğesidir. Ki bu öğe yine KERNEL tarafından düzenlenir. Elbette bu anlattıklarım
Web serverları üzerinden yaptığınız istemler için değil, makinada sahip olduğunuz shell
ile yada FTP ile yapabileceğiniz şeyler.
“gokhan” klasörü burda sadece benim grubuma yada bir
değişle sadece bana açık olan kısımdır. Öyleki sadece yazma yetkisi Group ve Admin elindedir.
Eğerki biri bu ayarı herkesin yazıp okuabileceği moda getirirse, bu “gokhan” klasörü
halka mal olmuş umumi bir klasör olur J Ve sonuçta altında bulunan tüm dizinler riske girer. Bu tarz Permission
hataları ile hacklenen yada veri kaçırılan sitelerin sayısı saymakla bitmez. Şu an hala
Kredi Kartları çalınabiliyorsa bunun nedeni bu ayarların yapılamamasıdır.
Bir klasöre
uyguladığınız izin ayarı, sadece o klasör’ün TOC’i içindir. İçindeki bir dosya
bundan etkilenmez. Fakat dosyanın EXECUTE edilebilmesi gibi klasörün durumununda sorulduğu zamanlarda bu önem
taşır. Bir dosyanın edit edilmesi demek, o dosyanın silinip yerine bir yenisini yazmaktan farksızdır,
bu yüzden Write izni açık olmayan bir klasördeki dosyayı editleyemezsiniz yada klasöre yeni dosya koyamazsınız.
Permission ayarlarını bilmeyen yada detaylı bir webmaster için son her zaman 1 adım yakındadır.
Nitekim bu ayarları bilmeden “Forum Kuracam” diye ortalığa çıkan ve her ne hikmetse
her önüne gelenin forum kurduğu bir ülkede, bu ayarlardan çıkan açıklar önem taşımaktadır.
Eğer
bir yerden host almışsanız, o makinada bir hesabınız var demektir ve komut çalıştırabilirsiniz
demektir. Bunu yapmak için scriptler birebirdir. Eğer ki SSH yetkiniz varsa bunu SSH Shelli üzerinden yada Telnet
varsa onun üzerinden de yapabilirsiniz. Bunu en güzel örneği bir scriptle komut çalıştırmak için
PHPde şudur..
PHP --------------------
--------------------
Bir çok bilimsel bilgisi
eksik kişi, bu olayı ASP için düşünerek, bunun bir açık olduğunu sanmaktadır. Ve adına
FSO açığı demektedir. Halbuki bu bir açık değildir. Size verilen bir haktır.
Şimdi
size 2001 yılında yazmış olduğum, Web Hack dökümanından bir alıntı ile konuyu
açacağım.
---------------------------------------------------------------------------------------------
“.........
Bir baktım ki onlarda bizim formumumuz olan IKONBOARD un aynısını kullanıyor. Neyse baktım
xxxxx benim türkçeleştirmediği yerleri de türkçeleştirmiş forumun. Bende benim forumdan ve onun forumdan
ona PM attım ve bu dosyaları istedim. Bana vereceğini söyledi, aradan vakit geçti dosyaları alamadım
çünkü xxxxx sanıyorum ki evinde değilmiş şehir dışındaymış.
Bende
baktım olmuyor bekle bekle, Allah'a şükür bu işlerden anladığım için hemen yapmam gerekeni
yaptım ve onun bana yollayacağı dosyaları kendim aldım... nasıl mı?
Ben ikonboard'un
dil dosyalarını falan nereye kurduğunu biliyorum. Yani tüm klasörlerin nerede ve hangi isimle olduğunu
biliyorum. Çünkü bende ikonboard kullanıyorum. Bende madem öyle dedim, ve forumun dil dosyalarını indirmeye
başladım yaptığım şu idi. Mesela hata mesajlarını bulunduran dil dosyasını
istiyorsam http://http://www .xxxxx.com/cgi-bin/ikon3/Languages/en/ErrorWords.pm yazmam yeterli. Dan diye ben bu dosyayı
download edebiliyorum.
İşte ben böylece tüm dosyaları download ettim ve gördüm ki onun forum ile benim
forum farklı versiyonmuş dosyalar uyuşmadı.
Herneyse ben istediğimi aldım ama iyi bir
insan olarak. Peki diyelim ki ben kötü biriyim ve neler yaparım. İlk yapıcağım iş forumun
DATABASE dosyasını ele geçirmek olacaktır. Bu sayede ben tüm forumdaki kullanıcılara şifrelere
ve maillere ulaşabilirim. Bu kadar basit! Ha bu şifereler HASH edilmiş olacağından siz okuyamazsınız
bunları. Bunu CRACK etmeniz gerekir. Tabii ben okurum bunları. Olay basit aklını kullanacaksın.
Kendi
bilgisayarımdaki COOKİE dosyasını açarım(programla), Forum adminin ID sini ve HASH edilmiş
şifresini o databaseden alırım ve kendi COOKİE dosyama koyarım. Forumun sayfasına girince
bir bakarım ki ADMİN olarak forumdayım. Daha sonra admin şifresini değiştiririm. Sonrada
sitenin tamamını hack ederim. Bu da basit en önce aldığım şifre ile FTP de bir deneme yaparım.
Baktım olmuyor, bu forumların File Managerları var, isteyin dosyayı Admin odasından siliyorsun
değişitriyosun falan. Ona girerim ve gerisini siz düşünün artık. Bu iş bu kadar kolay! Bütün
bir site bir anda ufak bir hata ile elinizin içine düşebilir....”
---------------------------------------------------------------------------------------------
Gördüğünüz
gibi en ufak hata yada unutkanlık dediğiniz şey bile, bu işi bilen kişilerin eline geçtiği
andan bir şeylerin sonu olabilir. Yukarda bahsedilen örnek büyütülerek, aynı host altında bulunan başka
sitelerinde zarar görebileceği bir hale sokulabilir! Elbette bu şans gerektiren bir durum olur ama bu tarz
olayların yaşanabileceği bir gerçektir.
Host Deface: Bir host gözde abartılacak bir sistem değildir.
Hatta çoğu dedicated bir FireWall ile korunmaz bile. Çoğu 3-4 bilgisayardan oluşan amatör düzeyde hostlardır.
Sadece bir kaç büyük firma, odalar dolusu büyüklükte Dedicated host makinlarına sahiptir. Ama bu onların açığı
olmayacak anlamına gelmez. Açığı buluncak kadar büyük olmasa bile mutlaka saldırılara
dayanma sınırları vardır. D.o.S dediğimiz saldırılara karşı bir çoğu
kendini bazen yenik halde bulabilir. Hemde var olan FireWalllarıyla beraber. Peki nedir D.o.S?
D.O.S (Denial
of Service) dediğimiz ataklar, T1 T3 dediğimiz yüksek bağlantılı makinalar yada basit Win tabanlı
ve Dial-up tabanlı makinalar tarafından yapılan ping gönderme aşırı paket yollama ve BandWitdh
dediğimiz sınırlamalı veri transferi dediğimiz olayın üstüne çıkarak Rate Limit Exceded
gibi server hataları almamızı ISPden kopmanızı ve bağlantımızın crash olmasını
sağlayan NUKE de dediğimiz ataklardır. Bu atakları herkes programa ihtiyaç duymadan yapabilir ama
bu iyi bir bağlantı ve Win atağı değilse Unıx gibi sağlam bir sistem gerektirir. WinXP
ve 2000 bu ataklar için önlem almış sistemlerdir ve internete hızlı bağlanırlar. Daha çok
bilgi için Buaraya Bakın. Kısaca D.o.S bir server’a karşılayabileceğinden fazla istek
ve paket yollama durumudur. Bu durumda sunucu programı kilitlenir ve iyi kodlanmamış stabil olmayan bir
server programı ise hata verip kapanabilir. Ve o site siz bunu yaparken devre dışı kalır. Düşük
bağlantılı bir bilgisayar ile yapılan D.o.S her zaman yüksek bağlantılı makinaları
kullanarak olmak zorundadır. Bunun içinde başka bilgisayarlar kullanılır.
D.o.S benzeri
başka ataklarda vardır. Bunlarda paket yollama yerine bir URL yada POST metodu için yüzlerce istek üretir. Bunlarda
Flood programları denir. Bunların bir link’e tıklanması için hazırlanan versiyonlarına
Clicker denir. Bu üç program türünün ve saldırı türününde mantığı aynıdır.
Bir
forumun Search bölümüne yapacağınız binlerce istek o forum scriptinin ve hostun size ayrılan CPU bölümünün,
istekleri artık daha geç karşılamasına ve bazende database’in bir hata ile çökmesine neden olabilir.
Buda veri kaybı demektir. Bir forum scriptini yavaşlatıp hata vermesini sağlamak için, en güzel
yöntem arama kısmında aynı anda yüzlerce arama yaptırmaktır. Çünkü arama işlemi database’i
en çok yoran ve bol cpu harcayan işlemdir.
Aynı şekilde çoğu kez bir çok Host makinasında,
farkında olmadan açık unutulan Control Panel arayüzleri ve benzeri Shell tarzı, Telnet tarzı sunucular
olmaktadır. Bu tarz kullanılmayan sunucuların portlarını bulmak ve portlarından bir mesaj
alarak hangi programın çalıştığını bulup şifre denemek, açık denemek en mantıklısıdır.
Bir
FTP server’ına bağlandığınızda bazen sizin home klasörünüz dışındaki bir
klasöre çıkmanıza izin verilir. Ama çıktığınız klasörlerin içini boş görürsünüz.
Eğerki bazı Full Pathler bulursanız, bu tarz serverlar içinde diğer kullanıcıların
home klasörlerine ulaşabilirsiniz.
Ayrıca bu kısımda incelenecek bir diğer kısım
ise Vulnerabilites dediğimiz, korumanın zayıf noktalarını bize veren programlama hatalarıdır.
Örneğin, Apache serverlerinda, kodlamadan çıkan bir hata size o server'a saldırma, sızma gibi
imkanlar sağlayabilir. Aynı şekilde sürekli yama çıkarılması nedeniyle yamalı gömleğe
dönen Windows 2000 de bulunan bir güvenlik açığı, size bir çok kapıyı açacaktır. Bu tarz
açıkları, "securityfocus" gibi güvenlik haber sitelerinden takip edebilir, veya kendiniz sistemde denemeler
yaparak yeni açıklar bulabilirsiniz.
Benim kendi kendime deneyerek bulduğum açıklar oldu,
hiçbirini de program sahiplerine yada güvenlik haber sitelerine iletmedim. Ancak bu işleri yapıp, bu haberleri
veren bir çok kişi bulunmakta. Ve çoğuda News yada Mail gruplarına üyedir. Eğer bir açığı
herkesten önce öğrenmek istiyorsanız bu yerlere üye olunuz. Haftada 1-2 kez hepsini kolaçan etmek, sizin
açınızdan faydalı olacaktır. Geri kalan vakitte ise sürekli ingilizce kaynaklardan yazılar okuyarak
ve düşünüp, uygulama yapmalısınız.
Exploitler: İşin hem bilgili hemde bilgisiz
kısmına hitap edebilen tek bölümdür. Exploit ingilizce bir kelime olup, anlamı “Sömürme” dir.
Burda sömürülen şey, bir host’un size açmış olduğu yetenek ve olanaklardır. Örneğin
bir host size Shell uygulamaları çalıştırmanıza izin veriyorsa ve siz bu izinle bir D.O.S programını
saldırı yapmak için kullanıyorsanız bu bir Exploittir. Aynı şekilde, o hostun hack edilmesini
sağlayacak, Kernel’e zarar verecek bir program açıyorsanız, yada bir MySQL serverına bulduğunuz
şifre ile bir bilgi girecek yada bir bilgi alacaksanız ve o sistemi hack etmeye çalışcaksanız
buda bir Exploittir. Kısacası, host’un yetenekleri ile, kendisi dahil olmak üzere, bir sistemde istenmeyen
bir iş yapacaksanız, bu Exploittir. Bir hosting firmasından host alırken size bir sözleşme imzalatırlar.
Bu sözleşmede, bir program çalıştıramıyacağınız yada bir server daha kuramayacağınız
gibi şeyler yazar. Yani tüm host sağlayanlar sizin yapabilecklerinizin farkındadır ama çoğunlukla
bu sözleşmeleri okumayan sizler onların farkında olmadığını sanırsınız. Explotiler
internette özellikle *.pl uzantılı Perl scriptleri halinde dolanırlar. Esas görevleri içinde kodlanmış
olan şeyleri yapıp size bir kapı açmaktır. Bu işleri bilmeyenler bu hazır scriptleri alır
ve kullanırlar. Bilen kişiler ise kendileri düşünüp, bu scriptleri yazarlar. Yukarlarda bir yerde verdiğim
bir hosttan tüm userların hack edilmesi örneğinde kişinin yazacağı script yada program bir Exploit
niteliği taşır. Çünkü tüm userların home klasöründeki indexleri değiştirmektedir. Ancak
bu exploitlerin en güzeli Kernel’in işlevini bozmak için yazılanlarıdır. Öyledir ki, bir dönem
WinNT için her normal user’a Administrator yetkileri atayan bir exploit bulunmuştu. Bu exploit açıldığı
anda sistemi Unstable yapıp makinanın tekrar başlamasını sağlıyordu. Daha sonra ise
kernel deki Permission sistemi bozuluyordu. Fakat burda unutulmaması gereken kısım, exploiti harekete geçirecek
olan *.exe dosyasını açabilme yetkinizin olması. Ayrıca o *.exe dosyası da Token Proccess olan
Privilige ayarlarını yapabilmeli. Aksi halde bir exploiti çalıştırıp Kernel’e zarar
vermek kolay değildir.
Domain Hack: Hack etmeye çalıştığınız sitenin domanini elde
etmek, bir şekilde onu devre dışı bırakmak en zor olanıdır. Bunun için bir şekilde
domainin şifresi, domainin Registrar’ının açığının yakalanmış olması
gerekir. Eğerki böyle bir şey yapılabilirse, o site ömür boyu size ait olabilir. Bunun yöntemleri çok
fazla değildir ancak sonuç alma ihtimali az olduğu için fazla üzerinde durulması anlamzsızdır.
Ancak böyle bir ihtimal ve yöntemin olduğunu bilmeniz size avantaj sağlayacaktır. Yukarıda anlatılmış
olan 10 yöntem grubundan elbette daha çok yöntem var. Ve hepside yetenek-zeka ikilisine dayanmakta. Ancak benim yukarda
yazdığım 10 yöntem bunların en yaygınları. Bazı bir kaç özel, yaygın olmayan ama
çok rahat kullanılabilen yöntemlerde var.
Unutmayın ki bu işler sihirle yada değnek ile olmuyor.
Herşey bir araştırma ve düşünme sonucunda oluşan şeyler. Bir gün 50 bin yada 150 site hackledik
gibi bir site ile karşılaşırsanız şaşırmayın, onlar bu işlere yeni başlamış
ve insanları çevrelerine toplamak isteyen kişilerdir. Bilgi almaya giderseniz, eliniz boş dönersiniz,
çünkü olmayan bir şeyi almanız zor olur, olsa bile alabileceğiniz meçhuldur
İngilizcesi iyi
olmayan bir yada hiç olmayan birinin, bu işleri yapması kısaca imkansızdır. Lütfen bol bol ingilizce
çalışın ve dilinizi geliştirin. Hiçbir yöntem veya programı (trojan) aşağılamayın,
çok ufakta görünse bir açık, sonuçta açıktır ve gün gelip başınıza bela olabilir.
Bu
yazıyı okuduğunuz için teşekkür ederim Biraz vaktinizi aldım ya neyse .
|