TryHackMe | Agent Sudo Writeup

Değerli okurlarımız, bugün TryHackMe makinalarından olan "Agent Sudo" adlı makinamızı çözeceğiz. Keyifli okumalar!

TryHackMe | Agent Sudo Writeup


Evet  şimdi makinamızı çözmeye başlayalım!

İlk 3 soruda aşşağıda gördüğünüz gibi bizden açık port sayısını, kendimizi gizli sayfaya nasıl yönlendirdiğimizi ve son olarak da ajan isminin ne olduğunu soruyor.Haydi şimdi bunlara nasıl erişebileceğimize bir bakalım.

Her zaman olduğu gibi makinemizi çözerken ilk önce bir nmap taraması atarak hedef cihazı inceleyelim. Öncelikle ben nmap taramasını aşşağıdaki gibi attım. Şekilde gördüğünüz şekilde -sC parametresi sayesinde hizmetlere yönelik otomatik betik taraması gerçekleşecektir. -sV parametresini de ekleyerek çalışan servislerdeki versiyon bilgisini almak istedim.-O parametresi ile de hedef sistemin işletim sistemi hakkında bilgi almak istedim.Son olarak -Pn taramasını neden attık diyebilirsiniz. Bunun sebebi ise normalde Nmap, hedef sistemlerin erişilebilir olup olmadığını belirlemek için ICMP ping paketleri gönderir. Ancak bazen hedef sistemler ICMP ping paketlerini yanıtlamayabilir veya güvenlik duvarları ICMP trafiğini filtreleyebilir. Bu durumda, -Pn seçeneği kullanılarak ping atlamış olunur ve Nmap, hedef sistemlere ping göndermeksizin tarama yapar. İlk başta -Pn parametresini kullanmayabilirsiniz fakat nmap taraması başarılı bir şekilde gerçekleşmez ise -Pn parametresi de bir çözüm olabilir.


Evet nmap tarama sonucumuz geldi.Burada da apaçık bir şekilde 3 adet açık port olduğu gözükmektedir(ftp,ssh,http).O zaman ilk sorumuzu şimdiden çözdük bile:)

Şimdi nmap sonucumuz aldık çok güzel,şimdi bu raporu incelemek kaldı.Mesela 80 portunda bir http web sunucusunun çalıştığını farkediyorum. O zaman elimizdeki ip bilgisiyle haydi web sunucusuna gidelim ve neler varmış bir bakalım!

Sayfaya gittiğimizde bizi aşşağıdaki mesaj karşılıyor. Ajan R tarafından diğer ajanlara "Siteye erişmek için kullanıcı aracısı olarak kendi kod adınızı kullanın" mesajı geçilmiş.Sayfanın kaynak kodlarını da incelemek istiyorum fakat kaynak kodlarından kayda değer bir şey bulamıyorum.

Farkettiyseniz soruda gizli sayfanın bulunması isteniyor. Mesajda Agent R yazdığı için bu gizli sayfanın User Agent’i alfabedeki herhangi bir harf olabilir. Bu harfi bulmak için "curl" komutuyla tek tek User Agent için harfler denenebilir ama eğer aranan harf alfabenin sonlarında ise bunu yapmak zaman alacaktır. Bu komut yerine Burp Suite programını kullanarak kısa sürede bütün harfler deneyebilirsiniz. Fakat ben yine de tercihimi "curl" komudundan yana kullanıyorum ve şansımı denemek istiyorum :    curl http:/// -H "User-Agent: C" -L

Evet işte C harfi denemesinde oldu! Burada bizi şöyle bir mesaj karşılıyor:  " Anlaşmamızı hâlâ hatırlıyor musun? Lütfen Ajan J'ye durumu en kısa zamanda anlatın. Ayrıca lanet şifreni değiştir, zayıf!" Bu mesajı incelemeden önce "curl" komudunda kullandığımız parametreleri açıklayalım : 

curl: URL'ye HTTP isteği göndermek için kullanılan komut.
http://10.10.151.212/: Gönderilecek HTTP isteğinin hedef URL'si.
-H "User-Agent: C": İsteğe eklenen "User-Agent" başlığı. Bu durumda, kullanılan istemcinin adını "C" olarak belirtiyor.
-L: Bu, yönlendirmeleri takip etmeyi sağlar. Eğer sunucu tarafından bir yönlendirme yapılıyorsa, bu parametre ile takip edilir.

Bu arada 2.sorumuzda bize gizli sayfayı nasıl açığa çıkaracağımızı soruyordu. Onun da cevabını bulmuş olduk = "user-agent"

