Grep
Amacınız, keşif ve OSINT becerilerilerinizi kullanarak uygulamadaki güvenlik açıklarını belirlemek ve bunlardan yararlanmaktır. İlerledikçe uygulamadaki zayıf noktaları arayacak, hassas verileri bulacak ve yetkisiz erişim elde etmeye çalışacaksınız.
API KEY
nmap taramasıyla başlayalım.
1
2
3
4
5
6
7
8
9
10
11
12
┌──(root㉿kali)-[~/Desktop]
└─# nmap -T4 -sV 10.10.173.21
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-29 15:26 EDT
Nmap scan report for 10.10.173.21 (10.10.173.21)
Host is up (0.093s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
443/tcp open ssl/http Apache httpd 2.4.41
51337/tcp open http Apache httpd 2.4.41
Service Info: Host: ip-10-10-173-21.eu-west-1.compute.internal; OS: Linux; CPE: cpe:/o:linux:linux_kernel
80 ve 443 portları açık 80 portuna gittiğimizde default apache sayfasıyla karşılaşıyoruz.
443 portuna gitmeye çalıştığımızda ise iznimiz olmadığını görüyoruz.
etc/hosts dosyasına siteyi ekleyerek gitmeyi denedim.
1
2
nano /etc/hosts
MACHINE_IP grep.thm
hosts dosyasını kaydettiğimizde artık siteye erişebiliriz.
Register sayfasından kayıt olmaya çalıştığımda Invalid or Expired API key hatasıyla karşılaşıyorum.
İnternetten sitede yazan SearchME hakkında araştırma yaptım ve bir Github sayfası buldum.
api/register.php dosyasının history bölümüne girdiğimde api key ile karşılaşıyorum.
İlk sorunun cevabını bulduk.
First Flag
Siteye kayıt olurken burp ile isteği durdurup bulduğum api keyi kullandım ve karşılaştığım hatayı çözmüş oldum.
Giriş yaptığımızda ilk bayrağı buluyoruz.
What is the email of the “admin” user?
Github sayfasında upload.php dosyası dikkatimi çekti.
upload.php dizinine giderek dosya yükleyebiliyoruz.
Kodları incelediğimde dosyaları magicbyte larına bakarak kabul ettiğini gördüm.
Hexeditor ile reverseshell.php dosyasının ayarlarıyla oynadım :)
1
2
┌──(root㉿kali)-[~/Downloads]
└─# hexeditor reverseshell.php
İlk 4 hex kodunu jpeg dosyasının hex kodu olan “FF D8 FF E0” ile değiştirdim.
Dosyayı yüklemeyi başardım.
Dosyaların nereye yüklendiğini görmek için gobuster ile dizin taraması yaptım ve api/uploads dizinine yüklendiğini gördüm.
Makineye girmeyi başardım.
var/www klasörü içinde backup dosyası dikkatimi çekti.
1
2
3
4
5
6
7
8
9
10
11
12
$ cd var/www
$ ls
backup
certificate.crt
certificate.csr
default_html
html
leak_certificate.crt
leak_certificate.csr
leakchecker
private.key
private_unencrypted.key
backup içerisindeki users.sql dosyasında adminin mailini görüntülüyorum.
What is the host name of the web application that allows a user to check an email for a possible password leak?
leak_certificate.crt dosyasını inceledim.
1
2
3
4
5
6
7
8
9
10
11
12
$ openssl x509 -in leak_certificate.crt -text -noout
Certificate:
Data:
Version: 1 (0x0)
Serial Number:
2c:df:fe:6b:5d:68:11:a2:28:aa:4e:ee:07:6d:a5:d5:46:f6:ee:a2
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = AU, ST = Some-State, O = Internet Widgits Pty Ltd, CN = leakchecker.grep.thm
Validity
Not Before: Jun 14 12:58:31 2023 GMT
Not After : Jun 13 12:58:31 2024 GMT
Subject: C = AU, ST = Some-State, O = Internet Widgits Pty Ltd, CN = leakchecker.grep.thm
What is the password of the “admin” user?
leak_certificate.crt dosyasını inceleyerek nmap taramasında gördüğüm 51337 portunda çalışan servisi buldum. hosts dosyasına ekleyerek siteye eriştim.
Bulduğumuz adminin mailini girerek adminin parolasını öğrenebiliriz.




















