WEP SİTE HACKLE
Exploit meselesiyle başlayalım... Hack konusu içinde çok büyük bir önemi olan Exploit’ları en ince detayına kadar anlatmam mümkün değil, ama size mantığını ve konu hakkında bazı noktaları anlatacağım. (Konuyla ilgili herşey anlatılabilecek olsaydı, forumlarda "exploits/vulnerabilities" diye başlı-başına bir topic olur muydu?...).
Aslında hack’lenen sitelerin büyük bir bölümünün bu yöntemle indirildiğini söyleyen arkadaşlar da yok değil. Ben buna çok da inanmamakla beraber, başarılı ve "uzun ömürlü" bir "defacer" olmak isteyenlerin mutlaka ilgilenmeleri gereken bir konu olduğunu düşünüyorum bu konunun.
Neyse... Konuya geçelim... Exploit’lar sayesinde bir sitede veya bir hosting bilgisayarında en yetkili kişi olmak mümkün. Amacı bu. Sizi o sitede veya server’da en yetkili kişi (yönetici) yapmak. En yetkili kişi olunca da, o site veya server’daki tüm siteler konusunda her istediğinizi yapabilirsiniz.
Exploit’lar local ve remote olmak üzere iki şekilde yazılır. Local exploit’ları kullanabilmek için o hosting firmasında sizin de bir hesabınızın -yani bir sitenizin- olması gerekir. Local exploit’larla server’daki sitelerin hepsini hack’leyebilirsiniz. Remote exploit’ları kullanabilmek için server’da bir hesabınızın olması gerekmez, kendi bilgisayarınızda exploit’u çalıştırabilirsiniz. Tüm server değil, tek siteyi deface edersiniz... Aralarındaki fark bu...
Exploit’lar genelde derlenmesi gereken kodlardır. Bazen, nadiren de olsa online çalıştırabileceğiniz exploit’larda bulabilirsiniz. Meselâ aşağıda verdiğim exploit, online olarak çalıştırılabilir ve sizi PHP-Nuke 6.5 ile yapılmış sitelerde admin yapar. Link:
Fakat çoğu exploit yukarıda verdiğim gibi online olarak, bir siteden çalıştırılamaz. Bunlar için önce hosting bilgisayarının, yani server’ın hangi işletim sistemini kullandığını öğrenmelisiniz. Bunun için www.netcraft.com sitesine gidip sol üst kısımdaki yere sitenin ismini yazarsınız. search dediğiniz zaman sitenin hangi işletim sistemi üzerinde çalıştığını öğrenirsiniz. Daha sonra da bu sistemin exploit’unu bulur, siteyi hack’lersiniz. İşletim sistemlerine göre exploit’ları, exploit portalı olarak adlandırabileceğim www.packetstormsecurity.nl , www.phreak.org/html/exploits.shtml ve hack.co.za
gibi adreslerden bulup indirirsiniz veya google’da
işletim_sisteminin_adı exploit
şeklinde aramalar yaparak istediğiniz exploit’u çekebilirsiniz. Şunu da hatırlatayım; sizi bir sistemde en yetkili kişi yapan exploit, farklı sistemde işe yaramaz. Söz gelimi bir linux exploit’u windows NT’de iş görmez...
Exploit’lar genelde .C veya .PL uzantılıdır, bazıları ise çok az da olsa online çalıştırılabilir PHP dosyalarıdır, yukarıdaki örnekteki gibi... Önce ilgili exploit’u bilgisayarımıza download ediyoruz. Exploit’un uzantısı .c ise bunu shell’de derlememiz lazım. Shell nedir? Shell hesabı aldığınızda sürekli ve hızlı bir net bağlantısı olan bir makinede, linux komutları çalıştırabileceğiniz bir yeriniz olur. Biraz web sitesi mantığına benziyor. Web sitelerinde bir hosting alırsınız ve buraya dosyaları upload edebilirsiniz, Shell’de ise aldığınız yerde Linux komutları çalıştırabilirsiniz. Aralarında böyle bir benzerlik ve fark var. Tabii Shell’i daha da geniş anlatmak mümkün ama biz de zaten Shell’in Linux komutu çalıştırma özelliğinden faydalanarak exploit’ları derleyeceğiz.
Net’te bedava shell’ler var, fakat bu shell’lerin işimize yaraması çok zor. Çünkü içerikleri geniş tutulmaz bunların... O yüzden paralı shell alınması veya bilgisayarınıza Linux kurulması gerekebilir (veya bir arkadaşınızdan Shell hesabı bulabiliyorsanız bulun derim).
"Bedava Shell veren adresler" isimli bir konuyu, baya önceleri HellRazor arkadaşımız açmıştı, exploits/vulnerabilities bölümündeki eski sayfaları karıştırırsanız bulabilirsiniz sanırım. Ben link vermiyorum burada, çünkü vereceğim link büyük ihtimalle işe yaramayacaktır.
Varsayalım ki bir yerden işimize yarayabilecek, sağlam altyapılı bir shell temin ettik. Bunlarla exploit’larımızı şöyle derleriz:
Öncelikle indirdiğimiz exploit dosyasını -ismini değiştirmeden- bir web sitesine atıyoruz, Mynet, Websamba vs. olabilir. Sonra Shell hesabımıza Putty programını kullanarak bağlanıyoruz. Bu programın amacı kısaca Shell kurulu bilgisayarlara bağlanmaktır -Hani web sitelerinin FTP’sine ulaşmak için CuteFTP gibi programlar kullanıyoruz ya, bunu da bir nevi buna benzetebilirsiniz.-. Shell’e bağlandıktan sonra, şu komutu yazıyoruz:
Bu komutla shell exploit’u bünyesine çekecektir. Dosyanın çekilip çekilmediğini ls yazarak çıkan dosya listesinden exploit’un ismini görürseniz anlarsınız, çekilmiş demektir. Daha sonra şunu yazmalısınız:
gcc -o exploit exploit.c
Burada shell, exploit.c dosyasını derleyecek ve derlenmiş hâlinin adını exploit yapacaktır. Daha sonra bu exploit dosyasını:
./exploit
yazarak çalıştırabilirsiniz. Bunu yazdığınızda, karşınıza gelecek ekranda Exploit’un nasıl kullanılacağını anlatan yazılarla karşılaşacaksınız. Bu ekranı da okuyarak exploit’un nasıl çalıştırılacağını öğrenebilirsiniz ama, genelde exploit’lar:
./exploit -h hacklenecek_site
veya...
./exploit -i Hacklenecek_sitenin_IP’si
yazarak çalıştırılır. Burada yanlış anlaşılma olmasın, ./ işaretlerinden sonra exploit’un ismini yazacağız. Söz gelimi exploit’umuzun adı exp.c ise, gcc -o exp exp.c ve sonra da ./exp -h xxx gibi kullanmalısınız.
Bu arada server sahibi exploit’un önlemini aldıysa işe yaramazlar, tabii ki.
şimdi de çok kısa olarak PERL’de exploit derlemekten bahsedelim...
Buradaki programı download ettikten sonra kuruyoruz. Kurulumu yarıda kesmeyin. Biraz uzun sürebilir.
Kurulum bittikten sonra, hack’lenecek sitenin host’unda kurulu olan sistemi öğreniyoruz ve exploit’unu buluyoruz. Sonra bu exploit’u c:Perlin klasörüne kopyalıyoruz. Bunu çalıştırmak için, MS-Dos Komut İstemi’ni açıyoruz ve orada c:Perlin klasörüne geçiyoruz. ("Nasıl geçeceğim?" gibi bir soruyu kabul etmiyorum . Hiç yoktan birazcık Dos temeliniz olsun arkadaşlar. Bilgisayardan hiç çakmayan arkadaşların bu konularla uğraşması ne denli doğrudur, bilmiyorum.) Ama hadi yazayım yine de: MS-DOS Komut İstemini açtığınızda, sizi otomatikmen C:windows klasörüne atar. Burada cd..perlin yazıp enter’layın. Bu komutla o klasörü açabilirsiniz.
Burayı açtıktan sonra Perl hazır hâle geliyor. Burada, şunu yazarak exploit’umuzu kullanılır hâle getiririz:
Enter’landığında, kurban server’ın açıkları kapanmamışsa, sitede en yetkili kişi olursunuz. Devamı ise exploit’un özelliklerine bağlı. Exploit’unuz nelere izin veriyorsa, onları yapabilirsiniz. Allah yardımcınız olsun.
Exploit konusunda anlatacaklarım bu kadar. Bazı arkadaşlar belki anlamamışlardır ama başta da söylediğim gibi anlatılması, programlama dillerinin mantığından ve shell, linux gibi konulardan bîhaber arkadaşlar için çok zor. Fakat yukarıdaki bölümün size yine de bir mantık vermiş, bir şeyler anlatmış olması gerekir diye düşünüyorum. Kafanıza takılanları sorarsanız -ben dahil- yardımcı olacak pek çok arkadaş çıkacaktır emin olun...
Hack yöntemlerinden birisi de ASP ve PHP gibi dillerin açıklarından faydalanmak. Bu açıklar sizi genelde Administrator seviyesine yükselten açıklar... Siteye Admin olarak girdiğinizde de zaten istediğinizi sistemden atın, istediğinizin şifresini alın, hatta sitenin ortasına "HaCKeD BY XXX" yazın... Bu tip açıklara biraz örnek vermek gerekirse:
’or’’=’ açığı: Önlemi alınmamışsa sizi administrator seviyesine yükselten bir açık. Üyelik sistemli ASP sitelerinde geçerli. Aslında sitede bir admin giriş yeri varsa ama bu sitenin direkt olarak anasayfasından ulaşılamıyorsa, yani index’te "admin girişi" diye bir yer görünmüyorsa, öncelikle site üzerinde manuel denemeler yapmalısınız. Örneğin siteadı/admin.asp , siteadi/login.asp , siteadi/forum/admin.asp , /admin/admin.asp, /admin/login.asp vs... Eğer tutturamazsanız, google.com’a gidip:
admin site: siteAdı.com
şeklinde bir arama yaparsanız, google sizin için sitede admin kelimesi geçen tüm sayfaları gösterecektir. Bunun dışında, aspindir.com gibi hazır kod sitelerinden download ettiğiniz script’leri incelerseniz, admin panelinin nerede tutulduğunu öğrenebilirsiniz. İşinize yarayabilir.
Bu bilgiden sonra, açığın nasıl kullanılacağını da kısaca yazalım. Kullanıcı adı/şifre girişi isteyen bir sitenin, bu bilgileri gireceğimiz formuna ulaşın (login form) ve aşağıdakileri ilgili kutuya yazın:
Kullanıcı adı: ’or’’=’
Şifre: ’or’’=’
Her iki kutucuğa da aynı şeyi yazıyoruz ve şansımız varsa sitede "hoppala" admin oluyoruz!
Formlardaki type="Hidden" değerini sömürmek: Genelde ASP destekli üyelik sistemleri üzerinde çalışan sitelerdeki bir açık. *Yasak Kelime* abi, *Yasak Kelime*hacker’ken bu konuda uzun bir döküman yazmıştı ("inputlar ve veri doğrulama" isminde), onu özetlemek istiyorum.
Öncelikle üyelik sistemli bir siteye üye oluyoruz. Sonra kullanıcı adımızı kullanarak login oluyoruz. Çoğu sitede login olduktan sonra "bilgilerimi düzenle", "profil düzenle" vs. linkler olur ve bu bölümden kişi kendine ait pek çok bilgisini, hatta kullanıcı adı ve şifresini bile değiştirebilir. İşte "profilimi düzenle" anlamına gelen linke tıklıyoruz ve sonra karşımıza bir form geliyor. Hemen "kaynağı görüntüle" diyoruz ve karşımıza aşağıdaki gibi bir form kaynak kodu geliyor:
Bu formda, action=".." kısmında belirtilen dosya form bilgilerini güncelleyecek olan dosyadır.
O zaman, biz hidden="..." bölümüne "administrator"ın sitede kullandığı nick’ini yazarsak, ne olur???
Admin’in ismini, cismini, mail adresini, en önemlisi de kullanıcı adı ve de şifresini değiştirebiliriz!..
Kaynağı Görüntüle dediğimiz sayfanın kodlarını kopyala/yapıştır’la not defterine atalım ve ilk önce action=".." daki kısmın başına -eğer yoksa- http://www.hedeftekisite.com/varsa_alt_klasör/ ’u ekleyelim, sonra type="hidden" name="xxx" value="xxx" yazan yere type="hidden" name="xxx" value="admin’in_nick’i" yazalım, veya type="hidden"’ı type="text" şeklinde değiştirip, dosyayı .htm formatında kaydedelim. Eğer ikinci dediğimi yaparsanız, .htm uzantılı dosyayı çalıştırdığımızda karşımıza eski nick’imizin olduğu bir kutucuk daha çıkacak, oradaki yazıyı silip admin’in nick’ini yazmak yoluyla da bu işi hâlledebiliriz. Örneğin, oynama yaptığımızda kod şöyle olacak: