Adli Bilişim Topluluğu CTF Yarışması / 2022

LinkDifficultyCreator
ABT CTF’22MediumAdli Bilişim Topluluğu

Task 3

Görevde verilen görselin metadata’sını exiftool ile incelediğimizde görevde istenen bütün bilgilere ulaşıyoruz.


Task 4

Görevde verilen görseli önce exiftool, sonra strings aracılığıyla inceliyorum fakat işime yarayabilecek bir bilgi bulamıyorum. Görselin içerisine gizlenmiş bir dosya olabileceğini düşünerek steghide aracını kullanarak herhangi bir parola belirtmeden dosya çıkarma işlemi gerçekleştiriyorum ve keys.txt dosyasını elde ediyorum.

steghide extract -sf <file>

Çıkan dosya içerisindeki 3 farklı yöntemle encode edilmiş key’leri birleştirerek yeni bir elde edeceğimizi tahmin ediyorum. Birinci key’i CyberChef’i kullanarak önce base32 sonra base64 olarak decode ediyorum.

İkinci key’i binary‘den ascii‘ye çeviriyorum.

Üçüncü key’i de önce morse kodu ile sonra base32 ile decode ederek elde ettiğim üç key’i de birleştiriyorum.

Bu üç key’in birleşimini de base64 ile decode ederek flag’i elde ediyorum.


Task 5

Bu görevde bize verilen text dosyasının içerisinde gizlenen flag’i bulmamız isteniyor. Text dosyalarının içerisine veri gizlemek ve çıkarmak için kullanılan stegsnow aracını kullanarak dosyanın içerisindeki flag’i elde ediyorum.

stegsnow -C <file>

Task 6

Bu görevde Gulleringulu_1 kullanıcı adına sahip hesapları araştırmamız isteniyor. Bu kullanıcı adına sahip bir twitter hesabı ve eskiden bu kullanıcı adını kullandığı için arama motorunun indexlediği bir github hesabı ile karşılaşıyorum.

Bulduğum twitter hesabını incelerken bir postunda base64 ile encode edilmiş bir yorum görüyorum.

Bulduğum yorumu decode ettiğimde flag’e ulaşıyorum.


Task 7

Bu görevde bize verilen dosyayı bir şekilde decode etmemiz ve flag’e ulaşmamız bekleniyor.

Dosyayı gördüğümde kullanılan encoding metoduna aşina olmam sayesinde kullanılanın Base85 (ASCII85) olduğunu anlıyorum ve dcode sitesini kullanarak decode ediyorum.

Elde ettiğim binary değeri decode ettiğimde elde ettiğim sonuç ilk başta pek mantıklı gelmiyor.

