İPUCU

Capture The Flag Vulnerable VM Walkthrough & Capture The Flag Writeup Yazabileceğiniz Bölüm

Seçenekler

Pentest Challange: Necromancer (Part 1)

27-07-2017 01:38
#1
Belvando - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
06/2017
Nereden:
Mantı V2
Mesajlar:
239
Teşekkür (Etti):
55
Teşekkür (Aldı):
199
Konular:
34
Ticaret:
(0) %
Arkadaşlar merhaba

Bugün sizlere uzun zaman boyunca çözmeye uğraştığım bir CTF challange olan Necromanceri çözeceğiz.

Nekadar diğer CTF challangelarda söylemiş olduğum "Bu CTF şuana dek beni en çok zorlayan CTF diyebilirim" sözünü yeniden söylüyorum.

Şurdan rahatlıkla indirebilirsiniz
https://download.vulnhub.com/necroma...ecromancer.ova
Eğer indiremediyseniz şuradan rahatlıkla sayfasına gidebilirsiniz
https://www.vulnhub.com/entry/the-necromancer-1,154/

CTFe başlamadan önce şunu belirtmek isterimki bu CTF diğerlerine oranla farklı bir teknik kullandığından sizin bilgisayarınıza zarar verebilir.
İlerledikçe dediğimi anlayacaksınız.


Başlayalım,

Bağlı olduğumuz ağın geçitini öğrenmek için komutumuzu giriyoruz.
route



Ağ geçitini öğrendikten sonraki işlem ağda tarama yapmak olacaktır.
zenmap



Bu sefer farklılık olması için zenmapten başlangıç yaptım.
Ve 192.168.56.101 ip adresinini bizim sanal makinamız olduğunu anlıyorum.
Zenmapten devam ederek port taraması yapıyorum.




Ama hiçbir port açık değil.
Daha sonra tüm portları taraması için açık bırakıyorum ve uzun bir süreden sonrada hala herhangi bir portun açık olmadığını öğreniyorum.

Şuan itibari ile hiçbir sızma yöntemi bulamadık.
Birkaçkez sanal makinanın ağ yapısını değiştirerek açmaya çalıştım ve aynı sonuçlar elime geçiyor.
Uzun uzun düşüncelerden sonra bir ağı kontrol etmek aklıma geldi.
Wiresharkı açtığımda sanal makinadan bana bir istek gönderildiğini fark ettim.



Burada bizim 4444 nolu porta paket gönderdiğini ve bizde açık olmadığından ulaştıramadığından bende 4444 portunu dinlemeye aldım.
nc -lp 4444



Ve bize base64 ile şifrelenmiş bir metin yolluyor.
Bunu decode etmek için konsolu açıp komutumu giriyorum.
base64 -d (şifremiz)



Güzel bir hikayeye benziyor ve ben bunu düzgünce okumayacağım.
Ama önemli noktaları bakarakta belirleyebiliriz.
Bize md5 ile şifrelenmiş bir flag vermiş, ve en altta u666 yazmakta en başta nekadar anlamsız bir ibre olsada daha sonra gerçekten hayat kurtaran bir kısmımış.
İlk olarak md5 hashi çeviriyorum ve "opensesame" yanıtını alıyorum.
Daha sonra belki bir port açılabilmiş olabilceğini düşünerek 666 portunu tarattım.
nmap -sT -p 666 192.168.56.101

Ve bir sonuç yok.
Ya "u" hanesi UDPyi simgeliyorsa?
nmap -sU -p 666 192.168.56.101



Ve "u" ibresi UDPyi anlattığını anladık.
Ozaman başlayalım.

nc -u 192.168.56.101 666



Enbaşta hiçbir şey olmasada bize vermiş olduğu flagı girmemizi istiyordu ve bunu yerine getirdim.



Yine güzel bir hikaye ile bizi baş başa bırakıyor.
Tabiki ben Belvando bunu düzgünce okurmuyum tabiki hayır.
Bize bir flag vermiş ama bizim gelecek zamanlarda işimize yaramıyacak.
(Zaten kıramamıştım )
Ama 80 sayısından bahsediyordu tabiki her aklın ilk düşündüğü şey http.
Hemen bağlanıyoruz.



Yine herzamanki gibi konuşuyor, ve biz yine dinlemiyoruz.
Yapılabilcek bişey olmadığından hemen dirb aracımı kullanıyorum.



Çıkan sonuçlardan işe yarar birşey çıkmadı.
Yeniden index sayfasına gidiyoruz ve yapıcak birşey arıyorum.
Source kodlarında bir şey yok.
Cookielerde birşey yok.
Vb. şeylerde birşey yok.
Sonra doğru ilerleyip resimi indirdim.
Resime binwalk ile baktığımda içinde bir zip olduğunu gördüm.
binwalk pileoffeathers.jpg



Binwalkın extract özelliğiyle içindeki zip doyasını çıkartıyorum.
Bu çoğu CTF lerde kullanılan bir yöntem olduğundan işinize yarayacak bir bilgi daha.
binwalk -e pileoffeathers.jpg



Resimi açtıktan sonra bir dosya içerisinde bir txt dosyası beni bekliyordu.
Txt dosyasını açınca yine bir base64 ile şifrelenmiş bir yazı ile karşılaştık.



Çözmek için yine aynı işlemi yapacağız.
base64 -d (şifre)



Karşıma bir uzantı çıktı ve bunu tarayıcımıza yapıştırınca bizi hemen bir sayfaya atmakta.



Evet yine benzer bir sayfa ile karşımızda.
Tabiki ilk resimi indirdim, ama içi boş çıktı.
Daha sonra source kodlarına baktım ve yine birşey çıkmadı.
Cookiede boş.
Uzun bir süre boyunca uğraştım ve hiçbir sonuca varamadım.
Malesef bunu yapmak istemesemde çözmek için 1 gün uğraştım (abartmıyorum) sonra zoraki bir şekilde bunu çözen yabancı bir kaynaktan çözüme baktım.
Ve bir CTFde yapılmaması gereken bir şey yaptıklarından ben bunu çözememişim.
Bizden güzel bir wordlist ile tarama yapmamız istenmekteymiş.
Bunun için özür diliyorum ancak yapmam gerekiyormuş.


Yapılan işlemde /talisman adında bir uzantıyı bize sunuyordu.
Uzantıya girdiğimde bir dosya indirildi.
İndirilen dosya bir ELF dosyasıydı.
En başta çalıştırdım ve bir hata olduğu burada açık bir şekilde görünüyor.



ELF dosyası yazılırken bilerek hata yapılmış olacakki bizden tersine mühendislik yapmamız istenmekte.
Gelin görünki bu beceride bende bulunmuyor en yakın zamanda öğrenmeye çalışacağım.
Bunun için Par4d0x1D hocamdan yardım istedim ve beni sağolsun kırmayıp yardım etti.
Kendisine çok teşekkür ediyorum.

Ve buda Par4d0x1D hocamızın bana yolladığı cevap.

Alıntı:
Par4d0x1D´isimli üyeden Alıntı Mesajı göster
Öncelikle uygulamanın içerisinde yer alan sembollere göz atalım,

Kod:
[0x080485b5]> dc
[0x080485b5]> fs symbols
[0x080485b5]> f~chantToBreakSpell
0x08048550 1 chantToBreakSpell
0x08048a37 2795 sym.chantToBreakSpell
"chantToBreakSpell", bu methoda erişim direkt olarak "sym.wearTalisman" veyahut "sym.main" üzerinden yapılmamakta, myPrintf adında bir fonksiyon üzerinden erişiliyor - her neyse ileriki safhalarda ihtiyacımız olacak.



