BOOK THIS SPACE FOR AD
ARTICLE ADMerhabalar, 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.)
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.
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.ovpnVPN 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/hostsRecon 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.
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.txtSubfinder, 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.
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.
Çı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 seclistsBu 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 subdomainsFfuf 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.
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, 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)
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 çı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.