ee ``f ba hg `_d ``c hf `aa ba `aa ``` ``c `_g hf `a` `_d hh `_d ba ``` `_g `__ ``f ba ``d hf ``_ `_f `_d ba dg c` c` c`

Fakat bir kaç deneme sonra elde ettiğimin sonucun Rot47 ile çözülebildiğini fark ediyorum. Rot47 ile elde ettiğim decimal değeri de decode ettiğimde flag’i elde ediyorum.


Task 8

Bu görevde bize verilen görseli incelememiz isteniyor. Görseli exiftool ile kontrol ettiğimde copyright değerinde daha önce görmüş olduğumuz Gulleringulu_1 kullanıcı adını görüyorum.

Eskiden bu kullanıcı adına ait olan ve henüz kontrol etmediğim github hesabını hatırlıyorum ve onu kontrol etmeye başlıyorum. Kullanıcının ilk reposunda herhangi bir şey bulamasam da ikince reposundan aradığım flag’i elde ediyorum.


Task 9

Burada bize verilen dosyayı strings komutu ile incelerken dosyanın içerisinde find isminde bir dizin olduğunu ve bu dizinin de suprize.wav isminde bir ses dosyası içerdiğini görüyorum.

Görselin içerisindeki bu dosyayı çıkarmak için binwalk komutunu kullanıyorum.

binwalk -e <file>

Çıkardığım ses dosyasını dinlediğimde bir morse kodu olduğunu anlıyorum. Ses dosyasının içerdiği morse kodunu decode etmek için bulduğum bir websitesini kullanıyorum.


Task 10

Görevde bize verilen görsel hakkında araştırma yapmamız isteniyor. Verilen görseli, google’ın görsel ile arama özelliğini kullanarak arıyorum ve ilk sorunun cevabı olan hangi konumda olduğunu öğreniyorum.

İkinci sorunun cevabı için de basit bir google araması yapıyorum.


Task 11

Görevde bize verilen ses dosyasını incelememiz isteniyor. Ses dosyasını audacity ile açarak spectrogram olarak incelediğimde flag’i elde ediyorum.


Task 12

Görevde verilen QR kodu online bir QR code reader kullanarak okuyorum ve elde ettiğim text’in rot13 olduğunu tahmin ederek CyberChef aracılığıyla decode ediyorum.

Bahsedilen reddit hesabını incelemeye başlıyorum. Hesabın profil resmine baktığımda göreve ait flag’i elde ediyorum.


Task 13

Görevde bize verilen dosyayı incelediğimde, base64 ile encode edilmiş bir text içerdiğiğini anlıyorum. Bir kaç kez decode ettiğimde dosyanın yavaş yavaş küçülmeye başladığını görsem de daha fazla decode etmem gerektiğini anlıyorum. Bunun için basit bir bash script yazıyorum kullanıyorum ve flag’i elde ediyorum.


Task 14

Görevde network paketlerini içeren bir pcapng dosyasını incelememiz isteniyor. Dosyayı wireshark ile açıp paketleri incelerken bir paket içerisinde clear text olarak gönderilen flag’i elde ediyorum.


Task 15

Bu görev için bize bir websitesi veriliyor ve incelememiz isteniyor. Verilen sitenin kodlarını incelerken bir yorum satırı buluyorum.

Websitesinde bulduğum yorum satırının rot13 ile encode edildiğini tahmin ediyorum ve decode ederek websitesi üzerinde bir dizin hakkında verilen bilgiye erişiyorum.

Belirtilen dizinin de kaynak kodlarını incelerken yine bir yorum satırında göreve ait flag’i buluyorum.


Task 16

Görevde verilen corrupted PNG dosyasını düzeltmemiz isteniyor. Dosyayı düzeltmek için öncelikle magic byte‘ını düzeltiyorum. Görselin hex kodlarını düzenleyebilmek için vim‘i :%!xxd komutuyla kullanarak dosyayı hex haline çeviriyorum. Dosyanın 52 23 21 68 olan ilk 4 byte’ını PNG’dosyasının olması gereken magic byte‘ı olan 89 50 4e 47 haline getiriyorum.

Dosyayı hex modundan çıkarmak için :%!xxd -r komutunu kullandıktan sonra kaydediyorum. Görsel dosyası bir miktar düzelse de hala alt tarafı düzgün görünmüyor.

Dosyadaki problemi anlamak amacıyla pngchec aracını kullandığımda invalid IDAT row-filter type hatasını görüyorum. Düzeltmek için bir süre uğraşsam da başaramıyorum ve online bir tool kullanmaya karar veriyorum. Corrupted png’leri düzeltme işlemini yapan bir websitesi buluyorum ve bunu kullanarak görseli düzeltiyorum.


Task 17

Görevde verilen zip dosyasının parolasını kırmamız isteniyor. Verilen zip dosyasının parolasını brute force ile kırmak için john aracını kullanıyorum. Aracın zip2john script’ini kullanarak zip dosyasını john aracının anlayabileceği bir formata çeviriyorum. Çevirdiğim dosyayı direkt olarak john aracına vererek default wordlist’i ile kırmayı deniyorum ve parolayı elde ediyorum.

zip2john <file> > output
john output

Zip dosyasının içinden çıkan görseli exiftool ile incelediğimde kırmaya devam etmen gerekiyor yazısını görüyorum ve stegcracker aracıyla rockyou.txt wordlist’ini kullanarak brute force ile resim dosyasının içinden başka bir dosya elde etmeyi deniyorum.