Insurgent
Forumdan Uzaklaştırıldı
- Katılım
- 23 May 2016
- Mesajlar
- 264
- Tepkime puanı
- 0
- Puanları
- 0
[font=helvetica, arial, sans-serif][font=helvetica, arial, sans-serif]Dostlar bu günki konum olarak [/font]6Days Lab v1.1'ı nasıl hacklediğimi paylaşmak istedim.[/font]
[font=helvetica, arial, sans-serif]Konu içerisinde yaptıklarımız :[/font]
[font=helvetica, arial, sans-serif]Bir sızma testinde yapılacak en önemli şey olan kod incelemeyi gördük.[/font]
[font=helvetica, arial, sans-serif]Merağın işimize nasıl yaradığını gördük.[/font]
[font=helvetica, arial, sans-serif]Python'la 2 Adet Sql injection zaafiyetini sömüren script yazdık.[/font]
[font=helvetica, arial, sans-serif]Netcat ile backconnect aldık.[/font]
[font=helvetica, arial, sans-serif]Sistem bilgimize göre exploit-db'den exploit bulduk.[/font]
[font=helvetica, arial, sans-serif]Exploit kullanıp sistemde root yetkisine erişim sağladık ve bayrağı kaptık.[/font]
Not: Resim sayısı 15'den fazla olamayacağı için bazı resimleri link halinde bıraktım.
Öncelikle her pentester'in yaptığı gibi kaynak kodları'nı inceledim
Ve değişik birşey farkettim image.php?src parametresi dışarıdan girdi alıyordu ve neden local file inclusion olmasın diye düşündüm ve tabiki 2. işim olarak web siteden dosya çekmeye başladım ama bir değişiklik farkettim çekmeye çalıştığım dosyalar ne kadar bypass türü eklesemde gelmiyordu
http://i.hizliresim.com/885nNW.png
birde curl ile "GET" isteği atmayı denedim ve sonuç başarılı oldu.
http://i.hizliresim.com/jBpJQD.png
fotoraf boyutu yetmedi ama asıl kullanıcıyı en alta buldum ve web siteye küçük bir port taraması atmak istedim ve bir ssh baglantisi buldum
ve baglanmayi denedim bu arada sızmaya çalıştığımız web sitenin sunucusunun adı : andrea
ne kadar boş şifreler denesemde giremedim bende sayfayı incelemeye karar verdim ve promo code girdisi alan bir yer buldum
oranında kodlarını incelemeye karar verdim ve curl ile "GET" isteği attığımda hiçbir response geri dönüşü olmadı bende image.php?src= parametresine sitedeki checkpromo.php'yi ekleyip kodu öyle çekmeyi denedim ve başarılı oldu.Kodu biraz inceledikten sonra checkpromo.php'de girdi alan ?promocode= parametresinde sql injection buldum ve işe koyuldum.
Girdi alan yere pekçok request attım fakat hiçbir response dönmüyordu bende yaptığım nmap taramasındaki localipmide ekleyerek 8080 portunu kullanıp image.php?src= parametresine http://127.0.0.1:8080/checkpromo.php?promocode= linkini ekledim ve sonunda response döndü ama bir sorunumuz daha var sunucuda bir filtreleme var ve hiçbir sql injection bypass parametresini kabul etmiyor.
bende kullandığım parametreleri encode etmeyi denedim 1. encode default çıktı : %27
2. encode'da : %2527 ve parametremizi encode ederek tam olarak filtrelerden kaçırmış olduk
ve artık işe koyulma zamanı manuel sql injection sorgumu yazdım ve siteye attım fakat 2 kez encode etmemiz lazım olduğu için : union all select schema_name,1 from information_schema.schemata#
sorgumuzu kabul etmedi bende hiç uzatmadan database'i çekmek için python'daki urllib ve urllib 2 modülleri ile sorgumuzu 2'kez encode ettim ve database'i çektim yazdığım script'in ne yaptığını yanlarına yazdım.
script :
başlattığımdada direk olarak sql injection'u sömürdüm ve database'nin çıktısını aldım :
ve database'yide aldığımıza göre 2. işimiz olan user ve pass'ı almaya geldi sıra sonuçta ssh bağlantımız mevcut user ve pass'ı alırsak ssh baglantısı kurup sunucunun /bin/sh'ına ulaşabiliriz.
hiç uzatmadan 2. username ve password çeken manuel sqli sorgumuzada bir script yazdım : union select all concat(username,':',password),1 from fancydb.users#
username ve password'u aldım :
ve sıra geldi ssh baglantisi yapip /flag'i almaya derken yine bir engel ile karşılaşıyoruz :
ve yine bir filtreleme alıyoruz malesef ama sorun değil şimdi bir port dinleyip sunucumuzdan backconnect alacağız netcat ile :
backconnectimizi aldık fakat root yetkimiz olmadığından /flag'i alamıyoruz ama sorun değil exploit diye birşey üretmişler sonuçta hemen uname -a yapıp sistem bilgilerimize bakıyoruz ve exploit-db'de sistem bilgilerimize özel bizi root yapacabilecek exploitimiz varmı bakıyoruz :
uzun bir araştırma sonucu bir exploit buldum ve kendi sunucuma attım exploiti root olmaya çalıştığımız sunucuya wget ile atmak için ve asıl olaya başlayalım exploitimizi wget ile çektikten sonra .c ile kodlanmış olduğu için gcc ile derleyip exploitimizi çalıştırıp root yetkisini alıyoruz ve parkurumuzu tamamlayıp /flag'i alıyoruz.
Çok güzel bir vuln hub'u bitirdik oluşturucusuna teşekkür ediyorum.
Author : @1ce7ea
[font=helvetica, arial, sans-serif]Konu içerisinde yaptıklarımız :[/font]
[font=helvetica, arial, sans-serif]Bir sızma testinde yapılacak en önemli şey olan kod incelemeyi gördük.[/font]
[font=helvetica, arial, sans-serif]Merağın işimize nasıl yaradığını gördük.[/font]
[font=helvetica, arial, sans-serif]Python'la 2 Adet Sql injection zaafiyetini sömüren script yazdık.[/font]
[font=helvetica, arial, sans-serif]Netcat ile backconnect aldık.[/font]
[font=helvetica, arial, sans-serif]Sistem bilgimize göre exploit-db'den exploit bulduk.[/font]
[font=helvetica, arial, sans-serif]Exploit kullanıp sistemde root yetkisine erişim sağladık ve bayrağı kaptık.[/font]
Not: Resim sayısı 15'den fazla olamayacağı için bazı resimleri link halinde bıraktım.
Öncelikle her pentester'in yaptığı gibi kaynak kodları'nı inceledim
Ve değişik birşey farkettim image.php?src parametresi dışarıdan girdi alıyordu ve neden local file inclusion olmasın diye düşündüm ve tabiki 2. işim olarak web siteden dosya çekmeye başladım ama bir değişiklik farkettim çekmeye çalıştığım dosyalar ne kadar bypass türü eklesemde gelmiyordu
http://i.hizliresim.com/885nNW.png
birde curl ile "GET" isteği atmayı denedim ve sonuç başarılı oldu.
http://i.hizliresim.com/jBpJQD.png
fotoraf boyutu yetmedi ama asıl kullanıcıyı en alta buldum ve web siteye küçük bir port taraması atmak istedim ve bir ssh baglantisi buldum
ve baglanmayi denedim bu arada sızmaya çalıştığımız web sitenin sunucusunun adı : andrea
ne kadar boş şifreler denesemde giremedim bende sayfayı incelemeye karar verdim ve promo code girdisi alan bir yer buldum
oranında kodlarını incelemeye karar verdim ve curl ile "GET" isteği attığımda hiçbir response geri dönüşü olmadı bende image.php?src= parametresine sitedeki checkpromo.php'yi ekleyip kodu öyle çekmeyi denedim ve başarılı oldu.Kodu biraz inceledikten sonra checkpromo.php'de girdi alan ?promocode= parametresinde sql injection buldum ve işe koyuldum.
Girdi alan yere pekçok request attım fakat hiçbir response dönmüyordu bende yaptığım nmap taramasındaki localipmide ekleyerek 8080 portunu kullanıp image.php?src= parametresine http://127.0.0.1:8080/checkpromo.php?promocode= linkini ekledim ve sonunda response döndü ama bir sorunumuz daha var sunucuda bir filtreleme var ve hiçbir sql injection bypass parametresini kabul etmiyor.
bende kullandığım parametreleri encode etmeyi denedim 1. encode default çıktı : %27
2. encode'da : %2527 ve parametremizi encode ederek tam olarak filtrelerden kaçırmış olduk
ve artık işe koyulma zamanı manuel sql injection sorgumu yazdım ve siteye attım fakat 2 kez encode etmemiz lazım olduğu için : union all select schema_name,1 from information_schema.schemata#
sorgumuzu kabul etmedi bende hiç uzatmadan database'i çekmek için python'daki urllib ve urllib 2 modülleri ile sorgumuzu 2'kez encode ettim ve database'i çektim yazdığım script'in ne yaptığını yanlarına yazdım.
script :
başlattığımdada direk olarak sql injection'u sömürdüm ve database'nin çıktısını aldım :
ve database'yide aldığımıza göre 2. işimiz olan user ve pass'ı almaya geldi sıra sonuçta ssh bağlantımız mevcut user ve pass'ı alırsak ssh baglantısı kurup sunucunun /bin/sh'ına ulaşabiliriz.
hiç uzatmadan 2. username ve password çeken manuel sqli sorgumuzada bir script yazdım : union select all concat(username,':',password),1 from fancydb.users#
username ve password'u aldım :
ve sıra geldi ssh baglantisi yapip /flag'i almaya derken yine bir engel ile karşılaşıyoruz :
ve yine bir filtreleme alıyoruz malesef ama sorun değil şimdi bir port dinleyip sunucumuzdan backconnect alacağız netcat ile :
backconnectimizi aldık fakat root yetkimiz olmadığından /flag'i alamıyoruz ama sorun değil exploit diye birşey üretmişler sonuçta hemen uname -a yapıp sistem bilgilerimize bakıyoruz ve exploit-db'de sistem bilgilerimize özel bizi root yapacabilecek exploitimiz varmı bakıyoruz :
uzun bir araştırma sonucu bir exploit buldum ve kendi sunucuma attım exploiti root olmaya çalıştığımız sunucuya wget ile atmak için ve asıl olaya başlayalım exploitimizi wget ile çektikten sonra .c ile kodlanmış olduğu için gcc ile derleyip exploitimizi çalıştırıp root yetkisini alıyoruz ve parkurumuzu tamamlayıp /flag'i alıyoruz.
Çok güzel bir vuln hub'u bitirdik oluşturucusuna teşekkür ediyorum.
Author : @1ce7ea