Merhabalar dostlarım. Bu gün sizlere izlemekten çok keyif aldığım bir dizi olan Brooklyn 99'ın CTF'ini çözücem. Herkese iyi okumalar:hosnut
Makine Linki
Zorluk Seviyesi: Kolay
1. Recon (Bilgi Toplama)
Her zamanki gibi ilk adımımız Nmap ile taramak. Kodumuzu aşağıya bırakıyorum
Burada kullandığım parametreleri bir önceki CTF'te de göstermiştim. Öğrenmek isteyenler bir önceki CTF konuma bakabilirler.:hosnut
Gördüğünüz gibi 3 tane açık portumuz var. Bunlar;
21. Port => FTP portu
22. Port => SSH portu
80. Port => Http portu
Gördüğünüz gibi 21. portun altında verilen bilgilerde ftpye anon olarak girebileceğimizden bahsediliyor. Hemen bunu deneyip içinde ne olduğuna bakalım
İçinde note_to_jake(Jake'e) adından bir txt dosyası var. bu dosyayı "get" komutu ile kendi bilgisayarımıza indirebiliriz. Daha sonrada "cat" komutu ile notu okuyabiliriz.
Notun içinde Amy'den Jake'e bir not görüyoruz. Notun içinde Jake'in şifresinin zayıf olduğunu ve değiştirmesi gerektiğini ayrıca karakol 99'a biri Jake yüzünden sızarsa komiser Holt'un çok kızacağı yazıyor.
Şimdi bu nota bir köşede kalsın. Nmap taramasından çıkan diğer portlardan biride 80. porttu. Hemen internet tarayıcımızı açıp makinemizin ip adresini arama yerine yazıp enterlıyoruz. Ve karşımıza şöyle bir sayfa çıkıyor.
Buradan çok bilgi edemedik sadece bir resim var. Şimdi yapacağımız 2 şey var. Birincisi dizin arama aracımızı çalıştırmak, ikincisi ise sayfanın kaynak kodlarına bakmak.
İlk olarak dizin buşma aracımızı çalıştıralım(Ben bu sefer Dirb progrmaını kullandım ama gobuster veya dirbusterda işinizi görecektir).
Çalıştırdık çalıştırmasına ama herhangi bir sonuç elde edemedik. Şimdide sayfanın kaynak kodlarına bakalım belki orda bir şey buluruz. Bunun içinde açtığımız siteye gelip sitede herhangi bir alana sağ tıklayıp View Page Source(Türkçe kullananlar için şöyle yazacaktır "Sayfanın kaynağını görüntüle") yazan yere tıklıyoruz. Tıkladıktan sonra tarayıcımız bizi başka bir sekmede karşılayacak buraad ordaki gördüğümüz sayfanın html kodlarını görücez.
En altta yeşil renkte yazılmış bir ipucu yakalıyoruz. Bize burda şunu yazıyor; "Stenegrofi diye bir şey duydun mu ?". Stenegrofiyi bilmeyen arkadaşlar için aşağıya küçük bir not düştüm.:hosnut
NOT: Stenografi, bir resim veya ses dosyasının içine gizlemek istediğimiz bir başka dosyayı koyup saklama olayıdır. Bir kriptoloji konusudur.
Hemen aklımıza siteye ilk girdiğimizde karşımıza gelen resim geliyor ve bunun içinde bir dosya olduğundan şüpheleniyoruz. resmi bilgisayarımıza indirip içinde gerçekten de bir şey var mı kontrol edelim. Bunun için bir tane kullanacağımız bir araç var. Adı da "Steghide". Kurumunuda hemen kısa bir şekilde göstermek istiyorum. Terminalimizi açıyoruz ve aşağıya bırakacağım komut satırını yazıyoruz.
Aracımızı indirip kurduğumuza göre artık asıl işimize geçebiliriz. Terminalden resmi indirdiğimiz konuma gidiyoruz. İşlemleri o klasöyrde yapıcaz. Klasöre keldikten sonra steghide' ı nasıl kullanacağını bilmeyenler için terminale tekil bir şekilde steghide yazmak yeterli olucaktır. Steghide ile kullanılabilecek tüm parametrelere ve yaptıkları işlemlere oradan ulaşabilirisiz. Uğraşmak istemeyenler için ben bizim işimize yarıyacak komut satırını aşağıya bırakıyorum
Dosya ismi yazan yere indirdiğimiz dosyanın adını uzantısıyla birlikte yazıp enterlıyoruz. Fakat şöyle bir hata ile karşılaşıyoruz
Burdan da anlıyoruz ki siteden aldığımız ipucu işe yaramayan sadece şaşırtmak için konulmuş bir ipucuydu. Peki ftp den sadece bir notumuz var siteden hiçbir şey bulamadık. Biz bu sisteme nasıl giricez. Hatırlarsanız nmap taramamızda 3 tane port bulmuştuk ftp yi kullandık http portunuda kullandık geriye 22. port olan ssh portumuz kaldı. Ama bu portu kullanabilmek için bir kullanıcı adına ve bir şifreye ihtiyacımız var. Peki biz bu kullanıcı adıyla şifreyi nerden bulucaz. Notun içinde ne yazdığını hatırlıyor musunuz ? Jake'in şifresinin çok zayıf olduğu yazıyordu. O zaman demekki ssh da kullanacağımız kullanıcı adı belli. Jake! Peki ya şifresini nasıl bulucaz ? Bunuda hydra adındaki brute force aracımızla yapıcaz. Bir önceki yazımda wordpress admin paneline wpscan ile brute force yapmıştık bu sefer hydra aracımız ile yapabilicez.
NOT: Ayrıca hydra aracı ile aynı zamanda ftp ye login panellerine de brute force saldırısı gerçekleştirilebilir.
Lafı daha fazla uzatmadan hemen aracımızı nasıl kullanacağımızdan bahsedeyim.
Burada deyinmem gereken bazı noktalar var. Belki fark etmişsiniz kullanıcı adını yazarken "l" yi küçük yazdım ama şifre için wordlist verirken "P" yi büyük yazdım. Bunun sebebi de eğer bir den fazla seneryomuz varsa yani bir wordliste sahipsek kullanıcı adı da olsa şifre de olsa başındaki parametreyi büyük harfle yazıyor. Eğer elimizde tekil bir veri varsa başındaki parametreyi küçük yazıyoruz. Bir diğer hususta ssh://ip yazarak ssh portuna brute force yapacağımızı aracımıza söylüyoruz fakat (Şu ana kadar belki hiç denk gelmemiş olabilirsiniz) ssh portu bazen 22.porttsan farklı bir portta olabilir bu yüzden de portumuzu belirtmemiz gerek
Ve süper sonucumuzuda bulduk. Amy'ninde dediğimi gibi bakın Jake'in şifresi çok zayıfmış:mahcup
2. Sisteme Giriş (SSH Portu İle)
Hemen ssh portundan makinemize girelim. Onun için kullanacağımız komut satırını aşağıya bırakıyorum.
NOT: Burada ssh portu default portta olduğu için belirtmemize gerek yok ama eğer ssh portu farklı bir portta olsaydı -p parametresi ile o portuda belirtmek zorundaydık.
Bu komut satırını yazdıktan sonra size bir soru sorucak yes yazmanın yeterli. Daha sonra bizden jake kullanıcısının şifresini isticek. Dikkatli olun siz yzarken ne yazdığınız ekranda görünmeyecek. Şifreyi doğru girdiğinizden emin olduktan sonra ssh portundan jake kullanıcısıyla sisteme giriyoruz.
Evet şuan makinenin içindeyiz. İlk hedefimiz user.txt dosyasını bulup içndeini okumak. Normalde jake kullanıcısıyla girdiğimiz için user.txt in /home/jake/user.txt tarzında bir yolu olucaktı ama jake klasöründe user.txt diye bir dosya yok.
Daha sonra "cd .." komutu ile bir dizin geri çıktığımda 3 tane user olduğunu görüyorum.
İçlerinde ne olduğuna bakmak için hepsini tek tek kontrol ediyorum. Ve aradığım dosyanın holt klasöründe olduğunu görüyorum. "cat" komutu ile user.txt dosyasını okuyabiliriz
3. Privilege Escalation
Evet arkadaşlar bize verilen birinci görevi tamamlayıp user.txt dosyasının içini okuduk. Sırada 2. görev olan root.txt dosyasını okumak. Peki bunu nasıl yapacağız.
Bir önceki CTF'te kullandığımız bu komutu tekrar burda kullanabilir.
Bu sefer sadece bir tane sudo yetkisiyle çalıştırabileceğimiz bir program var. Yine gereçn CTF'te önerdiğim bir site vardı onutanlar için aşağıya ben yine linki bırakacağım. Buradan root olmamız için gerekli kodları alacağız
Siteye girdikten sonra makinemizdeki sudo yetkisiyle çalıştırabileceğimiz programımızın ismini arama yerine ayzıp ilgili sayfaya giidiyoruz.
Burdan en aşağıdaki sudo başlğı altındaki kodlar bizim işimizi görecektir.
Bu kodların önce üsttekini kopyalayıp içine grdiğimiz makinenin terminaline yapıştırıyoruz. Bizi şöyle bir şey karşılayacak;
Burada hiçbir şeyi değiştirmeden GTFOBins sitesinde gördüğümüz ikinci satırdaki kodu yani şunu;
Kopyalayıp yapıştırıyoruz ve enterlayıp devam ediyoruz. Bakın şimdi hangi kullanıcıyız.
Artık rootuz ve her şey çok kolay. Yapmamız gerekn tek bir şey kald oda root klasöründeki root.txt yi okumak
Evet arkadaşlar bu CTF'te bu şekildeydi. Ben çözerken aşırı keyif aldım umarım sizde okurken keyif alırsınız. Bakmak istiyenler için aşağıya bir önceki CTF wirte up ımı koyacağım o CTF de okuyabilirsiniz. Ve unutmadan hepinizin Miraç Kandili mübarek olsun. Kendinize iyi bakın bir sonraki yazımda görüşmek üzere
https://www.turkhackteam.org/capture-flag/1965955-thm-c0lddbox-ctf-writeup.html
Makine Linki
Zorluk Seviyesi: Kolay
1. Recon (Bilgi Toplama)
Her zamanki gibi ilk adımımız Nmap ile taramak. Kodumuzu aşağıya bırakıyorum
Kod:
Nmap -A -T4 -v İP
Burada kullandığım parametreleri bir önceki CTF'te de göstermiştim. Öğrenmek isteyenler bir önceki CTF konuma bakabilirler.:hosnut
Gördüğünüz gibi 3 tane açık portumuz var. Bunlar;
21. Port => FTP portu
22. Port => SSH portu
80. Port => Http portu
Gördüğünüz gibi 21. portun altında verilen bilgilerde ftpye anon olarak girebileceğimizden bahsediliyor. Hemen bunu deneyip içinde ne olduğuna bakalım
Kod:
Username: anonymous Şifre: anonymous
İçinde note_to_jake(Jake'e) adından bir txt dosyası var. bu dosyayı "get" komutu ile kendi bilgisayarımıza indirebiliriz. Daha sonrada "cat" komutu ile notu okuyabiliriz.
Notun içinde Amy'den Jake'e bir not görüyoruz. Notun içinde Jake'in şifresinin zayıf olduğunu ve değiştirmesi gerektiğini ayrıca karakol 99'a biri Jake yüzünden sızarsa komiser Holt'un çok kızacağı yazıyor.
Şimdi bu nota bir köşede kalsın. Nmap taramasından çıkan diğer portlardan biride 80. porttu. Hemen internet tarayıcımızı açıp makinemizin ip adresini arama yerine yazıp enterlıyoruz. Ve karşımıza şöyle bir sayfa çıkıyor.
Buradan çok bilgi edemedik sadece bir resim var. Şimdi yapacağımız 2 şey var. Birincisi dizin arama aracımızı çalıştırmak, ikincisi ise sayfanın kaynak kodlarına bakmak.
İlk olarak dizin buşma aracımızı çalıştıralım(Ben bu sefer Dirb progrmaını kullandım ama gobuster veya dirbusterda işinizi görecektir).
Kod:
dirb http://İP
Çalıştırdık çalıştırmasına ama herhangi bir sonuç elde edemedik. Şimdide sayfanın kaynak kodlarına bakalım belki orda bir şey buluruz. Bunun içinde açtığımız siteye gelip sitede herhangi bir alana sağ tıklayıp View Page Source(Türkçe kullananlar için şöyle yazacaktır "Sayfanın kaynağını görüntüle") yazan yere tıklıyoruz. Tıkladıktan sonra tarayıcımız bizi başka bir sekmede karşılayacak buraad ordaki gördüğümüz sayfanın html kodlarını görücez.
En altta yeşil renkte yazılmış bir ipucu yakalıyoruz. Bize burda şunu yazıyor; "Stenegrofi diye bir şey duydun mu ?". Stenegrofiyi bilmeyen arkadaşlar için aşağıya küçük bir not düştüm.:hosnut
NOT: Stenografi, bir resim veya ses dosyasının içine gizlemek istediğimiz bir başka dosyayı koyup saklama olayıdır. Bir kriptoloji konusudur.
Hemen aklımıza siteye ilk girdiğimizde karşımıza gelen resim geliyor ve bunun içinde bir dosya olduğundan şüpheleniyoruz. resmi bilgisayarımıza indirip içinde gerçekten de bir şey var mı kontrol edelim. Bunun için bir tane kullanacağımız bir araç var. Adı da "Steghide". Kurumunuda hemen kısa bir şekilde göstermek istiyorum. Terminalimizi açıyoruz ve aşağıya bırakacağım komut satırını yazıyoruz.
Kod:
Apt-get install steghide
Aracımızı indirip kurduğumuza göre artık asıl işimize geçebiliriz. Terminalden resmi indirdiğimiz konuma gidiyoruz. İşlemleri o klasöyrde yapıcaz. Klasöre keldikten sonra steghide' ı nasıl kullanacağını bilmeyenler için terminale tekil bir şekilde steghide yazmak yeterli olucaktır. Steghide ile kullanılabilecek tüm parametrelere ve yaptıkları işlemlere oradan ulaşabilirisiz. Uğraşmak istemeyenler için ben bizim işimize yarıyacak komut satırını aşağıya bırakıyorum
Kod:
steghide extract -sf dosya_ismi.jpg
Dosya ismi yazan yere indirdiğimiz dosyanın adını uzantısıyla birlikte yazıp enterlıyoruz. Fakat şöyle bir hata ile karşılaşıyoruz
Burdan da anlıyoruz ki siteden aldığımız ipucu işe yaramayan sadece şaşırtmak için konulmuş bir ipucuydu. Peki ftp den sadece bir notumuz var siteden hiçbir şey bulamadık. Biz bu sisteme nasıl giricez. Hatırlarsanız nmap taramamızda 3 tane port bulmuştuk ftp yi kullandık http portunuda kullandık geriye 22. port olan ssh portumuz kaldı. Ama bu portu kullanabilmek için bir kullanıcı adına ve bir şifreye ihtiyacımız var. Peki biz bu kullanıcı adıyla şifreyi nerden bulucaz. Notun içinde ne yazdığını hatırlıyor musunuz ? Jake'in şifresinin çok zayıf olduğu yazıyordu. O zaman demekki ssh da kullanacağımız kullanıcı adı belli. Jake! Peki ya şifresini nasıl bulucaz ? Bunuda hydra adındaki brute force aracımızla yapıcaz. Bir önceki yazımda wordpress admin paneline wpscan ile brute force yapmıştık bu sefer hydra aracımız ile yapabilicez.
NOT: Ayrıca hydra aracı ile aynı zamanda ftp ye login panellerine de brute force saldırısı gerçekleştirilebilir.
Lafı daha fazla uzatmadan hemen aracımızı nasıl kullanacağımızdan bahsedeyim.
Kod:
hydra -l jake -P wordlist/wordlist yolu ssh://İp:22
Burada deyinmem gereken bazı noktalar var. Belki fark etmişsiniz kullanıcı adını yazarken "l" yi küçük yazdım ama şifre için wordlist verirken "P" yi büyük yazdım. Bunun sebebi de eğer bir den fazla seneryomuz varsa yani bir wordliste sahipsek kullanıcı adı da olsa şifre de olsa başındaki parametreyi büyük harfle yazıyor. Eğer elimizde tekil bir veri varsa başındaki parametreyi küçük yazıyoruz. Bir diğer hususta ssh://ip yazarak ssh portuna brute force yapacağımızı aracımıza söylüyoruz fakat (Şu ana kadar belki hiç denk gelmemiş olabilirsiniz) ssh portu bazen 22.porttsan farklı bir portta olabilir bu yüzden de portumuzu belirtmemiz gerek
Ve süper sonucumuzuda bulduk. Amy'ninde dediğimi gibi bakın Jake'in şifresi çok zayıfmış:mahcup
2. Sisteme Giriş (SSH Portu İle)
Hemen ssh portundan makinemize girelim. Onun için kullanacağımız komut satırını aşağıya bırakıyorum.
Kod:
ssh jake@İP
NOT: Burada ssh portu default portta olduğu için belirtmemize gerek yok ama eğer ssh portu farklı bir portta olsaydı -p parametresi ile o portuda belirtmek zorundaydık.
Bu komut satırını yazdıktan sonra size bir soru sorucak yes yazmanın yeterli. Daha sonra bizden jake kullanıcısının şifresini isticek. Dikkatli olun siz yzarken ne yazdığınız ekranda görünmeyecek. Şifreyi doğru girdiğinizden emin olduktan sonra ssh portundan jake kullanıcısıyla sisteme giriyoruz.
Evet şuan makinenin içindeyiz. İlk hedefimiz user.txt dosyasını bulup içndeini okumak. Normalde jake kullanıcısıyla girdiğimiz için user.txt in /home/jake/user.txt tarzında bir yolu olucaktı ama jake klasöründe user.txt diye bir dosya yok.
Daha sonra "cd .." komutu ile bir dizin geri çıktığımda 3 tane user olduğunu görüyorum.
İçlerinde ne olduğuna bakmak için hepsini tek tek kontrol ediyorum. Ve aradığım dosyanın holt klasöründe olduğunu görüyorum. "cat" komutu ile user.txt dosyasını okuyabiliriz
3. Privilege Escalation
Evet arkadaşlar bize verilen birinci görevi tamamlayıp user.txt dosyasının içini okuduk. Sırada 2. görev olan root.txt dosyasını okumak. Peki bunu nasıl yapacağız.
Kod:
sudo -l
Bu sefer sadece bir tane sudo yetkisiyle çalıştırabileceğimiz bir program var. Yine gereçn CTF'te önerdiğim bir site vardı onutanlar için aşağıya ben yine linki bırakacağım. Buradan root olmamız için gerekli kodları alacağız
Kod:
[URL="https://gtfobins.github.io/"]Site[/URL]
Burdan en aşağıdaki sudo başlğı altındaki kodlar bizim işimizi görecektir.
Bu kodların önce üsttekini kopyalayıp içine grdiğimiz makinenin terminaline yapıştırıyoruz. Bizi şöyle bir şey karşılayacak;
Burada hiçbir şeyi değiştirmeden GTFOBins sitesinde gördüğümüz ikinci satırdaki kodu yani şunu;
Kod:
!/bin/bash
Artık rootuz ve her şey çok kolay. Yapmamız gerekn tek bir şey kald oda root klasöründeki root.txt yi okumak
Evet arkadaşlar bu CTF'te bu şekildeydi. Ben çözerken aşırı keyif aldım umarım sizde okurken keyif alırsınız. Bakmak istiyenler için aşağıya bir önceki CTF wirte up ımı koyacağım o CTF de okuyabilirsiniz. Ve unutmadan hepinizin Miraç Kandili mübarek olsun. Kendinize iyi bakın bir sonraki yazımda görüşmek üzere
https://www.turkhackteam.org/capture-flag/1965955-thm-c0lddbox-ctf-writeup.html