STMCTF'19 Write-Up Forensics Recovery

2021, Mar 06    

Selamlar, bu yazımda STMCTF’19 yarışmasında sorulan Forensics kategorisinden Recovery isimli sorunun çözümünü anlatacağım.

Soru dosyası : image.zip

Soruda image isminde bir zip dosyası verilmiş. Zip dosyasını extract ettiğimizde içinden image.001 isimli bir imaj dosyası çıkıyor. İmaj dosyasını açıp incelemek için autopsy isimli yazılımdan yararlanalım. Autopsy yazılımını kullanabilmek için bazı işlemleri gerçekleştirmemiz gerekiyor. Öncelikle yeni bir case oluşturalım. Aşağıdaki resimlerde sırasıyla işlemler belirtilmiştir.

image-1

Case ismi belirleyelim.

image-1

CTF imaj dosyası inceleyeceğimiz için bu kısımda gerçek bilgiler doldurmamıza gerek yoktur, gelişigüzel doldurabiliriz.

image-1

Bu kısım oldukça önemli çünkü imaj dosyamızın parse edilebilmesi için data source tipini doğru seçmemiz gerekir. Seçmemiz gereken data source tipi Disk Image or VM File olmalıdır.

image-1

Bu kısımda image.001 dosyamızı seçelim.

image-1

Uygulanacak olan modülleri varsayılan seçimde bırakabiliriz.

image-1

Finish ile birlikte analizi başlatalım.

image-1

Analiz birkaç dakika sürebilir. Sağ alttaki kısımda tamamlandığını gördükten sonra incelememize başlayabiliriz. Karşımıza aşağıdaki gibi bir ekran çıkacak ve burada soldaki menüden kategori spesifik inceleme yapabiliriz.

image-1

İncelemeye başlamadan önce belirtmek istediğim bir konu var. Autopsy aracının 4.17.0 sürümünden önceki versiyonları kullanıyorsanız bazı modüller ve özellikler eksik olabilir. Bu yazının yazıldığı tarih itibariyle güncel Autopsy sürümü 4.17.0 olduğu için bu sürüm tercih edilmiştir. Daha önceki incelemelerime bakarak söyleyebilirim ki bazı özellikler eski versiyonlarda bulunmadığı için ekstra olarak diğer araçlarla birlikte kullanmak zorunda kalmıştım. Son olarak kabaca datalara baktığımda gördüm ki oldukça fazla incelenmesi gereken data var. Dolayısıyla yazının uzamaması için sadece sorunun çözümünde kullanılan gerçek bulgular ile yazı devam edecektir.

İncelememizde imajı alınan diskin windows makineye ait olduğunu farkediyoruz. STMCTF kullanıcısının masaüstünde music adında bir klasör içinde 5 farklı wav uzantılı medya dosyası olduğunu görüyoruz. Dosya isimlendirmesi 1,2,3,4,5 şeklinde ilerlemiş ve ilginç olan kısım sadece son wav dosyasının boyutunun düşük olmasıdır. Application sekmesinden wav uzantılı medyaları oynatabiliyoruz. Sesleri dinlediğimizde 4 tanesinin müzik olduğunu kalan son wav dosyasının ise morse code içerdiğini farkediyoruz.

image-1

5.wav dosyasını extract edip online morse decode işlemi yapan bir adrese(https://morsecode.world/international/decoder/audio-decoder-adaptive.html) verelim.

image-1

Morse içeren ses dosyasını decode ettiğimizde karşımıza private key‘i bulmamız gerektiğini söyleyen bir ipucu çıktı. İncelemeye devam edelim.

image-1

İncelememizin devamında Documents klasörü altında yine aynı mantıkta önümüze sunulmuş 1,2,3,4,5 isimlendirmesi ile 5 adet PDF uzantılı doküman verilmiş. İlk PDF dosyasının içeriğine Application sekmesinden baktığımızda içinde sadece What!? yazan bir ifade ile karşılaştık. Acaba bu ifade ne anlama geliyor ve gerçekten PDF içeriği boş mu?

image-1

Bunu anlamak için Text sekmesine geçelim. Text sekmesi içinden baktığımızda PDF içerisine gizlenmiş olan RSA Private Key değeri ile karşılaşıyoruz. Morse ipucunda belirtilen private key bu olmalı.

image-1

Peki bu key nasıl gizlenmiş? Aslında application sekmesinden de gizli bir şeyin olduğunu farkedebilirdik çünkü yazıya ait renk beyaz olarak ayarlanmış.

image-1

Şuana kadar elimizde sadece bir RSA Private Key var. Bu key’i kullanabilmek için encrypted bir data olmalı peki nerde? İmaj içerisindekileri incelemeye devam edelim. STM logosunun olduğu bir PNG dosyası ile birlikte ENC uzantılı bir encrypted dosya ile karşılaşıyoruz.

image-1

Öncelikle PNG dosyasını inceleyelim.

image-1

PNG dosyasını incelediğimizde exif bilgilerinde comment bırakıldığını görüyoruz : openssl rsa. Böylelikle decryption yöntemimize ait ipucunu da bulmuş olduk. step1.enc dosyamızı export edelim ve elimizde bulunan key ile birlikte decrypt edelim. Private keyimizi private_key.pem olarak kaydedelim.

image-1

Decryption işlemini başarıyla gerçekleştirdik. Decryption işlemi sonucunda karşımıza flag değerine benzeyen ama flag olmayan bir string değer çıktı. Bu değeri nerede kullanacağız? İmaj içerisini inceleyip kullanacağımız kısmı bulalım. NTUSER.DAT dosyası içerisinde (Software/Microsoft/Internet Explorer/TypedURLs) Internet Explorer ile ziyaret edilen adresler tutulur. Bu adresleri incelediğimizde bir dropbox linki gözümüze çarpıyor.

image-1

Dropbox adresini ziyaret ettiğimizde road_of_flag adında bir zip dosyası karşımıza çıkıyor. Dosyayı indirip açmaya çalıştığımızda içinde flag.png dosyasının olduğunu fakat parola korumalı olduğu için açamadığımızı görüyoruz.

image-1

Acaba öncesinde encrypted dosya içerisinden bulmuş olduğumuz string değer parola olabilir mi diye düşünerek deneyelim. Denediğimizde parolanın doğru olduğunu görüyoruz. İçerisinden flag adında bir resim dosyası çıkıyor.

image-1

Görseli araştırdığımızda pic-a-pix puzzle olduğunu farkediyoruz. Bu puzzle’ı elimizle de çözebiliriz fakat internette araştırdığımızda otomatik çözen araçların(http://jsimlo.sk/griddlers/) olduğunu görüyoruz. Bu araç ile puzzle’ı çözdüğümüzde karşımıza QR code çıkıyor.

image-1

QR kodu https://webqr.com/ adresine verdiğimizde flag değerimizi elde etmiş oluyoruz.

image-1
STMCTF{K3eP_y0ur_Fri3nds_Clo5e_bUt_yoUR_eNemi3s_cLosEr}

Yazımı okuduğunuz için teşekkürler, bir başka yazıda görüşmek dileğiyle.. :smiley: