Herkese merhaba değerli Türk Hack Team ailesi. Bu gün sizlerle THM'deki başlangıç seviyesi, bruteforce ve hashi daha iyi anlayıp kavrayabileceğiniz bir makinayı çözücez.
Her zaman olduğu gibi bu yazımda da makinayı 3 aşamada çözeceğiz. Lafı daha fazla uzatmadan konuya geçelim. İyi okumalar:mahcup:
CTF Link
Seviye: Kolay/Başlangıç
1. Reconnaissance(Bilgi Toplama)
Her zaman olduğu gibi işe nmap aracımız ile başlıyoruz.
Gördüğünüz gibi 2 tane port çıktı. Bunlardan biri SSH diğeride HTTP portu. Şimdilik SSH'a dair herhangi bir bilgi elimizde olmadığı için HTTP portu üzerinden gidicez. HTTP portunu görür görmez hemen terminalde yan sekmeye geçip bir dizin bulma aracı çalıştırmak aklımıza gelmeli. Burada ben dirb aracını kullandım fakat sizler gobuster veya dirbuster gibi araçarıda kullanabilirsiniz.
Dirb çıktımızdan sitede bir "admin" dizini olduğunu gördük. Vakit kaybetmeden hemen belirtilen dizine gidelim ve bakalım bizi orda ne bekliyor.
Karşımızda bir kullanıcı giriş sayfası var. Makinemizde bize adından kopya veriyor zaten. İyi tamam hoş da biz neyle nasıl yapıcaz bu işlemi ? Bi bakalım bilgi toplamaya devam edelim daha neler toplayabileceğiz. Dirb çıktımızdan çok mühim bir şey çıkmamıştı. Şimdide bir bakalım admin dizinindeki sayfanın kaynak kodunda bize bir ipucu verilmiş mi ?
Yeşille yazılmış bir küçük not bulduk. Çok süper de ne diyor bu not. İngilizce anlayamayan arkadaşlar için çevirisini aşağıya bırakıyorum.:mahcup:
Ee tamam kullanıcı adımızıda öğrendik gerisi çok daha kolay kaba kuvvet saldırısıyla(Brute Force) Şifreyi öğrenebiliriz. Bunun için yine Hydra aracımızı kullanabiliriz.
İşlemlerimizin sonucunda login sayfasındaki adminin şifresini öğrenmiş olduk. Şimdi bakalım siteye login kısmıyla girelim bizi neler karşılayacak.
Gördüğünüz gibi web flag'i burada bulduk. Birde ek olarak bize RSA private key diyer bir link vermiş bakalım orda ne varmış.
Bize burda SSH portuna bağlanabilmemiz için şifrelenmiş bir anahtar vermiş. Bizim bu şifrelenmiş anahtarı kırmamız gerekiyor bunun içinde Kalide kurulu olarak gelen ssh2john aracını kullanacağız
Not: Eğer verdiğim konumda şayet böyle bir araç olmaz ise kaynak kodlarının olduğu github sayfasını bırakıyorum buraya
Konum:
Bu araç sayesinde elimizdeki şifreli anahtarı kırıp ssh portundan makinemize giricez. Hemen işimize koyulalım terminalimizi açıp herhangi bir not editörüyle yeni bir dosya oluşuturuyoruz içine siteden aldığımız şifrelenmiş anahtarı koyup adınada istediğiniz bir ismi koyun. Ben genelde böyle kullandığım için adını "id_rse" koydum. Burası tamamen size kalmış.
Daha sonrada şifrelenmiş anahtarımızı nerey kaydettiysek o konuma gidip ssh2john aracmıızı çalıştırıyoruz.
Not: Benim çok kullandığım bir araç olmadığı için ben CTFi çözerken normalde yüklü geldiğini bilmiyordum bu yüzden githubtan indirmiştim aracı. O yüzden burda verdiğim kodlarla resimdeki kodlar uyuşmayabilir.
Daha sonra elde ettiğimiz sonuc.txt dosyasını john aracı ile kırıcaz.
Evet dostlar. Şifremizi aldım şimdide ikinci bölüme geçmeye hazırız.
2. Sisteme Giriş(SSH Portu İle)
NOT: Bu arada burda ufak bir bölümün screenshotını almayı unutmuşum. Burada yukarıda verdiğim kodu girdiğinizde sizden bir şifre isteyecek oda john aracı ile kırdığımız şifre.
İlk olarak user flagını bulmaya çalışalım. Bulunduğumuz konumda ls komutunu çalıştırdığımızda user.txt dosyasıyla göz göze geliyoruz son olarak da cat komutu ile user.txt dosyasını okuyabiliriz.
User flagımızı okuduğumuza göre sırada root.txt dosyasını okumakta onun içinde önce bi yetkimizi yükseltelim
3.Yetki Yükseltme
İlk olarak bi bakalım root yetkisiyle kullanabileceğimiz bir aracımız vey abir komutumuz var mı ?
Gördüğünüz gibi root yetkisiyle cat komutunu kullanabilirmişiz. Bu çok güzel bir haber çünkü sadece root kullanıcısının okuyabildiği şifrelerin olduğu bi shadow dosyası var eğer o dosyanın içinden rootun şifresini alırsak yetkimizi yükseltebiliriz. Hemen işe koyulalım.
Gördüğünüz gibi root kullanıcısının şifresini haslenmiş bir şekilde elde ettik. Bakalım bu hash türü neymiş. Bunun içinde kali içinde yüklü gelen harika bir aça var. Hash-identifier adındaki aracımızı kullanarak elimizdeki hashin türünü öğrenebiliriz.
Bu kodu girdikten sonra hash yazan kısmın yanında bize ayrılmış bir kısım var. Oraya elimizdeki hashi yapıştırıp yolluyoruz. Bakalım hashimizin türü neymiş.
Gördüğünüz gibi hashimizin türü SHA-256'imiş. Şimdi hashimizi bir text dosyasının içine koyup kaydediyoruz. Ardından john aracımızı kullanarak hashimizi kıralım.
Daha sonra şu komut ile kırılmış olan hashin karşılığını görebiliyoruz.
Çok güzel artık root kullanıcısının parolasını öğrendi geriye sadece root olarak giriş yapıp root.txt yi okuyabilmek. Makinemize geri gelip şu komutu kullanıp root oluyoruz ardından root klasörüne gidip root.txt yi okuyoruz.
Not: Son olarak bir noktaya değinmek istiyorum. Bu ctfte root yetkisiyle kullanabileceğimiz komut cat olduğu için normal bir user olarakda "sudo cat /root/root.txt" şeklinde root.txt dosyasını okuyabilirdik. Fakat burada size fazladan bir şey olarak shadow dosyasındaki şifreleri nasıl kırabileceğinizi öğretmek oldu.
Evet dostlar bir CTF'in daha sonuna gelmiş bulunmaktayız. Umarım faydalı bir yazı olmuştur. Eğer istediğiniz bit CTF olursa aşağıda yorum olarak bırakmanız yeterlidir. İyi geceler. Esenlikle kalın.
Her zaman olduğu gibi bu yazımda da makinayı 3 aşamada çözeceğiz. Lafı daha fazla uzatmadan konuya geçelim. İyi okumalar:mahcup:
CTF Link
Seviye: Kolay/Başlangıç
1. Reconnaissance(Bilgi Toplama)
Her zaman olduğu gibi işe nmap aracımız ile başlıyoruz.
Kod:
nmap -A -T4 -v İp
Gördüğünüz gibi 2 tane port çıktı. Bunlardan biri SSH diğeride HTTP portu. Şimdilik SSH'a dair herhangi bir bilgi elimizde olmadığı için HTTP portu üzerinden gidicez. HTTP portunu görür görmez hemen terminalde yan sekmeye geçip bir dizin bulma aracı çalıştırmak aklımıza gelmeli. Burada ben dirb aracını kullandım fakat sizler gobuster veya dirbuster gibi araçarıda kullanabilirsiniz.
Dirb çıktımızdan sitede bir "admin" dizini olduğunu gördük. Vakit kaybetmeden hemen belirtilen dizine gidelim ve bakalım bizi orda ne bekliyor.
Karşımızda bir kullanıcı giriş sayfası var. Makinemizde bize adından kopya veriyor zaten. İyi tamam hoş da biz neyle nasıl yapıcaz bu işlemi ? Bi bakalım bilgi toplamaya devam edelim daha neler toplayabileceğiz. Dirb çıktımızdan çok mühim bir şey çıkmamıştı. Şimdide bir bakalım admin dizinindeki sayfanın kaynak kodunda bize bir ipucu verilmiş mi ?
Yeşille yazılmış bir küçük not bulduk. Çok süper de ne diyor bu not. İngilizce anlayamayan arkadaşlar için çevirisini aşağıya bırakıyorum.:mahcup:
Kod:
Hey John. Eğer hatırlamıyorsan, kullanıcı adı admin
Ee tamam kullanıcı adımızıda öğrendik gerisi çok daha kolay kaba kuvvet saldırısıyla(Brute Force) Şifreyi öğrenebiliriz. Bunun için yine Hydra aracımızı kullanabiliriz.
Kod:
hydra -l admin -P wordlist İP htttp-post-form '/admin/:user=^USER^&pass=^PASS^:F= Password İnvalid'
İşlemlerimizin sonucunda login sayfasındaki adminin şifresini öğrenmiş olduk. Şimdi bakalım siteye login kısmıyla girelim bizi neler karşılayacak.
Gördüğünüz gibi web flag'i burada bulduk. Birde ek olarak bize RSA private key diyer bir link vermiş bakalım orda ne varmış.
Bize burda SSH portuna bağlanabilmemiz için şifrelenmiş bir anahtar vermiş. Bizim bu şifrelenmiş anahtarı kırmamız gerekiyor bunun içinde Kalide kurulu olarak gelen ssh2john aracını kullanacağız
Not: Eğer verdiğim konumda şayet böyle bir araç olmaz ise kaynak kodlarının olduğu github sayfasını bırakıyorum buraya
Kod:
https://raw.githubusercontent.com/openwall/john/bleeding-jumbo/run/ssh2john.py
Konum:
Kod:
/usr/share/john/ssh2john.py
Bu araç sayesinde elimizdeki şifreli anahtarı kırıp ssh portundan makinemize giricez. Hemen işimize koyulalım terminalimizi açıp herhangi bir not editörüyle yeni bir dosya oluşuturuyoruz içine siteden aldığımız şifrelenmiş anahtarı koyup adınada istediğiniz bir ismi koyun. Ben genelde böyle kullandığım için adını "id_rse" koydum. Burası tamamen size kalmış.
Daha sonrada şifrelenmiş anahtarımızı nerey kaydettiysek o konuma gidip ssh2john aracmıızı çalıştırıyoruz.
Kod:
/usr/share/john/ssh2john.py id_rse > sonuc.txt
Not: Benim çok kullandığım bir araç olmadığı için ben CTFi çözerken normalde yüklü geldiğini bilmiyordum bu yüzden githubtan indirmiştim aracı. O yüzden burda verdiğim kodlarla resimdeki kodlar uyuşmayabilir.
Daha sonra elde ettiğimiz sonuc.txt dosyasını john aracı ile kırıcaz.
Kod:
john --wordlist=wordlist sonuc.txt
Evet dostlar. Şifremizi aldım şimdide ikinci bölüme geçmeye hazırız.
2. Sisteme Giriş(SSH Portu İle)
Kod:
ssh -i id_rse john@ip
NOT: Bu arada burda ufak bir bölümün screenshotını almayı unutmuşum. Burada yukarıda verdiğim kodu girdiğinizde sizden bir şifre isteyecek oda john aracı ile kırdığımız şifre.
İlk olarak user flagını bulmaya çalışalım. Bulunduğumuz konumda ls komutunu çalıştırdığımızda user.txt dosyasıyla göz göze geliyoruz son olarak da cat komutu ile user.txt dosyasını okuyabiliriz.
User flagımızı okuduğumuza göre sırada root.txt dosyasını okumakta onun içinde önce bi yetkimizi yükseltelim
3.Yetki Yükseltme
İlk olarak bi bakalım root yetkisiyle kullanabileceğimiz bir aracımız vey abir komutumuz var mı ?
Kod:
sudo -l
Gördüğünüz gibi root yetkisiyle cat komutunu kullanabilirmişiz. Bu çok güzel bir haber çünkü sadece root kullanıcısının okuyabildiği şifrelerin olduğu bi shadow dosyası var eğer o dosyanın içinden rootun şifresini alırsak yetkimizi yükseltebiliriz. Hemen işe koyulalım.
Kod:
sudo cat /etc/shadow
Gördüğünüz gibi root kullanıcısının şifresini haslenmiş bir şekilde elde ettik. Bakalım bu hash türü neymiş. Bunun içinde kali içinde yüklü gelen harika bir aça var. Hash-identifier adındaki aracımızı kullanarak elimizdeki hashin türünü öğrenebiliriz.
Kod:
hash-identifier
Bu kodu girdikten sonra hash yazan kısmın yanında bize ayrılmış bir kısım var. Oraya elimizdeki hashi yapıştırıp yolluyoruz. Bakalım hashimizin türü neymiş.
Gördüğünüz gibi hashimizin türü SHA-256'imiş. Şimdi hashimizi bir text dosyasının içine koyup kaydediyoruz. Ardından john aracımızı kullanarak hashimizi kıralım.
Kod:
john --wordlist=wordlist hash.txt
Daha sonra şu komut ile kırılmış olan hashin karşılığını görebiliyoruz.
Kod:
john --show hash.txt
Çok güzel artık root kullanıcısının parolasını öğrendi geriye sadece root olarak giriş yapıp root.txt yi okuyabilmek. Makinemize geri gelip şu komutu kullanıp root oluyoruz ardından root klasörüne gidip root.txt yi okuyoruz.
Kod:
su root
Not: Son olarak bir noktaya değinmek istiyorum. Bu ctfte root yetkisiyle kullanabileceğimiz komut cat olduğu için normal bir user olarakda "sudo cat /root/root.txt" şeklinde root.txt dosyasını okuyabilirdik. Fakat burada size fazladan bir şey olarak shadow dosyasındaki şifreleri nasıl kırabileceğinizi öğretmek oldu.
Evet dostlar bir CTF'in daha sonuna gelmiş bulunmaktayız. Umarım faydalı bir yazı olmuştur. Eğer istediğiniz bit CTF olursa aşağıda yorum olarak bırakmanız yeterlidir. İyi geceler. Esenlikle kalın.