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.
Hadi Başlayalım!
TASK 1 --> Introduction
Deploy the machine!
Cevap: Gerekmiyor.TASK 2 --> Challenges
Nmap
Hızlı bir nmap taraması yapalım.
Nmap –Pn 10.10.220.139
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.
Dosyaları listelemek için ls komutunu kullanalım.
Bir resim dosyası var. Onu incelemek için ana makinemize çekelim ve bunun için get komutunu kullanalım.
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.
Resim dosyamızın haricinde farklı bir şey çıkmadı. Ana makinemize çektiğimiz resim dosyasına bir göz atalım.
Resmin içerisinde gizlenmiş dosya var mı bir bakalım.
Enter’a basarak gizli dosyayı çıkartalım. İçinde base64 kodlu bir hash olabilir.
Evet base64, onu çözelim.
Base64 ile kodlanmış /etc/shadow dosyasıydı. En alta baktığımızda Charlie kullanıcısını görüyoruz.
Bunu kopyalayıp nano’ya kaydedelim.
Ş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.
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
http://10.10.68.163 adresine gidelim.
Burada kullanıcı adı Charlie ve şifreyi ise az önce bulduğumuzu yazalım.
Bizi http://10.10.68.163/home.php ‘ye yönlendirdi.
Muhtemelen burada Command Injection zafiyeti var. Hangi komutları kullanabiliyoruz bunu anlamak için basit bir ls komutu deniyelim.
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.
Strings diyerek anlaşılabilir bir hale gelmesini sağlayabiliriz. Bunun için strings key_rev_key yazalım.
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.
Netcat’i başlatalım.
Execute’a tıklayarak Netcat’a göz atalım.
İ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
Artık sağlam bir kabuğumuz var. Biraz içeride gezinelim.
Charlie /home dizininde 3 dosyamız var. User flag’ı arıyoruz ve her ctf de olduğu gibi user.txt’de bizi bekliyordur.
Küçük bir sürprizle karşılaştık, diğer dosyalara göz atalım.
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.
İlk olarak anahtara izin vermemiz gerekiyor.
chmod 600 id_rsa
Şimdi bu anahtarla Charlie olarak giriş yapabiliriz.
Change user to Charlie
Cevap: Gerek YokŞimdi user flag’ı alalım.
İşte bu kadar.
Enter the user flag
Cevap: XXXXXXXXXXXXXXXXXXXXXXXXXXSırada root flag var. Sudo -l komutunu kullanalım
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.
Komutu kopyalayalım.
Terminale yapıştırıp devam edelim.
Ayrıcalık yükseltme başarılı, şimdi root flag’ı alalım ve ctf’i bitirelim.
Bu CTF sürprizlerle dolu. Metin dosyası beklerken python betiğiyle karşılaştık. Onu çalıştıralım ve devam edelim.
Ve işte bu kadar.