Kategoriler
Siber Güvenlik

Bandit WriteUP – Part:1

Bandit WriteUP Part 2’yi de okumak isterseniz: https://caglar-celik.com/siber-guvenlik/bandit-writeup-part2/

Makine adresi: http://overthewire.org/wargames/bandit/

Terminal kullanmaya yönelik olan, bu makinede 34 aşama bulunuyor. Size terminal komutlarını öğretmek ve sinir bozucu hatalarda ne yapacağınızı öğretmek için oluşturulmuş. Biz çözerken oldukça eğlendik. Basit bir SSH bağlantısı ile başlıyoruz. Her bulduğumuz MD5 hashi, diğer SSH bağlantısının parolası oluyor. Takıldığınız yerlerde web sitesinden ip uçlarını okuyabilirsiniz, kullanabileceğiniz komutlara dair ipuçlarına erişebilirsiniz. “bandit0” ile ilk ssh bağlantımızı yaparak durumu kavrayalım.

bandit0

Amaç oyuna giriş yapmak. bandit.labs.overthewire.org adresine bandit0 kullanıcı adı ve bandit0 parolası ile giriş yapacağız. SSH portu 2220.

Çözüm için kullanabileceğiniz komutlar:

ssh

Yardımcı Kaynaklar

Çözüm:

ssh [email protected] -p 2220 komutundan sonra parola için bandit0 yazıyoruz ve makineye bağlanıyoruz. Sonrasında readme içerisindeki MD5 hashi bize bandit1 için giriş anahtarımızı veriyor.