Farkındaysan uygulama bir "user input" almakta, bu da aklımıza hemen herhangi bir hafıza taşması olasılığını getirmeli. GDB üzerinden uygulamanın PID'ine bağlanıp, yüksek miktarlarda karakter girdiğimde de bunu gözlemlemiş oldum. Tamı tamına 32 karakter sonrasında, gelen verilerin spotladığı bellek konumuna sıçramakta. Hatta şu tarz bir şekilde teyit de edebilirsin,

Kod:
gdb-peda$ run <<< $(for i in {1..32}; do echo -n A; done; echo -n BBBB)
[..]
Legend: code, data, rodata, value
Stopped reason: SIGSEGV
0x42424242 in ?? ()
0x42424242 -> BBBB'ye denk gelmekte zaten. Devam edelim, overflow meydana geldi, peki nereye sıçrayacağız? Tabii ki de, hiç çalıştırılmamış lakin sembollerimizden birisi olan "sym.chantToBreakSpell"a, yukarıda da görüldüğü üzere konumu "0x08048a37" olarak belirlenmiş.

0x08048a37'in Little Endian karşılığı, baytların ters çevrilmesi - yani 0x378a0408. Bu noktaya sıçramak için, az önce BBBB olarak belirlediğimiz noktaya bu veriyi giriyoruz.

Kod:
gdb-peda$ run <<< $(for i in {1..32}; do echo -n A; done; printf "\x37\x8a\x04\x08")
Ardından,

Kod:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
You fall to your knees.. weak and weary.
Looking up you can see the spell is still protecting the cave entrance.
The talisman is now almost too hot to touch!
Turning it over you see words now etched into the surface:
flag4{ea50536158db50247e110a6c89fcf3d3}
Chant these words at u31337
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Görüldüğü üzere, bayrağımız "flag4{ea50536158db50247e110a6c89fcf3d3}".

Ve yapılan işlemden bize bir port ve flag vermiş.
Bende flagı çevirdim ve "blackmagic" flagini elde ettim.

Hemen bende bağlanmak için netcatimi hazırlıyorum.
nc -u 192.168.56.101 31337



Girdileri verdiğimde bana yine benzer bir sonuçla geri döndü.
Uzantıyı yine girdiğimde yine benzer bir sayfaya yolladı.



Bu sayfada anlayabildiğim "İşte karşında necromancer abimiz".
Aynı şekilde necromancer derken bir uzantıya gönderen bir linkle belirtilmiş.
Sayfayı aşşağıya indirdiğimde bir yazı ile daha karşılaştım.



Sonra gidip belirtiği linke tıkladığımda bir "necromancer" adında dosya indirdi.
Ve gariptirki dosyayı indirdikten 15 saniye sonra leptobumun fanı bir güzel üflemeye başladı.
Masaüstündeki işlemci yükünü izleyen eklentime baktığımda gerçekten zorlandığını gördüm.



Aynı şekilde ilerlerken muhtemelen bir hata ile karşılaşıp sanal makinamla iletişim kuramıyordum.
Tshrak ile sanal ağı dinlemeye aldım ve yeniden bağlanmaya çalışırken herhangi bir cevap veremediğini gördüm.



Tabiki bunun çözümüde sistemi yeniden kurmaktı.
Ancak bağlantının koması normalde olmaması gerektiğini ve işlemcimin çıldırmasının her indirme linkine tıklamamda gerçekleştiğini anladım.
(Yaklaşık 6 kez kurup sildikten sonra )
Muhtemelen CTFi hazırlayan kişinin oynayan kişiyi yeniden ayıltmak için yapmış olduğu bir hareket olacakki, bunu yerine getirebildi.




Konumuz devam edecektir.
Yeterince uzun bir konu olduğundan 2 part halinde yapmaya karar kıldım.
Diğer konuya hemen şuradan erişebilirsiniz.
http://www.turkhackteam.org/siber-gu...ml#post7175170
Kullanıcı İmzası
Bastığın yerleri 'toprak' diyerek geçme, tanı!
Düşün altındaki binlerce kefensiz yatanı.
Sen şehit oğlusun, incitme, yazıktır atanı;
Verme, dünyaları alsan da bu cennet vatanı.
Telegram: @belvando
Konu Belvando tarafından (27-07-2017 02:35 Saat 02:35 ) değiştirilmiştir.
LulzSecurity, Pentester Teşekkür etti.

