- Katılım
- 22 Ocak 2024
- Mesajlar
- 26
- Tepkime puanı
- 40
- Puanları
- 13
Merhabalar! HackTheBox platformundaki SecNotes makinesinin çözümünü elimden geldiğince anlatacağım. Keyifli okumalar!
Hızlıca bir port taraması yapıyorum. Çıktı olarak 80 ve 445 portlarının açık olduğunu görüyorum.
445 portunu numaralandırıyorum, ancak listelemeye bile yetkim olmadığını görüyorum.
Bunu gördükten sonra direkt olarak 80 portunu numaralandırıyorum. Siteye ilk girdiğimde bir login sayfası beni karşılıyor. Hemen admin kullanıcısının default olarak kullanılabilecek şifrelerini deniyorum
İşe yaramayınca, ilk olarak manuel SQLi (SQL injection) deniyorum.
Bunda da başarısız oluyorum ve SQLmap ile bir saldırı gerçekleştiriyorum
Başarısız olunca, artık yapmam gereken tek şey hesap açmaya geçiyorum.
Test adlı bir hesap oluşturuyorum ve bu hesapla siteye giriş yapıyorum.
Neredeyse her sekmede SQLi deniyorum ve en sonunda pes edip hesaptan çıkıyorum. Şimdiki stratejim ise direkt kullanıcı adımı bir SQLi payload'ı yapmak.
Bunu yaptıktan sonra sisteme aynı kullanıcı adıyla giriş yapıyorum.
SQLi'yi başarıyla uyguladık ve sitede görmememiz gereken notları ana sayfamıza düşürdük.
Bir notta, SMB protokolüyle ilgili çok fazla bilgi ediniyoruz.
"new-site" adlı bir paylaşımın olduğunu ve Tyler adlı kullanıcının şifresini öğrendik. Şimdi bu bilgilerle SMB'ye bağlantı sağlamaya çalışalım.
Dosyalari listelediğimde bir sitenin paylaşımının bu server üzerinden yapıldığını fark ediyorum
Burada, nmap taramasını hızlı olması için baştansavma yaptığım için, "new-site" paylaşımının bir alt alan adı (subdomain) olduğunu zannedip subdomain taraması yaptım. Bu hatalı yaklaşım nedeniyle baya bir zaman kaybettikten sonra, daha kapsamlı bir nmap taraması gerçekleştirdim.
Tarama sonucunda 8808 portunun açık olduğunu farkediyorum. Siteyi ziyaret ettiğimde, aradığım sitenin bu olduğunu anlıyorum.
Hemen bir PHP payload'ı hazırlayıp buraya upload ediyorum. (Burada reverse shell almak istediğimiz için aynı zamanda nc.exe'yi de upload edebilirdik, ancak ben Windows'ta dosya indirme komutunu göstermek istedim.)
Şimdi reverse shell almak için komutlarımı giriyorum.
1) nc.exe'yi hedef makinemize indiriyoruz.
Burada, response status code 500 olsa dahi, Python serverımızın çıktısında nc.exe dosyasının başarılı bir şekilde indirildiğini görebiliyoruz.
2) reverse shell alma
User flag'i alıp bu kısmı bitiriyoruz.
Privilege Escalation
Bu kısımda, doğrudan servera girdiğimde dikkatimi çeken bir dosya oldu.
Bu dosyayı fake SMB server oluşturarak kendi makineme aktarmaya çalıştım, ancak başarılı bir şekilde aktarım yapamadım. Bu kısımda tıkandığım için makinenin info kısmından bir hint aldım ve bunun bir WSL olduğunu anladım.
Windows Subsystem for Linux (WSL) dosyalarının nerede olduğunu öğrenmek için Google'da yaptığım aramada çok fazla sonuç buldum.
buradan WSL'in pathine ulaşabilirsiniz
Bu dizine gidince karşıma Linux işletim sisteminin dosyaları çıktı. Buradan /root dizinine gittiğimde .bash_history dosyasının okunabilir olduğunu fark ettim. Okuduktan sonra, karşıma Administrator kullanıcısının şifresi çıktı.
Şimdi Administrator kullanıcısı ile bir shell alalım. Bunun için psexec'i kullanacağım.
Buraya kadar okuduğunuz için teşekkürler.
Hızlıca bir port taraması yapıyorum. Çıktı olarak 80 ve 445 portlarının açık olduğunu görüyorum.
445 portunu numaralandırıyorum, ancak listelemeye bile yetkim olmadığını görüyorum.
Bunu gördükten sonra direkt olarak 80 portunu numaralandırıyorum. Siteye ilk girdiğimde bir login sayfası beni karşılıyor. Hemen admin kullanıcısının default olarak kullanılabilecek şifrelerini deniyorum
İşe yaramayınca, ilk olarak manuel SQLi (SQL injection) deniyorum.
Bunda da başarısız oluyorum ve SQLmap ile bir saldırı gerçekleştiriyorum
Başarısız olunca, artık yapmam gereken tek şey hesap açmaya geçiyorum.
Test adlı bir hesap oluşturuyorum ve bu hesapla siteye giriş yapıyorum.
Neredeyse her sekmede SQLi deniyorum ve en sonunda pes edip hesaptan çıkıyorum. Şimdiki stratejim ise direkt kullanıcı adımı bir SQLi payload'ı yapmak.
Bunu yaptıktan sonra sisteme aynı kullanıcı adıyla giriş yapıyorum.
SQLi'yi başarıyla uyguladık ve sitede görmememiz gereken notları ana sayfamıza düşürdük.
Bir notta, SMB protokolüyle ilgili çok fazla bilgi ediniyoruz.
"new-site" adlı bir paylaşımın olduğunu ve Tyler adlı kullanıcının şifresini öğrendik. Şimdi bu bilgilerle SMB'ye bağlantı sağlamaya çalışalım.
Dosyalari listelediğimde bir sitenin paylaşımının bu server üzerinden yapıldığını fark ediyorum
Burada, nmap taramasını hızlı olması için baştansavma yaptığım için, "new-site" paylaşımının bir alt alan adı (subdomain) olduğunu zannedip subdomain taraması yaptım. Bu hatalı yaklaşım nedeniyle baya bir zaman kaybettikten sonra, daha kapsamlı bir nmap taraması gerçekleştirdim.
Tarama sonucunda 8808 portunun açık olduğunu farkediyorum. Siteyi ziyaret ettiğimde, aradığım sitenin bu olduğunu anlıyorum.
Hemen bir PHP payload'ı hazırlayıp buraya upload ediyorum. (Burada reverse shell almak istediğimiz için aynı zamanda nc.exe'yi de upload edebilirdik, ancak ben Windows'ta dosya indirme komutunu göstermek istedim.)
Şimdi reverse shell almak için komutlarımı giriyorum.
1) nc.exe'yi hedef makinemize indiriyoruz.
Burada, response status code 500 olsa dahi, Python serverımızın çıktısında nc.exe dosyasının başarılı bir şekilde indirildiğini görebiliyoruz.
2) reverse shell alma
User flag'i alıp bu kısmı bitiriyoruz.
Privilege Escalation
Bu kısımda, doğrudan servera girdiğimde dikkatimi çeken bir dosya oldu.
Bu dosyayı fake SMB server oluşturarak kendi makineme aktarmaya çalıştım, ancak başarılı bir şekilde aktarım yapamadım. Bu kısımda tıkandığım için makinenin info kısmından bir hint aldım ve bunun bir WSL olduğunu anladım.
Windows Subsystem for Linux (WSL) dosyalarının nerede olduğunu öğrenmek için Google'da yaptığım aramada çok fazla sonuç buldum.
buradan WSL'in pathine ulaşabilirsiniz
Bu dizine gidince karşıma Linux işletim sisteminin dosyaları çıktı. Buradan /root dizinine gittiğimde .bash_history dosyasının okunabilir olduğunu fark ettim. Okuduktan sonra, karşıma Administrator kullanıcısının şifresi çıktı.
Şimdi Administrator kullanıcısı ile bir shell alalım. Bunun için psexec'i kullanacağım.
Buraya kadar okuduğunuz için teşekkürler.