Flag: [vurgu color=”#dd3333″]boJ9jbbUNNfktd78OOpsqOltutMc3MY1[/vurgu]

bandit1

Bir sonraki seviyeye geçmek için kullanacağınız anahtar – isimli dosyada bulunuyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Yardımcı Kaynaklar

Çözüm:

Dosya ismi – (tire) olan bir dosya var. MD5 hashi de içinde. E şahane cat – der hemen dosya içine bakarım. Ama işte gelin görün ki bilgisayarlar o kadar da akıllı makineler değil. Siz tire işaretini kullandığınızda cat komutunun devamına bir parametre girmeniz bekleniyor. E madem öyle, ben de önceki dizine giderim oradan dosyayı okurum dedim. Başarılı da oldu.

Flag: [vurgu color=”#dd3333″]CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9 [/vurgu]

bandit2

Bir sonraki seviyeye geçmek için kullanacağınız anahtar “spaces in this filename” isimli dosyada bulunuyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Yardımcı Kaynaklar

Çözüm:

Bu seferki dosya isminde ise aralarda boşluk bulunuyor. Yani yine cat komutu ile pata küte okuyamıyoruz dosyayı. Onun yerine cat komutundan sonra TAB tuşuna basarak tamamlayabilirsiniz. Diğer yöntem ise her kelimeden sonra aralara ters slash(\) koymak.

Şu şekilde: cat spaces\ in\ this\ filename

 

Flag: [vurgu color=”#dd3333″]UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK[/vurgu]

bandit3

Bir sonraki seviyeye geçmek için kullanacağınız anahtar inhere isimli dizinin içinde bulunuyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Çözüm:

inhere dizininin içinde ls komutu yaptığımızda herhangi bir şey görünmüyor. Ancak ls -la komutu ile dizindeki gizli dosyalara da erişmek mümkün.

Flag: [vurgu color=”#dd3333″]pIwrPrtPN36QITSp3EQaw936yaFoFgAB[/vurgu]

bandit4

Bir sonraki seviyeye geçmek için kullanacağınız anahtar, okunabilir olan tek dosyada yer alıyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Çözüm:

Yine gizli dosya… ls -la komutu ile dosyalara göz atıyorum. -file00 ile başlayan bir liste karşılıyor. Önceki dizine geçip file inhere/-file0* komutunu veriyorum. Bu sayede inhere dizini içinde file0 ismi ile başlayan tüm dosyaların dosya tipini görebiliyorum. E bize de okunabilir bir dosya var demişti soruda. O da görüldüğü üzere -file07. Flag onun içinde. İtiraf edeyim ki biz makineyi çözerken tüm dosyaların içini tek tek okuduk. Sonradan ya burada yüzlerce dosya olsaydı sorusu aklıma geldi ve alternatif olarak bu çözümü buldum.

Flag: [vurgu color=”#dd3333″]koReBOKuIDDepwhWk7jZC0RTdopnAYKh[/vurgu]

bandit5

Bir sonraki seviyeye geçmek için kullanacağınız anahtar inhere dizini içerisinde yer alıyor. Dosya execute edilemez, 1033 byte ve insanlar tarafından okunabilir.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Çözüm:

Madem dosya boyutu 1033 byte, ben de dosya boyutuna göre arama yapabilirim. find -size 1033c komutu ile anahtara ulaşıyorum.

Flag: [vurgu color=”#dd3333″]DXjZPULLxYr17uwoI01bNLQbtFemEgo7[/vurgu]

bandit6

Bir sonraki seviyeye geçmek için kullanacağınız anahtar sunucuda bir yerde saklanıyor. Kullanıcı bandit7, grup bandit6 olan bir dosya ve boyutu 33 byte.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find, grep

Çözüm:

Madem sunucuda her yerde olabilir diyor, ben de kök dizine gider ve işleme orada devam ederim (cd .. komutu). Daha sonra find komutu ile user, grup ve boyuta göre arama yapabilirim.

find -size 33c -user bandit7 -group bandit6

Oldukça karışık bir çıktı geliyor. Ancak erişim iznimiz olan tek bir dosya var. İçini okuduğumda yeni anahtarımı almış oluyorum.

./var/lib/dpkg/info/bandit7.password

Flag: [vurgu color=”#dd3333″]HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs[/vurgu]

 

bandit7

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt dosyasında millionth kelimesinin yanında yer alır.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

Gayet basit. Madem millionth yanında yer alıyor ben de millionthnin bulunduğu satırı getiririm.

grep -r millionth

Flag: [vurgu color=”#dd3333″]cvX2JJa4CFALtqS87jk27qwqGhBM9plV[/vurgu]

 

bandit8

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt dosyasında saklanır ve kendini sadece bir defa tekrar eder.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Yardımcı Kaynaklar

Çözüm:

Dosyayı okuyup tek tek bakacak olursanız durum facia. Elbette bunun da pratik bir yolu var.

cat data.txt | sort -n | uniq -c

Bu komut ile data.txt dosyasının içindekileri sort komutu ile sıralıyoruz, uniq komutu ile sayıyor ve yanına kaç tane olduğunu yazdırıyoruz. Zaten anahtar olmayan tüm veriler 10 kez tekrarlanmışken esas elemanımız 1 defa tekrarlanmış şekilde karşımıza çıkıyor.

Flag: [vurgu color=”#dd3333″]UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR[/vurgu]

bandit9

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt içerisinde okunabilir formatta yer alıyor. “=” işaretinden sonrasına bakmanız yeterli.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

Eşittir işaretinden sonrasını görmek için bir arama atmam yeterli oluyor. Ancak bu defa cat komutu kullanamıyorum. Çünkü binary formatında bir dosya ile karşı karşıyayım. Ben de strings komutu ile binary formatındaki dosyaları okuyabiliyorum.

strings data.txt | grep “=”
Flag: [vurgu color=”#dd3333″]truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk[/vurgu]

 

bandit10

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt içerisinde base64 formatında.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

E adam daha ne desin? Base64 demiş, Şu dosyanın içinde demiş.

Flag: [vurgu color=”#dd3333″]IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR[/vurgu]

 

bandit11

Bir sonraki seviyeye geçmek için kullanacağınız anahtar, tüm küçük harf (az) ve büyük harf (AZ) harflerinin 13 konumlu döndürüldüğü data.txt dosyasında saklanır.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

Hevesimiz kırıldı. Sezar sorulur mu böyle tatlı tatlı terminalle oynarken? Herhangi bir sezar decode aracına gidin ve 13 harf kaydırın. Cevap ortada.

Flag: [vurgu color=”#dd3333″]5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu[/vurgu]

 

bandit12

Bir sonraki seviyeye ait anahtar, art arda sıkıştırılmış bir dosyanın hexdump’ı olan data.txt dosyasında saklanır. Bu seviye için, / tmp altında mkdir kullanarak çalışabileceğiniz bir dizin oluşturmak faydalı olabilir. Örneğin: mkdir / tmp / myname123. Sonra cp ile dosyayı kopyalayın ve mv kullanarak yeniden adlandırın.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd, mkdir, cp, mv, file

Çözüm:

Bizi sinir eden sorulardan. O kadar çok isim değiştirmemiz gerekti ki…

Öncelikle data.txt dosyasını tmp dizininde oluşturduğum zindik dizinine taşıdım. Daha sonrasında bu hexadecimal dosyayı tersine çevirmek için “xxd” isimli aracı kullandım.(Ben başka bir şekilde çevirdim ancak daha sonra araştırdığımda xxd’nin daha kolay olduğunu gördüm.) Daha sonra oluşan dosyanın türüne baktım. Ondan sonrası tam arap saçı. Dosya türüne göre dosya adını değiştirip sıkıştırılmış dosyadan çıkartıyoruz. Sonra tekrar dosya türüne bakıp başa sarıyoruz. Ta ki ASCII dosyasına erişene kadar.

Flag: [vurgu color=”#dd3333″]8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL[/vurgu]

bandit13

Bir sonraki seviyeye ait anahtar,  / etc / bandit_pass / bandit14 içinde saklanır ve sadece kullanıcı bandit14 tarafından okunabilir. Bu seviye için bir sonraki anahtarı alamazsınız, ancak bir sonraki seviyeye giriş yapmak için kullanılabilecek özel bir SSH anahtarı alırsınız.

Not: localhost , üzerinde çalıştığınız makineyi ifade eden bir ana bilgisayar adıdır.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Çözüm:

Makineye baktığımda bir ssh dosyası görüyorum. İpucundan da yola çıkarak bandit14 için SSH bağlantısı yapıyorum.

Daha sonra bağlandığım makinede, soruda verilen dosyayı okuyorum ve cevaba ulaşıyorum. Hepsi bu.

 

Flag: [vurgu color=”#dd3333″]4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e[/vurgu]

bandit14

Bir sonraki seviyeye ait anahtara erişmek için localhosttaki 30000’e bağlanıp bu bölümün parolasının girilmesi gerekiyor.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Çözüm:

Zaten soruda verileni uygulayınca iş çözülüyor.

Flag: [vurgu color=”#dd3333″]BfMYroe26WYalil77FoDi9qh59eK5xNr[/vurgu]

Kategoriler
Siber Güvenlik

CanYouPwnMe CTF Çözümleri

CanYouPwnMe CTF sorularını çözdükçe buradan paylaşacağım ve aralıklarla güncelleyeceğim. https://ctf.canyoupwn.me adresinden kayıt yaparak çözmeye başlayabilirsiniz. Vakit ayırdıkça güncelleme yapacağım. İnternette çok güzel çözümler var ama bazı sorularda farklı çözümlerim oldu kıyaslayınca fark ettim.

Flag Form : cypwn_{h4ckm3} formatında girilerek çözümler yazılacak. Süslü parantezin arasına cevabımızı yazacağız. Flag Form kısmına bunu kopyalayıp girmeniz halinde de on puan vererek yarışmayı başlatıyor sistem.

Trivia

Git101 (20 Puan)

Unutma dökümantasyon önemli.

https://github.com/londragecidi/londragecidi

Adı üstünde 101 sorusu. Girdim github hesabına, birkaç kurcalamadan sonra wiki sekmesine göz attım ve flag karşıladı beni.

Flag : cypwn_{ben_git_biliom_abi}

First DEUCE (50 Puan)

EE bre deyyus nedir bu ilk DEUCE ??

Doğrusu sorunun cevabını çok farklı yerlerde aradım. Dizi çıktı, film çıktı, tenis çıktı, daha neler neler…Tek tek flag olarak denedim farklı kombinasyonları. Ancak tutturamadım. Tutmayan her şeyi google aramamdan eledim. Sonunda karşıma bir bilgisayar markası çıktı. Alan Turing ilgimi çekti ve onu da aramama dahil ettim. Çok karıştı değil mi? 🙂

Google’daki aramam şu hali aldı :
-“The deuce” “first” “DEUCE” “Alan Turing” “computer” -dizi -şarkı -2017 -music -tennis -dictionary -shoes -ayakkabı -lyrics

http://www.alanturing.net/turing_archive/archive/infopages/london1st.html

Burada şu cümleyi gördüm : “The Pilot Model ACE was London’s first electronic computer and the third stored-program computer to function in Britain.”

Demek The Pilot Model ACE Londra’nın ilk elektronik bilgisayarı. Bunun da birkaç kombinasyonunu denerken tam hayal kırıklığına uğruyordum ki tutturdum. Bu soruya bu kadar vakit harcadığım için üzüldüm doğrusu.

Flag : cypwn_{pilot_ace}

Carrot (50 Puan)

At boyutunda ördek?

Bu soruyu aramaya başladığımda “At boyutunda bir civcivle mi yoksa yüz ördek boyutundaki bir atla mı savaşmayı tercih edersiniz?” şeklinde bir soru ile karşılaştım. Olası cins cevapları, soruyu işe alım mülakatında sorduğu iddia edilen şirket isimlerini ve birkaç denemeyi daha cevap olarak girdim ancak önceki sorudan dilim yandı bir defa. Bu işte başka bir iş var. İngilizce aramaya başladım ancak bunu keşfetmem çok zaman aldı. Aynı sorularla karşılaşınca aramamda ufak dokunuşlar yaptım ve ikinci arama sayfamda Wikipedia’nın farklı bir başlığını gördüm. Nihayetinde at boyutunda bir ördeğe benzeyen dinazor türü ile karşılaştım. Yine o kadar umutlu değilken ikinci denememde cevap geldi.

https://en.wikipedia.org/wiki/Dromornithidae

Flag : cypwn_{dromornithidae}

INTELLIGENCE (50 Puan)

Bu çocuk müthiş istihbarat tekniği kullandı. 🙂

Yine bir iki denemem oldu. İstihbarat tekniklerini yazdım ancak doğru çıkmadı. Sonra çark ettim ki aradığım tüm sayfaların ortak noktası OSINT. Eh, öyleyse biz de bunu yazarız dedik. Bingo 🙂

Flag : cypwn_{OSINT}

Forensics

Flog (25 Puan)

http://s3.dosya.tc/server10/ol4jyx/canyoupwnme.rar.html

Rar dosyasının içinden bir log kaydı çıkıyor. Ben de “cypwn_{” yazarak aratıyorum. Ve tam üstüne denk geliyorum. Tertemiz kurtuluyorum sorudan 🙂

Flag : cypwn_{canyoupwnme_log}

Is Empty? (50 Puan)

Daha dün baktım burdaydı ama şimdi bulamıyorum?

https://drive.google.com/open?id=0B5i8WVYofXg6QWxVNUQyTkRfRW8

Parola korumalı bir zip dosyası söz konusu. Öyleyse john the ripper aracı imdadımıza yetişir.

“zip2john demorepo.zip > demorepo.hash” komutunu kullanıyorum. Şimdi şu hash dosyasını kırmaya bakalım.

“john demorepo.hash –show” parametresi ile son hamlemi yapıyorum. Parola : 12345

Sonra dosyaların içinde deli danalar gibi gezinmeye başlıyorum. Bakalım işe yarar ne var? Aradığım şeyin config dosyasında olduğunu buluyorum.

url = https://github.com/stolera/demorepo.git

Github hesabından flagi elde ediyorum.

Flag : cypwn_{easy_peasy_lemon_squeezy}

OSINT

NS (10 Puan)

canyoupwn.me ‘nin nameserverlarından birisi?

Herhangi bir web sitesi üzerinden CanYouPwnMe nameserverlarını sorgulayabiliriz. Ben linux araçlarından dig ile yaptım.

Komut : dig canyoupwnme mx
Karşıma iki NS çıktı.

ada.ns.cloudflare.com
zod.ns.cloudflare.com
Flag : cypwn_{ada.ns.cloudflare.com}

Mail (25 Puan)

Bu canyoupwn.me mailleri nerede barındırıyor acaba?

OSINT kategorisindeki NS sorusunda dig aracı ile yaptığım sorgu aslında bu sorunun da cevabını verdi. Şans 🙂

Flag : cypwn_{mx.yandex.net}

xCyberX (50 Puan)

Siber suçlular gizli ağlardan erişim sağlayarak orjinal Mona Lisa tablosunun taranmış digital kopyasını ele geçirdiler. Bu orjinal resmin yerine ise başka bir resim bırakmışlar. Siber suçluları takibe hazır mısın ? Bıraktıkları resim dosyası aşağıdadır.

https://drive.google.com/open?id=0B5i8WVYofXg6c29VYlg2MUZTQkk

Her gördüğüm fotoğrafta bir fotoforensic işlemi arıyorum. Bunda da ilk önce onu yaptım. Didik didik ettim hiçbir şey çıkmadı. Sonra soruya dikkat etmediğimi düşünüp tekrar döndüm. Dedim şunu steghide ile açayım. xcyberx ve ona yakın bazı anahtarlar belirledim kendime ve denemeye başladım. Sonucu aşağıdaki komut verdi. Yani cyberx.

steghide extract -sf RockYouFor_cyber_.jpg

Nihayet hint.txt isimli bir belge çıkıyor fotoğrafın içinden. Onda da aşağıdaki link yer alıyor.

https://yadi.sk/i/zxpANdeJ38yUKK

Karşımıza bir karekod çıkıyor. Bunu da herhangi bir karekod decode sitesinde çözüyorum. Bu sefer de tahminimce base64 ile şifrelenmiş bir metin var.

Doğru yoldasın dostum devam et..go go go!!!flag : aWV2Y3Rfe20wMGpfcDBIX0h4MF9lMGFfQHgzX0BfbkBpcTNYfQ==

Decode ettiğimde şununla karşılaşıyorum : ievct_{m00j_p0H_Hx0_e0a_@x3_@_n@iq3X}

Bir iki denemeden sonra da ROT ile şifrelendiğini keşfediyorum ve çözdüğümde flag karşıma çıkıyor.

Flag : cypwn_{g00d_j0B_Br0_y0u_@r3_@_h@ck3R}

Secret (100 Puan)

secret.canyoupwn.me

Verilen adrese erişim yok. Ne ola ki? Sazanlık edip soru bozuk bile dedim itiraf ediyorum. Sonra DNS sorgusundan cevabı buldum.

http://www.iyinet.com/dns-sorgulama/url/secret.canyoupwn.me

Flag : cypwn_{kks271723jjjasd9asd771239}