Pentest Challange: Covfefe

Belvando

Üye
3 Haz 2017
249
15
Mantı V2
Arkadaşlar merhaba

Bugün sizlere bir p
entest challange olan Covfefe'nin çözümünü anlatacağım.


İndirmek için buraya tıklamanız yeterli.
https://download.vulnhub.com/covfefe/covfefe.ova
Eğer indirmeyeri çalışmıyorsa, ana sayfası.
https://www.vulnhub.com/entry/covfefe-1,199/

Şu resimide paylaşıp konumuza yavaştan giriş yapalım.

31tweet-sub1-facebookJumbo.jpg


İndirdiğimiz ova uzantılı dosyayı indirdikten sonra sanal makinamıza kuruyoruz.
Ve hemen sanal makinamın bağlı olduğu sanal ağda ping taraması yaparak aktif cihazları listeliyorum.
nmap -sP 192.168.2.1/24



Göründüğü üzere 2 adet cihaz buldu, ilki sanal ağın routerı diğeri ise saldırılarımızı gerçekleştireceğimiz challangeımız.
İp adresini bulduğumuza göre hızlıca bir port taraması yapıyoruz.
(-p- parametresi tüm portları taratırken, -T5 parametreside en hızlı biçimde işi halletmeye yarıyor)
nmap -sS -p- -T5 192.168.2.101
nmap -sV -p22,80,31337 -T5 192.168.2.101




Görüldüğü üzere 3 adet port açık durumda.
Yaptığım ikinci taramada çalışan servislerin versiyonlarını listelerken çalışan servisin türünüde garantiliyoruz.
Sonuç olarak 1 adet ssh 2 adette http portu çalışır durumda.

İlk iş olarak 80 portuna tarayıcı üzerinden giriyorum.



Görüldüğü üzere default sayfa karşımıza çıktı.

Herhangi birşey çıkmayacağını bilsemde bir dizin bruteforcesi yaptım.
dirb http://192.168.2.101/



Evet beklenildiği gibi bir cevap bize geri döndü.
Buradan sonra artık adımlarımız direk olarak diğer http portu olan 31337 ye doğru yol alıyor.
Siteye girdiğimizde karşımıza şu ekran çıkıyor.




Muhtemelen index sayfasını koymayı unutmuşlardır diyerekten devam ediyoruz.
Ve bir koşu yine bruteforceye sığınıyoruz.
dirb http://192.168.2.101:31337/



Sonuç pozitif çıktı.
Garip tarafı ise çıkan dosyalar linux sistemlerdeki kullanıcı belgeleri.
Şu anlık biz bunların hepsinden 200 aldığımızdan erişim sıkıntımız bulunmamakta.

(İçinizde kalmasın, belirteyim bashrc ve profile kısımlarında işimize yarar bir veri yok. Bu yüzden konu içerisinde yer vermedim.)
İlk olarak robots.txt dosyasına bakıyorum, bulduğumuz dizinleri ve ek olarak /taxes adında bir dizin vermiş bizlere.
Hiç durmadan urlye direk yapıştırıyorum.



Evet ilk flagimizi elde ettik.

Amerikayı yeniden mükemmel yapalım demiş ve bu söze şununla cevap veriyorum;
America is great because
Amerika is good
-Hillary Clinton-


Biraz siyaset yaptıktan sonra işimize devam edelim.
Dirb sonuçları arasında .ssh adında bir dizin daha vardı.
Buraya baktığımızda şu görüntüyü görüyoruz.



Bildiğim yarım yamalak bilgilerle bu dosya isimlerinin ssh bağlantısındaki kullanılan keylere ait olduğunu biliyorum.
Hemen bu dosyaları indiriyorum.
wget http://192.168.2.101/.ssh/*



Dosyalar indikten sonra id_rsa doysasına direk olarak notpad üzerinden açamadım.
Çünkü bizden bir şifre istemekteydi.

Diğer dosayalar ise birbirinin aynısı olup içerisinde bir hash ile kullanıcı adı bulunmaktaydı.



Ssh üzerinden bağlanacağımız kullanıcı adı belli oldu artık bağlanırken kullanacağımız şifreyi bulmaya çalışacağız.

Muhtemelen bu challangeda beni en zorlayan bölüm bura oldu.
Şifreyi bulmak için elimdeki tek kaynak açmak isteyince şifre isteyen id_rsa dosyasıydı.
Biraz kurcaladıktan sonra cat komutunu kullanarak içerisindeki hashi okuyabildim.
Ve muhtemelen dosyayı açarken şifre istemesinin nedenide kendi içerisindeki şifreleme kısmıydı.
Hashin bulunduğu kısma baktığım zaman bunun bir private rsa key olduğu belirtilmekteydi.
Ve benden bu hashin kırılması isteniyor.
İntenetteki yapmış olduğum uzun bir araştırma sonucunda şöyle bir (bana göre) hazine değerinde bir kaynak buldum.
john-dev - Re: "SSH private keys cracker" patch for JtR [first cut for GSoC]
Sayfadaki işlmeleri yapabilmek için hızlıca kali makinamı açtım.
Ve işlemleri uyguladım.



