[TR] TryHackMe – Chocolate Factory CTF Writeup

Konudaki Başlıklar

[TR] TryHackMe – Chocolate Factory CTF Writeup

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.

mkdir
mkdir

Hadi Başlayalım!

TASK 1 –>  Introduction

task 1
task1

Deploy the machine!

Cevap: Gerekmiyor.

TASK 2 –>  Challenges

tast 2
tast 2

Nmap

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

Nmap –Pn 10.10.220.139

nmap
nmap

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.

ftp
ftp

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

ftp ls
ftp ls

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

ftp get
ftp get

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.

ftp ls -la
ftp ls -la

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

jpg
jpg

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

steghide
steghide

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

cat
cat

Evet base64, onu çözelim.

cat base64
cat base64

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

charlie
charlie

Bunu kopyalayıp nano’ya kaydedelim.

nano
nano

Ş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.

john
john

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

gobuster
gobuster

http://10.10.68.163 adresine gidelim.

target
target

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

login
login

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

home
home

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

ls
ls

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.

cat
cat

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

strings
strings

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.

python script
python script

Netcat’i başlatalım.

netcat
netcat

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

lvnp
lvnp

İ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

revers shell
revers shell

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

ls
ls

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

user.txt
user.txt

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

cat
cat

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.

nano
nano

İlk olarak anahtara izin vermemiz gerekiyor.

chmod 600 id_rsa

Şimdi bu anahtarla Charlie olarak giriş yapabiliriz.

chmod
chmod

Change user to Charlie

Cevap: Gerek Yok

Şimdi user flag’ı alalım.

user flag
user flag

İşte bu kadar.

Enter the user flag

Cevap: XXXXXXXXXXXXXXXXXXXXXXXXXX

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

sudo -l
sudo -l

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.

Vi
Vi

Komutu kopyalayalım.

sudo vi
sudo vi

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

whoami
whoami

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

cd /root
cd /root

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

root.py
root.py
root flag
root flag

Ve işte bu kadar.

Enter the root flag

Cevap:XXXXXXXXXXXXXXXXXXXXXXXXXX

Yorum yapın