RickdiculouslyEasy: 1 Writeup

Merhaba arkadaşlar, Vulnhub’tan indirdiğim RickdiculouslyEasy: 1 adlı sanal makinasının çözümünü paylaşacağım.

Aşağıdaki adresten sanal makinayı indirip kurduktan sonra, açıklamasına bir göz atalım. https://www.vulnhub.com/entry/rickdiculouslyeasy-1,207/

CTF formatında olduğunu ve toplamda 130 puanlık flag’lerin olduğunu görüyoruz. Amacımız tüm flag’leri bulup, 130 puanı toplamak olacak. CTF yarışmaları hakkında daha önce yazılan CTF Nedir? yazısına buradan erişebilirsiniz.

Sistem üzerinde çalışan servislerin durumunu öğrenmek için Nmap taraması ile başlayalım.
“nmap -A 10.0.2.8 -v -n -Pn -p-“ komutu ile tüm portlar için taramayı başlatalım.

PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-r–r– 1 0 0 42 Aug 22 2017 FLAG.txt
|_drwxr-xr-x 2 0 0 6 Feb 12 2017 pub
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:10.0.2.4
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 1
| vsFTPd 3.0.3 – secure, fast, stable
|_End of status
22/tcp open ssh?
| fingerprint-strings:
| NULL:
|_ Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-31-generic x86_64)
80/tcp open http Apache httpd 2.4.27 ((Fedora))
| http-methods:
| Supported Methods: OPTIONS HEAD GET POST TRACE
|_ Potentially risky methods: TRACE
|_http-server-header: Apache/2.4.27 (Fedora)
|_http-title: Morty’s Website
9090/tcp open http Cockpit web service
| http-methods:
|_ Supported Methods: GET HEAD
|_http-title: Did not follow redirect to https://10.0.2.8:9090/
13337/tcp open unknown
| fingerprint-strings:
| NULL:
|_ FLAG:{TheyFoundMyBackDoorMorty}-10Points
22222/tcp open ssh OpenSSH 7.5 (protocol 2.0)
| ssh-hostkey:
| 2048 b4:11:56:7f:c0:36:96:7c:d0:99:dd:53:95:22:97:4f (RSA)
| 256 20:67:ed:d9:39:88:f9:ed:0d:af:8c:8e:8a:45:6e:0e (ECDSA)
|_ 256 a6:84:fa:0f:df:e0:dc:e2:9a:2d:e7:13:3c:e7:50:a9 (ED25519)
60000/tcp open unknown
|_drda-info: ERROR
| fingerprint-strings:
| NULL, ibm-db2:
|_ Welcome to Ricks half baked reverse shell…

Tarama sonucunda 21, 22, 80, 9090, 13337, 22222 ve 60000 portlarının açık olduğunu görüyoruz.
FTP servisine bir göz atalım. Aggressive scan ile FTP servisine Anonymous olarak giriş yapılabildiğini görüyoruz.

Anonymous FTP

Anonymous olarak giriş yapıp, dizinleri listelediğimiz de FLAG.txt dosyasını görüyoruz.

FTP login

Hemen kendi sunucumuza aktarıp, okuyalım. Ve Flag karşımızda.

Flag1

FLAG{Whoa this is unexpected} – 10 Points (10/130)

80 nolu portta çalışan web server’a göz atalım.

Morty Website

Resimdeki ekran ile karşılaşıyoruz. Dirb ile dizin taraması yapıp ne var ne yok bir bakalım.
robots.txt dosyasının, cgi-bin ve passwords dizinlerinin olduğunu görüyoruz.

Dirb

passwords dizinine girdiğinizde FLAG.txt ve passwords.html dosyaları ile karşılaşıyoruz.

passwords

FLAG.txt ‘yi okuduğumuzda, 2. Flag karşımızda.

Flag2

FLAG{Yeah d- just don’t do it.} – 10 Points (20/130)

Şimdi ise password.html dosyasını görüntüleyelim. Kaynak koda baktığımızda yorum satırı olarak bırakılmış winter parolasını görüyoruz.

source code

Bunu bir yere not ederek yola devam edelim. Dirb ile bulduğumuzda robots.txt dosyasına göz atalım.

Robots-txt

Sırasıyla robots.txt dosyasında listelediğimiz dosyaları inceleyelim. /cgi-bin/root_shell.cgi dosyasına herhangi bir şey bulamadık.