Evet şimdi geldi bu mesajı incelemek. Mesajda "chris" adlı ajana parolasının zayıf olduğunu söylüyor.Burada da aklımıza brute force (kaba kuvvet) saldırısı aklımıza geliyor. FTP sunucusuna chris kullanıcı adıyla bir brute force deneyebiliriz.
Ben brute force atağımı "Hydra" aracı ile yapmayı tercih ediyorum burada.

-l ile kullanıcı adını belirttik, -P parametresi ile brute force için wordlist belirttik ve -vv ile verbose yaparak şifre denemelerini bize göstermesini istedik.

Bu arada 3.sorunun cevabını da bulduk. Ajan ismini soruyordu = "chris"

Evet şifreyi bulduk! 

Evet FTP sunucusuna başarılı bir şekilde parola ile giriş yaptık.

Şimdi "ls" komudunu çalıştırdığımızda 3 adet dosya dikkatimizi çekiyor:

Bu 3 dosyayı da kendi makineme aktarıp incelemek istiyorum.Önce txt dosyasını aktarıyorum.Bunu da "get" komudu ile yapıyorum : 

Diğer dosyaları da get komudu ile çektiğime göre şimdi incelemeye başlayabilirim:

To_AgentJ.txt adlı dosyayı okuduğumda şöyle bir mesaj bizi karşılıyor: 

Burada ki mesaj ise şunu belirtiyor :

Sayın ajan J,

Bütün bu uzaylı benzeri fotoğraflar sahte! Ajan R gerçek resmi dizininizde sakladı. Giriş şifreniz bir şekilde sahte resimde saklanıyor. Senin için sorun olmamalı.

İtibaren,
Ajan C

Burada gerçek resmi dizininizde sakladı bilgisi vermiş. Bu noktada aklıma cutie.png resmini binwalk ile incelemek aklıma geliyor.Belki fotoğrafa bir dosya falan gizlenmiştir:)

Evveet! Fotoğrafın içerisine bir zip dosyası gömüldüğünü görüyoruz. 

Şimdi binwalk aracını hangi dizinde kullandıysanız o dizinde böyle bir dosya oluşmuş olacak : "_cutie.png.extracted"

Bu dosyaya giriyoruz ve burada şifrelenmiş bir "8702.zip" adlı dosyayı görüyoruz. Eee şifreli bir dosyayla karşılaştıysak brute force atma zamanı gelmiş :)

Şifreli dosyamızı kırmamız için burada "John" aracını kullanmak istiyorum. Yalnız bu dosyayı john ile kırmamız için önce bu zip dosyasını john formatına dönüştürmemiz lazım. Bunun için de "zip2john 8702.zip > hash.txt" komudunu kullanmalıyız.

Evet hash.txt dosyamız oluştu. Şimdi bu hash.txt dosyası içindeki hash'i kırmak kaldı: " john hash.txt --wordlist=rockyou.txt" komudu ile bu hash değerini rahatça kırabiliriz: 

Ve evet gördüğünüz gibi rar şifresini başarılı bir şekilde bulduk!(5.Sorunun cevabı) Haydi şimdi rar dosyasını ayıklayıp içeriğini inceleyelim:

Gördüğünüz gibi "7z e 8702.zip" yazarak bu dosyayı ayıklamış oldum.İçinden To_agentR.txt isimli bir dosya bulduk.Bu dosyanın içeriğinde ise yazana bakalım : 

Bu nottan hemen aklıma FTP sunucusundan çektiğimiz diğer jpg dosyası geliyor. " cute-alien.jpg" adlı bulduğumuz diğer fotoğrafı yukarıdaki parola yardımıyla steghide ile incelersek belki bir şeyler bulabiliriz ama bunun öncesinde burada vermiş olduğu şifrenin base64 ile şifrelenmiş olduğunu anlıyorum ve hemen bunu decode etme fikri aklıma geliyor. İsterseniz internetten herhangi bir online base64 decoder kullanın ya da " echo QXJlYTUx | base64 -d" komudunu kullanın. Her ikisi de bu şifreli mesajı decode edecektir. 

Evet şifremizi bulduk : Area51 (6.Sorunun cevabı)

Şimdi başarılı bir şekilde steghide aracımızla fotoğrafın içerisine gizlenmiş olan dosyayı çıkarabiliriz. "steghide extract -sf cute-alien.jpg" komudunu yazdıktan sonra bulduğumuz şifreyi girerek gizli dosyaya ulaşmış oluyoruz:

Bakalım bu message.txt adlı dosyada ne yazıyormuş :

Evet burada ajanın gerçek ismi kullanılmış! Chris, James adlı arkadaşına giriş şifresini bu mesajda belirtmiş.Aynı zamanda 7.sorunun cevabını da bulduk : "James".8.soruda da şifreyi soruyordu : "hackerrules!".Geriye SSH ile James adlı kullanıcı üzerinden sunucuya girmek kaldı : 

Gördüğünüz gibi başarılı bir şekilde girişi sağladım.Şimdi sunucuda ne var ne yok bir bakalım, /home/james dizinindeyim ve "ls" çalıştırıyorum :

9.Sorunun da cevabını bu şekilde bulmuş olduk : User Flag = b03d975e8c92a7c04146cfa7a5a313c7

Evet şimdi sıradaki sorumuza gelecek olursak diğer sorulardan biraz farklı :D
Bu soruda bize fotoğraftaki olayın adı nedir diye bir soru yöneltmiş.Farkettiyseniz ls çalıştırdığımızda Alien_autospy.jpg adlı bir fotoğraf gördük. Bunu incelemek amaçlı kendi bilgisayarıma aktarıyorum: "scp [email protected]:/home/kullanici/resim.jpg /home/lokal_kullanici/resimler/"

Başarılı bir şekilde resimi kendi makinama çekebildim. Şimdi fotoğrafı açalım:

Evet karşımıza böyle ürkütücü bir uzaylı resmi çıktı :D Şimdi bunun ne olduğunu anlamak için bu resmi internette arattım ve Roswell Ufo olayı adlı yazılara rastladım.

Resim dosyamızın ismi Alien_autospy.jpg'ydi.Buradan edindiğim bilgileri birleştiriyorum : "Roswell alien autospy"(10.Sorunun cevabı)

Ve geldik CTFimizin son bölümünee:

Burada bizi "Yetki Yükseltme" soruları karşılıyor. Bir yetki yükseltme açığı bulmamızı,bu açığın CVE tarih ve numara bilgisini,sistemdeki root bayrağını ve bonus olarak da Ajan R nin aslında kim olduğunu çözmemizi istiyor.

O zaman haydi başlayalım :

Öncelikle hatırlarsanız zaten hâli hazırda sunucuya james kullanıcısı ile girişimizi yapmıştık.Şuan yapacağım adım ise önce sistemde bir "sudo -l" komudunu çalıştırmak."sudo -l" komutu, bir kullanıcının belirli bir sistemdeki sudo (superuser do) yetkilerini listeleyen bir komuttur. Bu komut, bir kullanıcının hangi komutları sudo ile çalıştırabileceğini ve bu komutları hangi argümanlarla kullanabileceğini gösterir.

Bu gördüğünüz çıktıya göre, kullanıcı "james", "sudo -l" komutuyla belirli bir yetkiye sahip görünmektedir. Özellikle, kullanıcı "james" şu komutu çalıştırabilir: /bin/bash. Ancak, bu komutun bazı sınırlamalara sahip olduğu görülmektedir. Kullanıcı, "ALL" (herhangi bir kullanıcı) ile "root" hariç diğer kullanıcılar üzerinde /bin/bash komutunu çalıştırabilir.

Bu noktada ise çıktıda gördüğümüz   "(ALL, !root) /bin/bash "  kısmını internette aratıp bir şeyler elde edip edemeyeceğime bakıyorum:

Ve aynen bununla ilgili bir açık olduğunu gördük!(11.Sorunun cevabı : CVE-2019-14287) Siteye bu açığı nasıl sömürebileceğimle ilgili bilmek için gidiyorum.

Sitede bu açığın sömürülmesi için kullanılması gereken parametre işte şu şekilde belirtilmiş : 

 Aynen bu şekilde bu zafiyeti sömürüyorum ve evet artık root kullanıcısıyım :)

Ve en sonunda root klasörüne giderek root.txt yi okuyorum ve hem Ajan R'nin aslında kim olduğunu hem de root flagini bulmuş oluyorum! 

root flag = b53a02f55b57d4439e3341834d70c062

Agent R = DesKel

Değerli okuyucularım,bir CTF çözümünü daha geride bırakmış olduk.Umarım sizlere birşeyler katabilmişimdir.Sonraki yazılarımda ve writeuplarımda görüşmek dileğiyle...

Ben Talha 18 yaşındayım. Adli Bilişim Mühendisliği okuyan ve Siber Güvenlik Mühendisi/Uzmanı olmak isteyen bir öğrenciyim. Yeniliklere ve kendimi geliştirmeye açık birisiyim. Burada öğrendiklerimi ve bildiklerimi yazıya dökerek hem sizleri bilgilendireceğim hem de bilgilerimi tazeleyip bilgilerime bilgi katacağım.

Tepkiniz nedir?

like

dislike

funny