Sonuç olarakta starwars filmi çıktı karşıma.
Ozaman elimizdeki verilerle ssh bağlantısını yapabilceğimizi düşünüyorum.



İlk olarak simon ismine bağlanmayı deniyorum ve publickey hatasını bize veriyor.
ssh --help yaparak private keyi eklemeyi öğreniyorum.

Ve tekrar denediğimde bu seferde "diğer kullanıcılarda bu keye erişim sağlayabilir dikkatli ol yada hiç" diyerek bizi kabul etmiyor.
Çözümüde keyin erişimlerini değiştirerek buluyorum.

(Zamanım olursa bu izin olaylarınıda değinmeyi düşünüyorum)
chmod 700 id_rsa
Tekrar bağlanmayı denediğimde bu sefer düzgün bir şekilde bizden şifreyi istiyor ve yazıp geçiyoruz.

Kullanıcıya bağlandığım gibi terminal loguna bakıyorum.



read_message adında bir komut girilmiş.
Komutu girdiğimizde bize ismimizi sorup inputa göre bir çıktı vermekte.
(Siz siz olun istenilen veriyi bu kadar saçma biçimde cevapla vermeyin.)
Doğru veriyi girince doğuştan root olan biri bize mesajını bıraktığını görüyoruz.
Dediğine göre kendi evinde bu sistemin kaynak kodları varmış.




Normal kullanıcı ile root dizinine girebildik.
Karşımıza çıkan iki adet dosya var, biri flag biride bahsedilen kaynak kod.
Root olmadan son flagi alamıyoruz.


Bahsedilen kaynak koda baktığımız zaman ise.



C dili ile yazılmış ve içerisinde bir adet flag bulunan bir script ile karşılaşmaktayız.
Biraz kodları okuduktan sonra garip bir sırıtma ile ekranın ss ini aldım.
Size kısaca anlatayım;

Sorusunu sorduktan sonra bir input beklemekte ve bu input max 20 karakter(byte) olmak zorunda.
Ve başında Simon kelimesi geçmesi if koşulundan geçmemizi sağlıyor.
İşte tam burada çok hoş bir yöntem olan BOf saldırısını yapıyorum.

=REKLAMLAR=
Eğer saldırı hakkında pekbir bilginiz bulunmuyorsa şu konuya gidebilirsiniz.

http://www.turkhackteam.org/exploit...verflow-exploit-yazma-ret2libc-pentester.html
=REKLAMLAR=

Yapılacak işlem basit.
Bir input vereceğiz ve ilk kısmı "Simon" olup 20 karekteri geçmesi gerekmekte.
Bunu yaparak scriptte bir bellek aşması olup istenilen veri kod üzerinde çalıştırabiliriz.

İlk olarak baştaki "Simon" yazısına başka veriler ekleyerek deniyorum.



Ve başarılı olduğunu görünce hızlıca bellek taştıktan sonra bir terminal açmasını sağlamak için
20 karakteri tamamladıktan sonra terminalin alt yapısı olan sh komutuna yönlendiriyorum.
Ve başarılı bir biçimde root oluyorum.
Son flagide açıp challangeı bitiriyorum.

Okuduğunuz için teşekkür ederim.
Konumu beğendiyseniz teşekkür etmeyi unutmayın.
İyi forumlar dilerim.
 
Son düzenleme:

Pentester

Özel Üye
8 Eyl 2016
1,646
1,001
Bir CTF çözümü bu kadar iyi anlatılamazdı herhalde, ellerine sağlık kankam. Arkadaşımız CTF makinelerini çözerken çok çaba sarf ediyor, yani internetten cevapları bulup burada derlemiyor, bir teşekkürü hak ediyorsun.
 

Belvando

Üye
3 Haz 2017
249
15
Mantı V2
Bir CTF çözümü bu kadar iyi anlatılamazdı herhalde, ellerine sağlık kankam. Arkadaşımız CTF makinelerini çözerken çok çaba sarf ediyor, yani internetten cevapları bulup burada derlemiyor, bir teşekkürü hak ediyorsun.

Buda farklı bir çeşit reklam tekniği aslen :D
Asıl ben teşekkür ederim.
Zaten çoğu takıldığım zaman size geliyorum fark etmişsindir :)
 

CyberNeeG

Uzman üye
4 Ocak 2016
1,155
1
777
Uzun zamandır istemsizce tebessüm etmiyordum, ilk önce bunun için teşekkür ederim. Gayet güzel bir konu olmuş eline sağlık.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.