Root-cgi

/cgi-bin/tracertool.cgi dosyasına geçelim.

command exec

Bu ekranda komut çalıştırma zafiyeti olduğunu görüyoruz. Sistemde var olan kullanıcıları görmek için /etc/passwd dosyasını okuyalım. Burada “cat” komutunu kullandığımda kedi resmi ile karşılaştım 🙂 🙂

cat

Dosyayı okumak için “cat” komutu yerine “head” komutunu kullanalım.

etc passwd

Morty, RickSanchez ve Summer adlı kullanıcıların olduğunu görüyoruz. Buradaki kullanıcıları az önce kaynak kodda bulduğumuz “winter” parolasını kullanarak, SSH ile giriş yapabilmeyi deneyeceğiz. Ama önce diğer servislerden devam edelim.

9090 nolu portta da web server olduğu görülüyor. Tarayıcıdan eriştiğimizde resimdeki görüntü ile karşılaşıyoruz. Flag karşımızda.

Flag3

FLAG {There is no Zeus, in your face!} – 10 Points (30/130)

13337 nolu portun Nmap taraması sonucunda flag değerini görebiliyoruz.

Flag4

FLAG:{TheyFoundMyBackDoorMorty} – 10 Points (40/130)

60000 nolu portta ise tarama sonucunda görüldüğü üzere reverse shell bırakılmış.

Reverse shell

nc ile bağlantı kurduğumuzda FLAG.txt dosyasını görüyoruz.

Flag5

FLAG{Flip the pickle Morty!} – 10 Points (50/130)

Şimdi ise 22222 nolu portta çalışan SSH servisine geçelim. Daha önce bulduğumuz “winter” parolası ile RickSanchez, Summer ve Morty kullanıcıları için bağlantı kurmaya çalışalım.

Flag6

Summer kullanıcısına “winter” parolası ile giriş yapabiliyoruz. hemen dosyaları listeleyip, flag dosyasını okuyalım.

FLAG{Get off the high road Summer!} – 10 Points (60/130)

/home dizinine geçip diğer kullanıcıların dosyalarını görüntüleyelim. Morty kullanıcısının home dizininde listeleme yaptığımızda resim ve zip dosyasını görüyoruz.
scp kullanarak dosyaları kendimize alalım.

Morty Home

Safe_Password.jpg adlı dosyaya strings attıktan sonra zip için gerekli olan parolayı buluyoruz.

scp

scp ile journal.txt.zip dosyasını kendimize çekerek, zipten çıkartıyoruz.

Flag7

FLAG: {131333} – 20 Points (80/130)

RickSanchez kullanıcısının home dizinine geçip, dosyaları listeleyelim. RICKS_SAFE adlı dosya altında safe isimli çalıştırılabilir bir dosya olduğunu görüyoruz. Fakat çalıştırmaya yetkimiz yok. Dosyayı scp ile kendimize çekebilir ya da /tmp dizini altına kopyalayıp orada çalıştırabiliriz.

RickSanchez

Çalıştırdığımızda bizden parametre istiyor. Az önce bulduğumuz “131333” değerini safe çalıştırılabilir dosyasına parametre olarak verdiğimizde flag değeri karşımıza çıkıyor.

Flag8

FLAG{And Awwwaaaaayyyy we Go!} – 20 Points (100/130)

Hint

Dosyada RickSanchez kullanıcısının parolasına dair ipucu verilmiş. “RickSanchez old bands name” olarak araştırma yapıldığında:

http://rickandmorty.wikia.com/wiki/The_Flesh_Curtains sayfası bulunmaktadır. The Flesh Curtains kelimesi wordlist oluşturmak için kullanılacaktır. Bu işlemi crunch ile yapabiliriz.

Crunch wordlist

Oluşturduğumuz wordlist ile hydra üzerinden brute force saldırısı gerçekleştirelim.

hydra

RickSanchez adlı kullanıcının parolasına brute force sonucunda erişebildik. SSH bağlantısı yapıp, “sudo -l” komutu ile sudoers dosyasına bir göz atalım. “sudo su” komutu ile root kullanıcına gecelim. /root dizini altında FLAG.txt dosyasını okuyup son flag değerimizi buluyoruz.

Flag9

FLAG: {Ionic Defibrillator} – 30 points (130/130)

Başka bir yazıda görüşmek üzere…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir