Google ile Güvenlik Açıkları Tarama∗

Transkript

Google ile Güvenlik Açıkları Tarama∗
Google ile Güvenlik Açıkları Tarama∗
Emin İslam Tatlı
Bilgisayar Bilimleri Bölümü, Mannheim Üniversitesi, Almanya
[email protected]
Temmuz 2006
1
Giriş
İnternet dünyasında teknolojik anlamda baş döndürücü bir ilerleme görülmektedir. Her geçen gün
yeni servisler ve uygulamalar hayatımızı kolaylaştırmak ve renklendirmek adına bizlere sunulmaktadır. Ancak bilgiye ulaşmak ve bilgiyi kullanmak güvenilir bir şekilde gerçekleştirilirse kabul görür,
en azından görmelidir. Fakat ne yazık ki gerçek böyle değildir. Her yeni teknolojik ürün beraberinde güvenlik açıkları ile birlikte gelmekte ve bu bilgi güvenliğini daha da kritik hale getirmekte ve
bilgi güvenliğinin önemini artırmaktadır. Zorlama bir deyişle teknoloji ilerledikçe güvenlik seviyesi
düşmektedir.
Bilgi güvenliğine bir saldırgan gözü ile bakmaya çalışalım. Bir saldırgan öncelikle hedefini belirler. Bu hedef kesin bir hedef olabileceği gibi rasgele seçilmiş bir hedef de olabilir. Örneğin güvenlik
açığı barındıran bir yazılımı kullanan web sunucuları saldırganın rasgele hedefi olabilirler. Saldırgan
daha sonra hedefinin çalıştırdığı servisleri, uygulamaları ve bunların içerdiği güvenlik açıklarını bulmayı ve bu açıkları kullanarak saldırısını başarıya ulaştırmayı hedefler. Bugün uzak bir sistemdeki
açıkları otomatik olarak tarayan ve bulduğu açıklara karşı tedbirler sunan birçok uygulama vardır
[12, 1, 13, 11]. Yine www.securityfocus.com, www.securiteam.com gibi güvenlik portalleri, farklı uygulamaların içerdikleri açıklar, bu açıkların nasıl kötü amaçlı kullanılabileceği ve gerekli tedbirler
üzerine çok zengin bilgi bankasına sahiptirler.
Google bir web arama motorudur. Aradığınız kelimeyi google’a verirsiniz ve google veritabanında indekslediği 20 milyarın üzerindeki girdiyi tarayarak ilgili sonuçları size döndürür. Google’ın bu hizmetini hepimiz çok beğenmekte ve de kullanmaktayız. Ancak işin bir de karanlık
yüzü var. Saldırganların da vazgeçemediği bir servistir google. Saldırganlar, google sayesinde web
sunucuları tarafından erişime sunulan gizli dosyalara ve parola dosyalarına erişme, güvenlik açığı
içeren yazılımları tespit etme, veritabanı sunucusuna erişme, kullanıcıya özel bilgileri ve kredi kartı
numaralarını ele geçirme gibi birçok farklı saldırı gerçekleştirebilirler. Daha kötüsü bunların hepsini
kendileri için otomatik bir araç niteliği taşıyan google’da bir tıklama ile yaparlar.
∗
Bu yazıda anlatılacak olan bilgileri kendi sisteminizi korumak amacıyla kullanacağınız varsayılmaktadır.
Kötü amaçlar için kullanımların yasal olarak sorumluluğu vardır ve yazar bunlardan sorumlu değildir.
1
Ben bu yazımda Google Hacking diye tabir edilen google’ın saldırı amacı için nasıl kullanıldığını
örneklerle detaylı olarak anlatacağım. İlk bölümde google’da gelişmiş arama için kullanabileceğimiz
parametreleri ve sonraki bölümde bu parametrelerin saldırı amacı ile nasıl kullanıldığını gerçek
örnekler üzerinde göstereceğim. Aramaları türkçe içerikli sayfalarla nasıl sınırlanabileceğini anlattıktan sonra google hacking için kullanabilecek otomatik tarama uygulamalarından bahsedip
google hacking’e karşı ne gibi önlemler alınabileceğini açıklayarak yazıma son vereceğim.
2
Google Gelişmiş Arama Parametreleri
Google aramanızı daha etkin hale getirmek için çeşitli filtreleme parametrelerini desteklemektedir
[4]. Bu parametrelerin belli başlıcaları işlevleri ile birlikte bu bölümde anlatılacaktır. Parametrelerin daha iyi anlaşılması için phpmyadmin uygulaması ile ilgili örnekler verilecektir. Phpmyadmin, MySQL veritabanlarını yönetmekte kullanılan bir web uygulamasıdır. Phpmyadmin arayüzüne
uzaktan erişim için gerekli kimlik denetimi önlemleri alınmalıdır. Google parametreleri açıklanırken
gerekli güvenlik tedbirleri alınmadığında başkalarının da nasıl rasgele phpmyadmin arayüzüne erişebildikleri aşağıda örnekler ile gösterilecektir.
• [all]inurl: Bu parametre ile aramanızı url’de spesifik bir kelime geçip geçmemesine göre
filtreleyebilirsiniz. Örneğin üzerinde phpmyadmin kurulu sunucuları listelemek için url’sinde
phpmyadmin/index.php yolunu içeren bir aramayı sorgulayabiliriz. Bunun için google’da inurl:
"phpmyadmin/index.php" filtresi ile arama yapmamız işimizi görecektir. Url’in içermesi istenen birden fazla kelime var ise inurl yerine allinurl parametresi kullanılmalıdır.
• [all]intitle: Web sayfasının başlığı ile ilgili filtrelemelerde intitle parametresini kullanmalıyız.
Phpmyadmin’in standart başlığı “running on localhost - phpMyAdmin Sürüm Numarası”
şeklindedir. Sürüm numarasını görmezden gelip intitle:”running on localhost - phpMyAdmin”
filtresi ile arama yaptığımızda yine web sunucularındaki phpmyadmin uygulamaları listelenecektir. Başlığın içerdiği birden fazla kelime var ise allintitle parametresi kullanılmalıdır.
• [all]intext: Bu parametre ile sayfa içinde geçen kelimelere bağlı olarak filtreleme yapabiliriz.
Örneğin phpmyadmin’in giriş sayfasında geçen “Welcome to phpmyadmin” kelime gurubunu
intext parametresi ile filtreleyip google’ın bize ilgili phpmyadmin uygulamalarını listelemesini
sağlayabiliriz. Birden fazla kelimeyi filtrelemek için ise allintext parametresi kullanılmalıdır.
• site: Bu parametre ile alan adı filtrelemesi yapılır. Örneğin aramamızı Türkiye’deki üniversiteler ile sınırlı tutmak istiyorsak site:edu.tr filtresini kullanmamız gerekir.
• filetype: Bu parametre ile aradığınız kelime grubunun geçtiği dosyaları uzantısını göre filtreleyebiliriz. Örneğin sadece php uzantılı dosyalarda arama yapmak için filetype:php parametresi kullanılmalıdır.
• ext: Bu parametre filetype parametresi ile aynı işlevi görüp dosya uzantısını filtrelemekte
kullanılır. Birden fazla dosya uzantısını filtrelemek için OR mantık operatörü kullanılabilir.
Örneğin hem excel hem word belgelerinde arama yapmak için ext:xls OR ext:doc filtresini
kullanmamız gerekecektir.
2
• link: Bu parametre ile belirttiğimiz linki içeren sayfalar google tarafından listelenecektir.
Örneğin www.teknoturk.org portaline link veren web sayfalarını listelemek için link:teknoturk.org
filtresi kullanılmalıdır.
• cache: Bazı web sayfaları zamanla erişimden kaldırılmış ya da güncellenmiş olabilir. Ancak
google bu sayfaların erişim zamanındaki ya da güncel olmayan içeriklerini saklayabilmektedir
ve cache parametresi sayesinde bu sayfalara ulaşmak mümkündür.
• Semboller: Başına eksi (-) işareti konan bir parametre olumsuz işlev görerek bu parametre
ile belirtilen filtrenin döndüreceği sonuçlar listelenmeyecektir. Örneğin -site:tr şeklinde bir
filtreleme, tr uzantılı sunucular arama sonuçlarında listelemeyecektir. | işareti mantıksal OR
operatörü yerine kullanılabilir. Nokta sembolünün (.) kullanıldığı yere ise herhangi bir karakter gelebilir demektir. Örneğin fire.fox kelimesi arandığında fire fox, fireAfox, fire1fox, fire-fox
gibi kelimeleri içeren sonuçlar listelenecektir. Yıldız sembolü (*) ise uzunluğu farketmeksizin
herhangibir karakter grubunun yerine kullanılmaktadır. Örneğin fire*fox kelimesi arandığında
fire ve fox, fire the fox gibi kelime gruplarını içeren sonuçlar listelenecektir.
3
Örneklerle Google Hacking
Google’ın gelişmiş arama seçeneklerini kullanarak bulunabilecek olan güvenlik açıkları çok çeşitlidir.
http://johnny.ihackstuff.com[7] sitesinde bu tip google aramalarını içeren bir veritabanı bulunmaktadır. Temmuz 2006 tarihi itibari ile bu veritabanında 1400’den fazla farklı sorgu çeşidi bulunmakta
ve bu sayı her geçen gün artmakta, var olan girdilerde iyileştirmeler yapılmaktadır. Bu veritabanındaki girdileri inceleyerek mümkün olan güvenlik taramalarını 9 farklı grupta topladım ve her
gruptan en dikkat çekici aramaları aşağıda açıkladım.
3.1
Erişilmemesi Gereken Programlar
Bu bölümdeki aramalar, sunucular üzerinde sadece sistem yöneticilerinin ulaşması gereken ancak
gerekli kimlik sınanması yapılmadığından herkesin erişimine açık olan uygulamaları listelemektedirler.
(a) "PHP Version" intitle:phpinfo inurl:info.php
"created by phpsysinfo" inurl:phpSysInfo
phpinfo ve phpSysInfo betikleri, üzerinde çalıştırıldıkları sistemin donanım, yazılım ve ağ
ayarları ile ilgili detaylı bilgiler listeleyen uygulamalardır ve izinsiz kişilerin erişimine karşı
gerekli kimlik doğrulamasının yapılması gerekir. Ancak bu aramanın sonuçları durumun hiçte
böyle olmadığını gösteriyor.
3
(b) "Enter ip" inurl:"php-ping.php"
Bu arama bize üzerinde ping web uygulaması içeren sunucuları listeler. Bu listedeki uygulamalardan birini seçip herhangi bir bilgisayara anonim bir şekilde ping atabiliriz.
(c) "Enable stderr" intitle:"PHP Shell" filetype:php
PHP Shell, web sunucuların üzerinde kabuk komutlarını çalıştırılmasını sağlayan php tabanlı
bir programdır. Şayet gerekli güvenlik önlemleri es geçildiğinde bu google araması sayesinde
saldırganlar uzak sunucularda komut çalıştırma ve dahası sistemi ele geçirme imkanına sahip
olurlar.
(d) "There are no Administrators Accounts" inurl:admin.php
PhpNuke portalı, bir sisteme kurulduğunda bir yönetici hesabının oluşturulmasını bekler.
Ancak bazı sistem yöneticileri bunu görmezden gelirler ve saldırganlara yönetici hesabı açma
yetkisini vermiş olurlar.
(e) intext:"webalizer" intext:"Total Usernames" intext:"Usage Statistics for"
Webalizer [18], üzerinde çalıştığı web sunucusunu ziyaretçi aktiviteleri ile ilgili istatiksel bilgileri tutan bir web uygulamasıdır. Örneğin en çok ziyaret edilen sayfalar, sisteme girmekte
kullanılan kullanıcı adları, ilgili sitede hangi kelimeler aratılmış gibi farklı konularda istatiksel
bilgileri kaydetmek mümkündür. Ancak bu uygulama da yine saldırganların kötü emellerine
hizmet edebilir. En basitinden, bu arama ile rasgele eriştiğim web sunucularının en çok ziyaret
edilen dosyalar listesinde karşılaştığım php.bak yedek dosyaları sayesinde betiklerin içeriğini
görmek ya da phpinfo gibi betiklerin varlığından haberdar olmak mümkün oldu.
(f) "Powered by PHPFM" -"username" filetype:php
Bir dosya yönetim uygulaması olan PHPFM ’de kullanıcılar normalde kimlik denetiminden
geçmeleri durumunda dosyalara erişim hakkı kazanırlar. Ancak kimlik denetiminin iptal edilmesi seçenek olarak sunulmuştur ve tahmin edileceği üzere kimlik denetimini edilgenleştiren
(deactivate) yöneticiler sayesinde gizli kalması gereken birçok dosyalar PHPFM uygulaması
aracılığı ile herkesin erişimine açılır.
4
(g) intitle:"twiki" inurl:"TWikiUsers"
TWiki, kurumsal şirketlerin, organizasyonların proje yönetiminde sıklıkla kullandıkları bir
web uygulama platformudur. Proje belgeleri, proje katılımcıları ile ilgili kişisel bilgiler TWiki’de
tutulmaktadır. Ancak sürümüne bağlı olmak üzere, TWiki birçok güvenlik açığı da içermektedir.
Bu arama ile birçok Twiki platformuna erişmek mümkündür.
(h) intitle:"Welcome to IIS 4.0"
intitle:"Welcome to Windows 2000 Internet Services"
Bu aramalar ile windows sunucuları yüklü bilgisayarlar listelenmektedir. Bu sayede hedef sunucu üzerindeki işletim sistemini öğrenmiş olmanın yanında varsayılan olarak kurulmuş olan
bu sunucular bilinen güvenlik açıklarını da muhtemelen içermektedirler.
(i) intitle:"Page rev" inurl:"admin"
RedHat sunucusu yönetici sayfalarına erişimi sağlayan bir aramadır. Bu sayfalarda kimlik
denetimi gerekse de saldırgan uzak sistemin çalıştırdığı işletim sistemi hakkında bilgi edinmiş
olur.
3.2
SQL Enjeksiyon (Injection) Açığı İçeren Uygulamalar
Web uygulamalarının bir çoğunun her bir sürümü çeşitli güvenlik açıkları içermektedirler. Google
ile güvenlik açığı içeren web uygulamalarını sürümüne göre filtreleyerek aratmak mümkündür. Bu
bölümde, sql enjeksiyon açıklarını içeren uygulamaları google ile bulan aramalara örnekler verilmektedir.
(a) "Powered by X-Cart: shopping cart software" -site:x-cart.com
"More Info about MetaCart Free"
"Shop Administrators only" inurl:shopadmin.asp
Yukarıdaki aramalar, sıklıkla kullanılan çevrimiçi (online) e-ticaret uygulamalarını listelemektedirler. İstisnasız bu uygulamaların hepsi sql enjeksiyon açıkları içermektedirler. Saldırganların bu açıklardan faydalanarak veritabanlarındaki kullanıcı gizli bilgilerine (kredi kartı, adres, telefon v.s.) ulaşmaları mümkündür.
Örneğin www.securityfocus.com/bid/8105 ’de detaylı açıklandığı üzere ProductCard uygulamasının içerdiği bir açığı kullanarak kimlik sınamasını (authentication) atlamak mümkündür.
5
(b) intitle:"View Img" inurl:viewimg.php
viewing.php betiği (script), url içerisinde kodlanan path değişkeninin geçerliliğini gerektiği gibi
denetlememektedir. Bu açığı kullanarak farklı klasörlerin içeriğini görüntülemek mümkün olmaktadır. Şekil 1’de bu güvenlik açığını kullanarak sistemdeki dosyaları listeleyen bir açığın
sonucu görülmektedir.
Şekil 1: viewimg.php Betiği Güvenlik Açığı
(c) "advanced guestbook * powered" inurl:addentry.php
Advanced Guestbook uygulamasının 2.2 ve öncesi sürümlerinde kimlik denetimi esnasında sql
enjeksiyon açığını kullanarak kullanıcı adına admin ve parola kısmına ’) OR (’a’=’a yazmak
sureti ile admin olarak sisteme girmek mümkün olmaktadır.
(d) "login" intitle:(phpWebMail | WebMail) ext:php
PHPWebMail, imap ve pop3 protokollerini destekleyen bir web posta programıdır. Programın
2.3 sürümü url parametrelerinin denetimini tam yapamamakta ve saldırganlara istedikleri
dosyalara erişim hakkı vermektedir.
3.3
Güvenlik Tarama Raporları
Otomatik güvenlik açığı tarayıcıları, tarama sonuçlarını bir araya getirerek pdf, html, doc gibi formatlarda rapor olarak sunmaktadırlar. Bu bölümdeki aramalar bu araçların oluşturduğu raporları
bulmaktadır. Bu sayede saldırgan ilgili sistemde var olan açıkları kolayca öğrenmiş olur.
6
(a) "The following report contains confidential information"
"This report lists" "identified by Internet Scanner"
Bu google aramaları güvenlik taraması raporlarını listeler ve tahmin edileceği üzere bu raporlardaki sistemler ve var olan açıklar saldırı için potansiyel hedeftirler.
(b) "Network Host Assessment Report" "Internet Scanner"
"Confidential Information" intitle:"Retina Report"
"Assessment Report" "nessus" filetype:pdf
"This file was generated by Nessus" intitle:"Nessus Scan Report"
ISS [10], Nessus [12] ve eEye Retina[14] internet güvenlik tarayıcısı programlarıdır. Yukarıdaki
google aramaları ile bu güvenlik tarayıcısı programların tarama raporlarına ulaşıp ağ üzerindeki açık içeren sunucuları tespit etmek mümkündür.
3.4
Listelenen Gizli Bilgiler
Bu bölümdeki aramalar, gizli dizinlere, dosyalara, kullanıcı bilgilerine erişimi sağlamaktadırlar.
Aramalar esnasında "index of " anahtar kelimesi kullanılarak dosya sistemindeki dosyaları listeleyen
sunucular hedef alınmaktadır.
(a) "Index of /backup"
yedekleme dizinlerini listeleyen bir aramadır.
(b) inurl:proftpd.conf ext:conf
Proftp ftp sunucularının yapılandırma (configuration) dosyasına erişimi sağlayan bir aramadır.
(c) picasa.ini intitle:"index of"
Picasa, google tarafından geliştirilen bir resim işleme programıdır. Programın dikkat çekici
bir özelliği, otomatik olarak klasörleri tarayıp var olan resimleri listelemesidir. Bunu yaparken
de ilgili her klasörde picasa.ini dosyası oluşturur. Dolayısı ile bir klasördeki picasa.ini dosyası bu klasörde resim dosyalarının olduğuna işarettir. Bundan yolan çıkan yukarıdaki arama,
web dizinlerinde picasa.ini dosyasını aramakta ve tespit edilen klasörlerdeki resimlere erişimi
mümkün kılmaktadır.
7
(d) "index of" "chat/logs"
Sohbet (chat) günlük dosyalarını (log files) listeleyen bir aramadır.
(e) dead.letter intitle:"index of"
Unix’te bitirilemeyen e-postalar dead.letter dosyasında saklanır. Bu arama özel yazışmalar
içermesi mümkün dead.letter dosyalarını listeler.
(f) "index of cgi-bin"
cgi-bin betik programlarının bulunduğu bir dizindir. Betik dosyaları çalıştırılan dosyalar olmaları nedeniyle saldırganların ilgilendiği dosyalardır. Listelenecek olan betik dosyalarından
açık içerenler saldırganların çok işine yarayabilirler.
(g) inbox.dbx intitle:"index of"
Posta kutusu (mailbox ) dosyalarını (örneğin outlook express dosyaları) listeleyen aramadır.
(h) bash history intitle:"index of"
.bash history dosyası kullanıcın komut satırında girmiş olduğu komutların kaydedildiği dosyadır. Bu dosyada komutlar, kullanıcı adları hatta parolalar dahi bulunabilmektedir.
(i) inurl:admin filetype:xls
Admin klasörü altındaki excel dosyalarını listeleyen bir aramadır.
(j) index.of.private
index.of.protected
intitle:index.of.secret
index.of.secure
Bu aramalar ile gizli ve özel dizinleri listeleyip bu dizinlerde işe yarar bir bilgi var mı diye
bakmak mümkündür.
8
(k) inurl:"ipsec.secrets" -history -bugs
ipsec.secrets dosyası, ipsec uygulamasının kullandığı gizli ve özel anahtarları içeren dosyadır
ve sadece sistem yöneticisinin erişimine açık olmalıdır. Ancak bu aramanın da sonucunda
görüldüğü üzere kullanıcılar bu güvenlik gereksinimini görmezden gelebilmektedirler ve yine
bir sistemin en zayıf halkasının insan olduğu teyit edilmektedir.
3.5
Gizli Bilgi İçeren Dosyalar
Bu bölümdeki aramalar da yine bir önceki bölümdeki gibi gizli ve özel dosyalara, kullanıcı ve sunucu
bilgilerine erişimi sağlarlar. Ancak bir önceki bölümdeki aramalardan farklı olarak sunucuların dosyaları listelemesinden faydalanmak yerine direk ilgili dosyaların içeriklerinde arama yaparak hedef
dosyalara erişirler.
(a) "not for distribution" confidential
"not for public release"
Bu aramalar başkalarının erişimi için gizlenen belgeleri listeler. Bu dosyalar pdf, doc, html
gibi formatlarda olabilmektedir.
(b) "robots.txt" "Disallow:" ext:txt
Web robotları, web sitelerini tarayarak ilgili bilgileri indekslerine katarlar. Ancak bir web
sitesi yöneticisi olarak robotların listelemesini istemediğiniz dosyalar, dizinler olacaktır. Robotları bu gizli dosyalardan haberdar etmek için robots.txt dosyası oluşturur ve ilgili dosya
yollarını Disallow etiketi altında yazarız. Ancak robots.txt dosyası herkes tarafından okunabilme hakkına sahip olduğundan saldırganların da ilgisini çekmektedir. robots.txt dosyalarını
inceleyen saldırganlar da gizli dosyalar hakkında bilgi edinirler.
(c) "phone * * *" "address *" "e-mail" intitle:"curriculum vitae"
"e-mail" "address" ext:csv
filetype:xls inurl:"email.xls"
Bu aramalar çeşitli belgeleri tarayarak telefon numarası, adres, e-posta gibi bilgileri listelerler.
(d) intext:password ext:mail | ext:eml | ext:mbox | ext:mbx
Bu arama içinde password kelimesi geçen e-posta dosyalarını listeler.
9
(e) intext:(password | passcode) intext:(username | userid | user) ext:csv
Belgeler içinde kullanıcı adları ve parolaları tarayan aramadır.
(f) "admin account info" filetype:log
Günlük dosyalarında (log files) yönetici hesabı ile ilgili bilgileri (kullanıcı adı, parola v.s.)
arayan bir aramadır.
(g) username password email filetype:xls
Kullanıcı adı, parola, email bilgileri içeren excel dosyalarını listeleyen bir aramadır.
(h) htpasswd filetype:htpasswd
Kimlik denetimi yapan htpasswd dosyalarını listeleyen aramadır.
(i) intext:"internet account manager" filetype:reg
Bu arama kayıt dosyalarını (registry) tarayarak kullanıcı adlarını, pop3 parolalarını, e-posta
adreslerini, bağlanılan sunucuları v.s. listeler.
(j) username putty filetype:log
ssh istemcisi putty programının günlük dosyalarını listeleyen bir aramadır. Bu günlük dosyasında kullanıcı adları, web adresleri, IP numaraları, port numaraları ve bağlanılan sunucular
hakkında birçok bilgi bulunabilmektedir.
(k) Host="*.*" intext:"enc UserPassword=*" ext:pcf
Bu arama ile grup ve kullanıcı parolalarını şifrelenmiş formatta içere vpn (virtual private
network ) profil dosyaları bulunmaktadır. Profil dosyalarını vpn istemci uygulamamıza aktararak uzak sisteme bağlantı kurabiliriz. Profil dosyalarındaki şifreli parolaları deşifre etmek
için Cain [3] gibi bir program kullanılabilir.
10
(l) BEGIN (CERTIFICATE|DSA|RSA) filetype:key
En tehlikeli aramalarından biridir. Bu arama özel ve gizli olması beklenen özel anahtarları
(private keys) erişime sunmaktadır. Bu sayede saldırgan ele geçirdiği özel anahtarın sahibi
kişi/kurum adına belgeleri imzalama yetkisine ve de bu kişiye/kuruma gönderilen şifrelenmiş
belgeleri deşifre etmeye demektir.
(m) intitle:index.of intext:"secring.skr" | "secring.pgp" | "secring.bak"
PGP özel anahtarlarını listeleyen bir aramadır. Özel anahtarınız bir başkasının eline geçtiği
an artık sayısal kimliğinizi kaybettiniz demektir.
3.6
Oturum Açma Sayfaları
Bu bölümdeki aramalar ile sunuculardaki kullanıcı ya da yönetici oturum açma (login) sayfalarına
erişilir. Bulunan bu sayfalarda sql enjeksiyon ya da parola ele geçirme teknikleri denenerek sunucunun kimlik denetimini es geçmek mümkün olabilmektedir.
(a) "please log in"
intitle:admin intitle:login
inurl:/admin/login.asp
Yönetici oturum açma sayfalarını listeleyen aramalardır. Bu aramalarla saldırganlar, kullanıcı
ve yönetici oturum açma arabirimlerine ulaşabilirler.
(b) "Phorum Admin" "Database Connection" inurl:forum inurl:admin
Bu arama ile Phorum web uygulamalarının korumasız yönetici sayfalarına ya da hata mesajları ile ortaya çıkan yol bilgilerine (path info) erişilebilir.
(c) "Please log on to the SAP System" intitle:"ITS System Information"
SAP Internet Transaction sunucusuna erişimi sağlayan web arayüzlerini listeleyen bir aramadır.
3.7
Veritabanı Uygulamaları
Bu bölümdeki aramalar, veritabanı uygulamalarını ve içerik döküm dosyalarını (dump files) listelemektedirler.
11
(a) "Welcome to phpMyAdmin" "Create new database"
"phpMyAdmin" "running on" inurl:main.php
phpmyadmin, mysql veritabanı sunucu yönetiminde kullanılan bir web uygulamasıdır. Sunucu
üzerine kurulan bu uygulamayı sadece yetkili kişilerin kullanabilmesini sağlayacak şekilde
kimlik denetiminin sağlanması gerekmektedir. Bunun en kolay yolu .htaccess metodunu kullanmaktır. Ancak birçok sistem yöneticisi bu güvenlik denetimini unutur ve yukarıdaki gibi
bir google araması izinsiz erişim yapılabilecek phpmyadmin uygulamalarını listelemektedir.
(b) "Welcome to phpMyAdmin ***" "running on * as root@*" intitle:phpMyAdmin
root olarak oturuma açılmış mysql sunucularını listeleyen bir aramadır.
(c) "#mysql dump" filetype:sql
"# Dumping data for table (username|user|users|password)" -site:mysql.com -cvs
"# phpMyAdmin MySQL-Dump" filetype:txt
Bu arama, mysql veritabanı döküm dosyalarını listeler. Bu dökümlerde var olan "create table"
sql cümlelerini inceleyerek veritabanının yapısı, ya da "insert into" sql cümlelerini inceleyerek
veritabanının içeriği (kullanıcı adları, adresleri, parolaları v.s.) hakkında bilgi edinilebilir.
(d) mdb filetype:mdb
Microsoft access veritabanı dosyalarını listeleyen bir aramadır.
(e) "insert into" (pass|passwd|password) filetype:sql
("values * MD5" | "values * password" | "values * encrypt") filetype:sql
Parola içeren sql döküm dosyalarını listeleyen aramalardır.
(f) "mysql.default password" "Zend Scripting Language Engine" intitle:"phpinfo()"
Varsayılan mysql parolalarını içeren phpinfo betiklerini listeleyen bir aramadır.
12
(g) "Select a database to view" intitle:"filemaker pro"
Filemaker pro veritabanları listeleyen bir aramadır.
3.8
Veritabanı Hata Dosyaları
Veritabanı ile iletişimi sağlarken kullanılan sql cümlelerinin hatalı olması sunucu tarafından saldırgan
için yararlı olabilecek bilgiler döndürebilmektedir. Bu gruptaki aramalar bu tip hata mesajlarını
veren sunucuları ve uygulamaları hata metinleri ile birlikte listelemektedirler.
(a) "mySQL error with query"
Bu arama, sorgu cümleciğinin bir kısmını da hata mesajı olarak geri döndürdüp veritabanının
iç yapısı ile ilgili bilgileri ortaya çıkaran web uygulamalarını listeler. Örneğin aşağıdaki hata
mesajı bu arama sonucu listelenen bir web sunucusundan alınmıştır:
mySQL error with query SELECT COUNT(*) FROM manbitesdognucleus comment as c WHERE c.citem=338:
Can’t open file: ’manbitesdognucleus comment.MYD’. (errno: 145)
Warning: mysql fetch row(): supplied argument is not a valid MySQL result resource in
/home/manbitesdog/publics html/nucleus/libs/comments.php on line
Bu hata mesajı, veritabanında manbitesdognucleus comment adında tablo olduğunu ve bu
tablonun citem adında bir alanı bulunduğunu bildirmektedir. Yine bu hatanın tam yol adıyla
birlikte /home/manbitesdog/publics html/nucleus/libs/comments.php betiğinde meydana geldiği
bilgisi öğrenilmektedir. Bu bilgiler doğrultusunda saldırgan, tam yol adını dikkate alarak başka
betikler üzerinde sql enjeksiyon saldırıları deneyebilir ya da başka betiklerden yeni hata mesajları ile başka bilgiler edinebilir.
(b) "access denied for user" "using password"
Erişim kontrolü sırasında hata mesajı veren veritabanı sunucularını listeleyen bir aramadır.
Erişim için parola gerekmiyorsa "using password:NO" ibaresi hata mesajında geçecektir.
(c) intext:"Warning: Failed opening" "online" "include path"
Açılamayan dosyalar için oluşan hata mesajları ana uygulamanın yol adı (path name), dosya
adı ve hatanın meydana geldiği satır numarası hakkında bilgi verebilir.
13
(d) "supplied argument is not a valid MySQL result resource"
Bu arama, yine yol ve betik adlarını ortaya çıkaran hata mesajlarını listelemektedir.
(e) "Supplied argument is not a valid PostgreSQL result"
PostreSQL veritabanlarından döndürülen hata mesajlarını listeleyen bir aramadır. Örnek bir
hata mesajı:
ERROR: Warning: pg result(): supplied argument is not a valid PostgreSQL result resource
in /home/httpd/html/av-reports/proc-show.php3 on line 52
3.9
Çevrimiçi Araçlar
Buradaki aramalar ile çevrimiçi (online) konumdaki yazıcı, web kamerası gibi cihazların uzaktan
yönetim arabirimlerine ulaşmak mümkün olmakta ve bu sayede cihazlar hakkında detaylı bilgilere
erişmek ve de ayarlarını yapılandırmak mümkün olmaktadır.
(a) intitle:"Dell Laser Printer" ews
inurl:hp/device/this.LCDispatcher
Yazıcıların web üzerinden yönetimini sağlayan arabirimleri listeleyen google aramalarıdır.
(b) "powered by webcamXP" "Pro—Broadcast"
"Webthru User Login"
intitle:liveapplet inurl:LvAppl
Web kameralarının web üzerinden görüntülemeyi ve yönetimini sağlayan arabirimleri listeleyen bir aramadır.
(c) (intitle:"web image monitor" -htm -solutions) — inurl:"webArch/mainFrame.cgi"
Tarayıcı ve fax cihazlarının arabirimlerini listeleyen bir aramadır.
(d) "Please wait....." intitle:"SWW link"
Güvenlik duvarı ve ağ geçidi cihazlarına erişimi sağlayan bir aramadır.
14
4
Türkçeye Özel Aramalar
Yukarıda açıklamış olduğum google aramaları türkçeye özel aramalar değildir. Aramaları türkçeye
ya da Türkiye’ye özel yapmak mümkündür. Bunun bir yolu google aramalarını google’ın türkçe
sürümü olan www.google.com.tr üzerinde yapmak ve burada arama esnasında "Türkiye’den sayfalar " ya da "Türkçe sayfalar " seçeneklerini kullanmaktır. Diğer bir yöntem aramalarınıza site:tr
filtresini eklemektir. Bu sayede uzantısı sadece tr olan sunucular sonuçlar listesinde gösterilecektir. Başka bir yöntem ise aramalarda türkçe kelimeler kullanmaktır. Bunlara birkaç örnek verecek
olursak:
intitle:"index of" (gizli|ozel|yedek)
isim adres telefon (ext:xls | ext:doc)
intext:"sifre|parola" filetype:xls
"Yönetici Menüsü" inurl:admin.php
intitle:"Squirrelmail | Webmail" giriş şifre
"Bu * gizlidir" ext:doc | ext:pdf
5
Araçlar
Google hacking güvenlik taraması işlemini otomatik olarak yapan araçlar da mevcuttur. Google
hacking için birçok güvenlik araması içeren veritabanları ve bu veritabanlarını kullanıp otomatik
google güvenik tarama yapan araçlar bu bölümde detayları ile anlatılmıştır.
5.1
Googledorks
Google hacking örneklerini açıkladığım 3. bölümde johnny.ihackstuff.com veritabanından bahsetmiştim.
Bu veritabanı [7] Temmuz 2006 itibarı ile farklı 14 kategoride toplam 1413 google hacking araması
içermekteydi. Başlangıçta googledorks terimi bu veritabanını hazırlayan Jonny Long tarafından
google ile bulunan aptal insanlar anlamında kullanılmıştır. Ancak daha sonra bu terim google ile
gizli bilgileri bulmayı hedefleyen google aramalarını tanımlamak için kullanılmaya başlanmıştır.
5.2
Gooscan
Gooscan [19] googledorks veritabanını hazırlayan kişi tarafından yazılmış bir Unix/Linux uygulamasıdır. Gooscan ile googledorksta kayıtlı aramaları otomatik olarak belirteceğiniz bir arama
motoru ile otomatik sorgulayabilirsiniz. Bu uygulamanın asıl yazılış amacı, güvenlik uzmanları ve
sistem yöneticilerinin sistemlerinin güvenliğini test etmelerini sağlamaktır.
$ gooscan -t www.google.de -q "intitle|index.of picasa.ini" -s com.tr -o output.html
Örneğin gooscan uygulamasını yukarıda gösterildiği gibi çalıştırdığınızda "intitle:index.of picasa.ini " arama -t parametresi ile belirtilen google.de hedefinde sorgulanacak ve arama sonuçları
-o parametresi ile belirtilen output.html dosyasına kaydedilecektir. -s parametresi ise dönecek
15
sonuçlardan sadece com.tr uzantılı sunucular ile ilgilendiğimizi ve haricindeki sonuçların listelenmemesini sağlar.
Burada -t parametresine dikkat çekmek istiyorum. Gooscan, sadece google’da arama yapacak
şekilde tasarlanmamıştır. Diğer arama motorlarını, hatta kendi sitenizin arama motorunu da -t
parametresi sayesinde tarama için kullanmanız mümkündür.
5.3
SiteDigger
Foundstone firması tarafından ücretsiz olarak dağıtılan SiteDigger [17] uygulaması (Şekil 2), vereceğiniz etki alanı (domains) için seçeneğe göre ya Foundstone’nın kendi veritabanındaki ya da
googledorks veritabanındaki girdileri google’da sorgular ve sonuçları bir rapor halinde sunar. SiteDigger, gooscan’den şu yönüyle farklıdır. Gooscan’da aranacak kelimeyi -q parametresi ile belirtmek zorundasınız. Ancak SiteDigger’da böyle bir zorunluluk yok ve veritabanındaki bütün arama
sorguları belirtilen etki alanı için sorgulanacaktır. Haliyle, her bir arama için google birden fazla
sonuç döndürebilecektir. SiteDigger ile her bir arama için dönecek sonuç sayısını kısıtlamak da
mümkündür.
Ancak bu programı çalıştırmadan önce yapmanız gereken bir işlem var. SiteDigger, google web
API’lerini kullanarak programlanmıştır. Google, bu API’leri kullanarak arama yapmak isterseniz
google’da bir hesap açıp lisans anahtarı elde etmenizi zorunlu kılmıştır. SiteDigger’da google web
API’leri için kayıt olup geçerli lisans anahtarını programa girmenizi beklemektedir. Ayrıcı alacağınız
lisans anahtarı başına günde en fazla 1000 farklı arama yapabilirsiniz.
5.4
Goolink
GooLink [8] yine otomatik google aramaları yapan bir uygulamadır. Şuan 0.1 beta sürümü mevcuttur (Şekil 3). Aramalar için googledorks veritabanını kullanır. Goolink çalışma prensibi olarak
googlescan ile paralellik gösterir. Öncelikle aranacak kelime gurubunu grafiksel arabirim aracılığıyla
belirlemeniz ve sonra aramayı başlatmanız gerekmektedir.
5.5
AdvancedDork
AdvancedDork [2] (Şekil 4) aslında direk google hacking için geliştirilmiş bir uygulama değildir.
AdvancedDork bir firefox eklentisidir ve firefox’ta üzerine sağ tıkladığınız kelimeyi direk google’da
aratmanızı sağlar.
5.6
Google Advanced Operations Toolbar
AdvancedDork’un daha gelişmiş bir versiyonu olan bu uygulama [5] yine bir firefox eklentisidir ve
firefox araç çubuğuna yerleşerek google’da arama yapmak için çok çeşitli seçenekler sunmaktadır
(Şekil 5).
16
6
Tedbirler
Şuana kadar anlattıklarımdan google ile saldırganların sunucularımızdaki açıklara ve bilgilerimize
ne kadar kolay erişebildiği anlaşılmış olmalıdır. Google hacking saldırılarına karşı önlem almak
isterseniz başlıca şu yöntemleri deneyebilirsiniz:
• Araçlar kısmında bahsettiğim programları kullanarak kendi sistemlerinizin güvenliğini google
hacking saldırılarına karşı önceden sınayın ve varolan güvenlik açıklarının önlemlerini alın.
• Web robotları, Robots Exclusion Standard’ına [15] uyarlar. Bu standart sayesinde web robotlarının sitenizde indekslenmesini istemediğiniz dizinleri ve dosyaları robots.txt düz metin
dosyasında belirtmemiz yeterli olacaktır. Örneğin gizli dizinini robotların indekslemesini engellemek için robots.txt dosyasının içeriği şöyle olmalıdır:
User-agent: *
Disallow: /gizli
Sunucularınız için otomatik olarak robots.txt dosyasını üretmek için [16]’e başvurunuz.
• Sistem yöneticisi olarak saldırganların sunucularınızda neleri hedef aldığını, ne tip saldırılar
gerçekleştirdiğini önceden bilmek tedbir almanız açısından çok faydalı olacaktır. Honeypot
projesinin [9] amacı da bu imkanı size vermektir. Honeypot uygulamaları ve sunucuları bilerek
ve saldırganlar için yem olarak güvenlik açıkları içeren hizmetler sunmaktadırlar. Sisteminize
entegre edeceğiniz honeypot sunucularına erişen bir saldırgan farklı saldırlar deneyerek sunucunuzu ele geçirmeye, arka kapılar bırakmaya çalışacaktır. Honeypot sunucuları üzerinde
çalışan günlük tutma sistemleri de saldırganın yaptığı her aktiviteyi kaydederek muhtemel
saldırılar hakkında size çok değerli bilgiler verecektir.
Google hacking’e karşı diğer bir tedbir de Google Hack Honeypot [6] projesidir. Sisteminize
kuracağınız google honeypot sunucuları sayesinde sisteminizi tehdit edebilecek olan muhtemel
google hacking saldırılarını tespit eder ve tedbirinizi buna göre alabilirsiniz.
7
Sonuç
Bu yazımda Google Hacking diye tabir edilen google ile güvenlik açıklarının nasıl bulunduğunu,
bu aramalarda kullanılan gelişmiş parametreleri, sistemlerinizi google hackinge karşı korumak için
kullanabileceğiniz otomatik tarama araçlarını ve çözüm önerilerini anlattım. Güvenliğin bir süreç
olduğunu hatırımızdan çıkarmamamız gerektiğini tekrar vurgulayıp burada yazıma son veriyorum.
17
Kaynaklar
[1] Acunetix Web Güvenlik Açıkları Tarayıcısı. http://www.acunetix.com.
[2] AdvancedDork- Google’da Arama için Firefox Eklentisi.
http://johnny.ihackstuff.com/modules.php?op=modload& name=Downloads
&file=index&req=viewdownload&cid=5.
[3] Cain-Parola Kurtarma Aracı. http://www.oxid.it/cain.html.
[4] Google Arama Parametreleri. http://www.google.com/help/operators.html.
[5] Google Gelişmiş Araç Çubuğu. https://addons.mozilla.org/firefox/1258/.
[6] Google Hack Honeypot Projesi. http://ghh.sourceforge.net.
[7] Google Hacking için Güvenlik Açıkları Listesi. http://johnny.ihackstuff.com.
[8] Goolink- Güvenlik Tarayıcısı. www.ghacks.net/2005/11/23/goolink-scanner-beta-preview/.
[9] Honeypot Projeleri. http://www.honeynet.org.
[10] ISS-Internet Güvenlik Tarayıcısı.
http://www.iss.net/products services/enterprise protection/vulnerability assessment/
scanner internet.php.
[11] LanGuard Ağ Güvenlik Tarayıcısı. http://www.gfi.com/languard/.
[12] Nessus Güvenlik Açıkları Tarayıcısı. http://www.nessus.org.
[13] Nmap Ağ ve Güvenlik Tarayıcısı. http://www.insecure.org/nmap/.
[14] Retina-Ağ Güvenlik Tarayıcısı. http://www.eeye.com/html/.
[15] Robots exclusion standard. http://en.wikipedia.org/wiki/Robots.txt.
[16] robots.txt Otomatik Üreticisi. http://www.mcanerin.com/EN/search-engine/robots-txt.asp.
[17] SiteDigger v2.0 - Bilgi Toplama Aracı.
http://www.foundstone.com/index.htm?subnav=resources/navigation.htm&subcontent=
/resources/proddesc/sitedigger.htm.
[18] Webalizer-Sunucu Günlük Dosyası Analiz Programı. http://www.mrunix.net/webalizer/.
[19] Johnny Long. Gooscan Google Güvenlik Tarayıcısı.
http://johnny.ihackstuff.com/modules.php?op=modload&name=Downloads
&file=index&req=getit&lid=33.
18
Şekil 2: SiteDigger - Google Hacking Güvenlik Tarayıcısı
19
Şekil 3: Goolink - Google Hacking Güvenlik Tarayıcısı
20
Şekil 4: AdvancedDork - Google’da Arama Firefox Eklentisi
Şekil 5: Google Gelişmiş Arama Firefox Eklentisi
21

Benzer belgeler

SİTE KULLANIM KOŞULLARI 1. Taraflar 1.1. WİNGO DIŞ TİC. LTD

SİTE KULLANIM KOŞULLARI 1. Taraflar 1.1. WİNGO DIŞ TİC. LTD ödenecek olan ilgili fiyatı ve toplam tutarı düzeltme yetkisini saklı tutar.

Detaylı

Sosyal Mühendislik Saldırıları

Sosyal Mühendislik Saldırıları  DomainTools - http://whois.domaintools.com  WhoisNet - http://www.whois.net  WHO.IS - http://www.who.is

Detaylı

Bir Platform Oyununa Kullanıcı Performansı - CEUR

Bir Platform Oyununa Kullanıcı Performansı - CEUR zekanın yapması gereken oyuncuya, oyunun temel mekaniklerini göstermek ve oyuncuyu yönlendirmektir. Dolayısıyla geliştirilecek bu türde bir yapay zekanın statik ya da dinamik olması kullanıcı a...

Detaylı

1.9 En Büyük Kompaktlama olarak Stone-Cech Kom

1.9 En Büyük Kompaktlama olarak Stone-Cech Kom 1.9. En Büyük Kompaktlama olarak Stone-Cech Kompaktlama

Detaylı

Çalışma Dosyası İçin Tıklayın!

Çalışma Dosyası İçin Tıklayın! Araştırmanıza  yardımcı  olacak  bazı  internet  siteleri  ,  kitaplar  ve   dökümanların  linkleri  son  sayfada  bulunmaktadır.  

Detaylı