TryHackMe - Chocolate Factory CTF Writeup

PwnLab.Me

Admin
Katılım
21 Ocak 2024
Mesajlar
202
Tepkime puanı
9
Puanları
18

Okan Köse tarafından 28 Şubat 2021 tarihinde yazılmıştır.​



Merhaba arkadaşlar, TryHackMe de bulunan Chocolate Factory CTF yapalım.

CTF’e buradan ulaşabilirsiniz.

https://tryhackme.com/room/chocolatefactory

İlk olarak Desktop da CTF için bir dizin ve onun içine de Nmap dizini oluşturalım.

1705954323300.png


Hadi Başlayalım!

TASK 1 --> Introduction

1705954329382.png


Deploy the machine!

Cevap: Gerekmiyor.

TASK 2 --> Challenges

1705954336359.png


Nmap

Hızlı bir nmap taraması yapalım.

Nmap –Pn 10.10.220.139

1705954342032.png


Odaklanmamış gereken 3 bağlantı noktamız var. Bunlar;

21 FTP
22 SSH
80 HTTP

FTP Enumeration


FTP’ye anonymous bir kullanıcı olarak anonymous şifresi ile giriş yapalım.

1705954346158.png


Dosyaları listelemek için ls komutunu kullanalım.

1705954350581.png


Bir resim dosyası var. Onu incelemek için ana makinemize çekelim ve bunun için get komutunu kullanalım.

1705954354276.png


Ftp den çıkış yapmadan önce gizli dosya veya dizin var mı diye son bir kontrol yapalım. Gizli dosyalar dahil tüm dosyaları listelemek için ls –la komutunu kullanalım.
1705954357925.png



Resim dosyamızın haricinde farklı bir şey çıkmadı. Ana makinemize çektiğimiz resim dosyasına bir göz atalım.

1705954363497.png


Resmin içerisinde gizlenmiş dosya var mı bir bakalım.

1705954368383.png


Enter’a basarak gizli dosyayı çıkartalım. İçinde base64 kodlu bir hash olabilir.

1705954374423.png


Evet base64, onu çözelim.
1705954379689.png



Base64 ile kodlanmış /etc/shadow dosyasıydı. En alta baktığımızda Charlie kullanıcısını görüyoruz.

1705954384630.png


Bunu kopyalayıp nano’ya kaydedelim.
1705954389088.png



Şifreyi çözmek için John the Ripper aracını kullanabiliriz. $6$ ile başlayan hash SHA-512 crypt'tir. Şifre çözme için rockyou kelime listesi kullanalım.

1705954394021.png


Not: Bu işlem 7-30 dk sürebilir.

Charlie kullanıcısının şifresini bulduk.

What is Charlie's password?

Cevap:XXXXXX

Şimdide web tarafına bir göz atalım. Gizli dizinlerin keyfi için gobuster kullanabiliriz.

gobuster dir -u http://10.10.68.163 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

1705954398527.png


http://10.10.68.163 adresine gidelim.

1705954403581.png


Burada kullanıcı adı Charlie ve şifreyi ise az önce bulduğumuzu yazalım.
1705954408705.png



Bizi http://10.10.68.163/home.php ‘ye yönlendirdi.
1705954413502.png



Muhtemelen burada Command Injection zafiyeti var. Hangi komutları kullanabiliyoruz bunu anlamak için basit bir ls komutu deniyelim.
1705954417122.png



Güzel. İlk soruda istenen key muhtemelen key_rev_key dosyasının içerisinde. Diğer komutumuzu deneyelim, cat key_rev_key ile devam edelim.

1705954422144.png


Strings diyerek anlaşılabilir bir hale gelmesini sağlayabiliriz. Bunun için strings key_rev_key yazalım.
1705954427452.png



Ve orada bizden ilk soruda istenen key var.

Enter the key you found!

Cevap:XXXXXXXXXXXXXXXXXXXXXXX

Şimdi Revers Shell zamanı. Bunun için buraya göz atabilirsiniz;

http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet

Bunun için basit bir python script’i kullanabiliriz. IP ve Port’u kendi makinemize göre ayarlayıp devam edelim.

1705954439821.png


Netcat’i başlatalım.

1705954443824.png


Execute’a tıklayarak Netcat’a göz atalım.

1705954447498.png


İyi gidiyoruz, Shell başarılı fakat garanti olması için şu şekilde devam edelim.

$ python -c ‘import pty;pty.spawn(“/bin/bash”)’
Ctrl+Z
stty raw -echo
fg
export TERM=xterm
1705954451246.png



Artık sağlam bir kabuğumuz var. Biraz içeride gezinelim.

1705954466073.png


Charlie /home dizininde 3 dosyamız var. User flag’ı arıyoruz ve her ctf de olduğu gibi user.txt’de bizi bekliyordur.

1705954469819.png


Küçük bir sürprizle karşılaştık, diğer dosyalara göz atalım.

1705954473470.png


Charlie kullanıcı olarak giriş de kullanabileceğimiz ssh anahtarı.

SSH anahtarını kopyalayın, nano kullanarak bir dosya oluşturun, anahtarı yapıştırın, [Ctrl + O] kaydedin ve [Ctrl + X] 'ten çıkın.

1705954477884.png


İlk olarak anahtara izin vermemiz gerekiyor.

chmod 600 id_rsa

Şimdi bu anahtarla Charlie olarak giriş yapabiliriz.
1705954483380.png



Change user to Charlie

Cevap: Gerek Yok

Şimdi user flag’ı alalım.
1705954490391.png



İşte bu kadar.

Enter the user flag

Cevap: XXXXXXXXXXXXXXXXXXXXXXXXXX

Sırada root flag var. Sudo -l komutunu kullanalım

1705954495090.png


Burada ki Vi dosyası root olarak çalıştırılabilir. Ayrıcalık yükseltmek için gerekli komutlara aşağıdaki adresten bakabiliriz.

https://gtfobins.github.io/

Vi araması yapalım.

1705954500695.png


Komutu kopyalayalım.
1705954505091.png



Terminale yapıştırıp devam edelim.
1705954509954.png



Ayrıcalık yükseltme başarılı, şimdi root flag’ı alalım ve ctf’i bitirelim.

1705954515515.png


Bu CTF sürprizlerle dolu. Metin dosyası beklerken python betiğiyle karşılaştık. Onu çalıştıralım ve devam edelim.
1705954524012.png

1705954531741.png


Ve işte bu kadar.

Enter the root flag

Cevap:XXXXXXXXXXXXXXXXXXXXXXXXXX
 
Geri
Üst