27-07-2017 13:14
#2
cewl - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
06/2017
Nereden:
Merdekan
Yaş:
24
Mesajlar:
2.655
Teşekkür (Etti):
0
Teşekkür (Aldı):
725
Konular:
165
Ticaret:
(0) %
sabahi tesekkur etmek iyidir (: tesekkur abi

yararli
Kullanıcı İmzası

Hansi quruhin bele Movlasi var?! Sielerin Hz Abbasi var!
27-07-2017 13:50
#3
MatWeapon - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2017
Mesajlar:
85
Teşekkür (Etti):
5
Teşekkür (Aldı):
5
Konular:
3
Ticaret:
(0) %
Eline sağlık ; )
Güncel
Kullanıcı İmzası
ASUS ROG G752VS-GB166T
->6.TH GEN i7-6820HK
->64GB DDR4 2133MHZ SDRAM
->1TB 7.2K SSHD + 512GB 850EVO
->8GB GTX 1070 // 4K IPS MAT
27-07-2017 13:50
#4
Gbmdpof - ait Kullanıcı Resmi (Avatar)
Kıdemli Yazılımcı
Üyelik tarihi:
09/2016
Mesajlar:
1.884
Teşekkür (Etti):
197
Teşekkür (Aldı):
651
Konular:
155
Ticaret:
(0) %
Eline sağlık.
27-07-2017 20:25
#5
Par4d0x1D - ait Kullanıcı Resmi (Avatar)
Researcher
Üyelik tarihi:
02/2012
Yaş:
17
Mesajlar:
250
Teşekkür (Etti):
42
Teşekkür (Aldı):
542
Konular:
27
Ticaret:
(0) %
Ellerine sağlık, gayet anlaşılır ve kesin bir Write-Up olmuş. Forumda, onca çöp konuyu eleştiren, zaman zaman yakınan insanların bu tarz konularda tek "destek" mesajı olmaması ise durumumuzu gayet sade bir biçimde özetliyor. Yazılarını keyifle okuyorum, senin de bir o kadar keyifle yazdığın apaçık ortada. Devamı gelsin lütfen (:
Kullanıcı İmzası
27-07-2017 20:27
#6
ThePhantom - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
02/2016
Nereden:
Sence ?
Mesajlar:
262
Teşekkür (Etti):
39
Teşekkür (Aldı):
18
Konular:
31
Ticaret:
(0) %
Ne işe yarıyor acaba Yinede ellerinize sağlık
Kullanıcı İmzası
Tanrı Olsanız Karşınızda Eğilmem

filmin Oyuncuları ☪
27-07-2017 22:36
#7
Belvando - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
06/2017
Nereden:
Mantı V2
Mesajlar:
239
Teşekkür (Etti):
55
Teşekkür (Aldı):
199
Konular:
34
Ticaret:
(0) %
Alıntı:
Par4d0x1D´isimli üyeden Alıntı Mesajı göster
Ellerine sağlık, gayet anlaşılır ve kesin bir Write-Up olmuş. Forumda, onca çöp konuyu eleştiren, zaman zaman yakınan insanların bu tarz konularda tek "destek" mesajı olmaması ise durumumuzu gayet sade bir biçimde özetliyor. Yazılarını keyifle okuyorum, senin de bir o kadar keyifle yazdığın apaçık ortada. Devamı gelsin lütfen (:
Güzel yorumunuz ve desteğiniz için teşekkür ederim.
Kullanıcı İmzası
Bastığın yerleri 'toprak' diyerek geçme, tanı!
Düşün altındaki binlerce kefensiz yatanı.
Sen şehit oğlusun, incitme, yazıktır atanı;
Verme, dünyaları alsan da bu cennet vatanı.
Telegram: @belvando

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı