NahamStore CTF Çözümü: Web Güvenlik Açıklarıyla Bug Bounty Pratiği

6 days ago 18
BOOK THIS SPACE FOR AD
ARTICLE AD

Berk Kahya

Merhabalar, bu yazımda TryHackMe platformunda yer alan NahamStore makinesini çözme sürecimi detaylı bir şekilde paylaşacağım.

Bu makinenin çözümüne dair Türkçe kaynak bulunmadığı için, topluluğa fayda sağlamak amacıyla bu yazıyı hazırladım.

Yazımda, makinenin kurulumunu, çözüm sırasında izlediğim adımları ve karşılaştığım zorlukları detaylandırarak, makineyi çözmek isteyenlere yardımcı olmayı hedefliyorum.

Kuruluşların güvenlik açıklarını raporlayıp takdir ve tazminat kazanılabilecek programlara (Bug Bounty’lere) başlangıç yapmak isteyenler içinde güzel bir rehber olacağını düşünüyorum.

Platform: TryHackMe
Oda: NahamStore
Zorluk Seviyesi: Orta Seviye
Makine Açıklaması: Bu odada, ödül avcılığının ve web uygulaması hacklemenin temellerini öğreneceksiniz.
Oluşturan: @nahamsec,

(@nahamsec, yalnızca HackerOne platformu üzerinden 1.000.000$’dan fazla gelir elde etmiş çok başarılı bir siber güvenlik araştırmacısı. Videolarını ve eğitimlerini takip etmenizi kesinlikle öneririm.)

NahamStore makinesi üzerinde duracağımız aşamalar

Bu makine üstünden XSS, XXE, SSRF, CSRF, RCE, IDOR, SQL Injection gibi birçok web güvenlik açığını sömürmeyi pratik edeceğiz.

Makineyi başlatıp bağlantıyı sağladıktan sonra zaafiyetleri istediğimiz sıralamada sömürmek mümkün olsa da, CyberKillChain metodolojisini takip etmek daha etkili olacaktır. İlk olarak Recon (Keşif) aşamasını tamamlayarak hedef hakkında bilgi toplayacağız. Bu aşamadan sonra, açıkları sömürmeye başlayabiliriz.

Bu hacklemeyi Kali Linux üstünde gerçekleştireceğim. Yazının çok uzamaması adına, kullanacağım araçların kurulumlarını göstermeyeceğim; basit bir araştırmayla bu araçları kurabilirsiniz.

Start Machine butonuna tıkladıktan sonra 1 dakika içinde
Target IP Address alanında hedef makinemizin IP adresi gözükecektir.

NahamStore makinesinin IP adresi

Bu adresten VPN bağlantısını gerçekleştirmek için konfigürasyon dosyasını indiriyoruz. İndirdiğimiz bu dosya (kullaniciadi.ovpn) olarak indirilecektir. Şimdi Terminali açıp aşağıdaki komutu yazıyoruz.

sudo openvpn kullaniciadi.ovpn

VPN bağlantısını sağladık şimdi ise hedef makinenin IP adresini ve nahamstore.thm alan adını /etc/hosts içerisine eklememiz gerekiyor. Bunun için basit bir metin düzenleyecisi olan nano editörünü kullanacağız.

sudo nano /etc/hosts
/etc/hosts dosyasını bu şekilde hedef makinenizin IP adresini ve alan adını ekleyerek düzenleyebilirsiniz

Recon aşamasında bulacağımız subdomainleride (alt alan adlarını) bu dosya içerisine .com TDL’lerini (üst düzey alan adlarını) .thm ile değiştirerek eklememiz gerektiğini unutmayalım. Laboratuvar ortamında çözüm yaptığımız için bu işlem gerekmektedir. Gerçek ortamdaki hacklemelerde bu işleme ihtiyaç olmadığını hatırlatmak isterim.

Tarayıcımızdan http://nahamstore.thm adresini ziyaret ederek herhangi bir sorun var mı kontrol ediyoruz.

nahamstore.thm genel görünümü

Bağlantımızı gerçekleştirdiğimize göre artık Recon aşamasına geçebiliriz. Soruların cevabını bulabilmek için öncelikle subdomain enumeration, brute force, content discovery ve fuzzing yaparak Recon aşamasını tamamlayacağız.

İlk sorumuzu Jimmy Jones adlı bir kullanıcının SSN’ini (Sosyal Güvenlik Numarasını) bularak cevaplandıracağız.

Subfinder aracını kullanarak subdomain taramasına başlıyoruz.

subfinder -d nahamstore.com -o naham_subdomains.txt

Subfinder, Go programlama dili kullanılarak yazılmış, açık kaynak kodlu bir subdomain tarama aracıdır.
-d : Hedef alan adını belirtiyoruz.
-o : Sonuçları bir dosyaya kaydediyoruz.

subfinder tarafından bulunan subdomainler

Tarama sonucunda 5 adet subdomain bulduk. Gerçek ortamda yapılan taramalarda ise yüzlerce, hatta binlerce subdomain ile karşılaşmak mümkündür. Bu nedenle, tüm sonuçları bir dosyaya kaydetmek, operasyonun takibi ve düzenli analizi için büyük önem taşır.

Öncelikle, alan adlarını yeniden sonu .thm olacak şekilde /etc/hosts dosyasına ekliyoruz.

Bulduğumuz subdomainleri boşluk bırakarak yan yana ekleyebiliriz.

Çıktılara göz atmadan önce ffuf ile brute force (Kaba Kuvvet) saldırısı yaparak subfinder’ın tespit edemediği subdomainlerin olup olmadığına bakalım.

Wordlist (Kelime Listesi) için seclists dosyasını indiriyoruz.

sudo apt install seclists

Bu komut ile ilk önce belirteceğimiz wordlistin pathini (dosya yolunu) buluyoruz. Bu makine için 5000.txt ile biten dosyayı kullanmak yeterli olacaktır.

locate seclists | grep subdomains

Ffuf aracını kullanarak brute force işlemine başlıyoruz.

ffuf -u http://nahamstore.thm -w /usr/share/seclists/Discovery/DNS/subdomains-
top1million-5000.txt -H "Host: FUZZ.nahamstore.thm"

ffuf (Fuzz Faster U Fool): Go dilinde yazılmış son derece verimli bir ağ fuzzing aracıdır. Web sunucusundaki alt alan adlarını ve dizinleri bulmada etkilidir, özellikle dizin ve dosya adlarını brute-forcing yaparak bulur.
-u : Hedef URL’i belirtiyoruz.
-w : Kullanılacak kelime listesinin yolunu belirtiyoruz
-H : Testin yapılacağa adrese FUZZ eklenerek nerede deneme yapılacağı belirtilir.

ffuf, false positive dönen sonuçlar

Birçok 200 OK yanıtı aldık, ancak bu sonuçları incelediğimizde, aslında neredeyse hepsinin false positive (yanıltıcı pozitif) olduğunu görebiliriz. Örneğin rr.nahamstore.thm adresini /etc/hosts dosyasına ekleyip sayfayı incelediğimizde, karşımıza bir hata sayfası çıkacaktır. Bu durum, söz konusu subdomainin gerçekten geçerli olmadığını gösterir.

Bu durumda komutumuza filtre parametreleri ekleyerek daha doğru bir sonuç elde edebiliriz. Bu filtrelemeyi, dönen status koduna veya
size-words-line miktarına göre uygulayarak false positive olan sonuçları elimine edebiliriz.

Bizim durumumuzda -fw (filter words) parametresi ile words filtrelemesi yapabiliriz.

ffuf -u http://nahamstore.thm -w /usr/share/seclists/Discovery/DNS/subdomains-
top1million-5000.txt -H "Host: FUZZ.nahamstore.thm" -fw 125
ffuf, tarafından bulunan subdomainler

ffuf, Subfinder’dan farklı bir sonuç üretmedi, ancak gerçek testlerde tek bir aracın kullanımı yetersiz kalabilir. Subdomain keşfi gibi kapsamlı taramalarda, farklı araçların ve tekniklerin kombinasyonu daha doğru ve kapsamlı sonuçlar elde etmemizi sağlar.

naham_subdomains.txt dosyamızda bulunan alan adlarıyla çözümümüze devam edeceğiz. Dosyamızda 5 adet alan adı bulunduğundan, bunları manuel olarak kontrol edebiliriz. Ancak gerçek testlerde, bu alan adlarının sayısı yüzlerce hatta binlerce olabilir. Bu durumda manuel kontrol zaman alacak ve verimsiz olacaktır. Bu yüzden, süreci otomatikleştirmemiz gerekiyor.

Bu durumda httpx aracını kullanabiliriz.
(naham_subdomains.txt içerisindeki alan adlarının sonunda .thm olmasına dikkat ediyoruz)

cat naham_subdomains.txt | httpx -sc -title -o alive_subdomains.txt

httpx, URL’lerin erişilebilirliğini hızlı bir şekilde kontrol etmemizi sağlar ve çok sayıda alan adını test etmek için ideal bir araçtır. Bu sayede, sadece aktif olan alan adlarını hızla tespit edebiliriz.
-sc : Response kodunu gösterir (200,301,403,404,500).
-title : Sayfa başlığını gösterir.
-o : Çıktıyı dosyaya yazdırır.

httpx tarama sonucu

httpx çıktısını manuel olarak kontrol etmek yerine aquatone, eyewitness gibi ekran görüntüleme araçları kullanabilirsiniz. Bu tür araçlar, her URL’in ekran görüntüsünü alarak toplu halde hızlıca gözden geçirmenizi sağlar ve farklı durumları daha kolay incelemenize yardımcı olur.

Şimdi tarama sonuçlarımız geldi ve bazı subdomainler 301 yönlendirmesi veya 403 erişim engeli gibi farklı sonuçlar döndü. Bu adresleri inceledikten sonra da Recon aşamasını tamamlamış olacağız.

Bu yazıda NahamStore üzerindeki ilk tarama ve analiz aşamalarımızı tamamladık. Her bir URL’nin döndürdüğü farklı HTTP durum kodlarını inceleyerek neler bulabileceğimizi gözden geçirdik.

İlerleyen adımlarda, kalan açıkları da tespit ederek NahamStore makinesinin tüm çözüm aşamalarını tamamlamış olacağız.

Read Entire Article