BabyEncryption writeup

Bu yazıda, Hack The Box platformundaki kriptografi kategorisinde yer alan BabyEncryption odasının çözümünü adım adım anlatacağım.

BabyEncryption writeup

Bu yazıda, bir şifreleme algoritmasını çözerek şifrelenmiş bir mesajdan gizli bilgiyi elde etmeye çalışacağız. Bunun için, üzerinde çalışabileceğimiz bir Python kodu kullanacağız.

İlk adım olarak, Challenge’te verilen zip dosyasını indirip çıkarttım.

Zip dosyasının içinde iki dosya bulunuyordu. İlk olarak, bu dosyaları okuyarak içeriğini inceledim.

Anladığım kadarıyla, chall.py adlı Python kodu, challenge'da bahsedilen gizli mesajı şifreleyen bir algoritma içeriyor. Bu algoritma her karakterin ASCII değerini hesaplıyor, üzerine 18 ekleyip 123 ile çarpıyor ve ardından 256 ile mod alarak bir şifreleme anahtarı oluşturuyor. Son olarak, elde edilen şifreli mesaj hex formatına çevrilerek msg.enc dosyasına kaydediliyor.

Şimdi, bu şifreleme algoritmasını tersine çevirerek msg.enc dosyasındaki şifrelenmiş mesajı çözmeye çalışacağız. Bunun için, tüm olası şifreleme anahtarlarını deneyerek plaintext'i elde etmeye çalışıyoruz. range fonksiyonunu kullanarak 33 ile 126 arasındaki tüm olası ASCII karakterlerini deniyoruz. Eğer hesaplanan değer şifreli metindeki byte ile eşleşirse, ilgili karakter plaintext değişkenine ekleniyor. Bu işlem, her karakter için tekrarlanarak gizli mesaj ortaya çıkarılıyor.

Daha sonra, şifreli metni okuyup secret adlı değişkene atıyoruz. Şifreyi çözmek için Brute_force_decrypt() fonksiyonunu kullanarak, şifreli metni başarılı bir şekilde çözmüş oluyoruz.

Çözülen şifreyi ise msg.txt adlı dosyaya yazdırıyoruz.

Linux terminaline geçip, yazdığımız kodu reverse_code.py adlı dosyaya kaydediyoruz.

Son olarak, python3 reverse_code.py komutunu kullanarak kodu çalıştırıyor ve msg.txt adlı dosyayı elde ediyoruz. Bu işlemin ardından flag'i elde etmiş oluyoruz. 

Gizli mesaj: Th3nucl34rw1ll4rr1v30nfr1d4y.

Flag: HTB{l00k_47_y0u_r3v3rs1ng_3qu4710n5_c0ngr475}

Muhammed Enes, Fırat üniversitesi Adli bilişim Mühendisliği öğrencisidir. Siber güvenlikte önemli bir yere sahip olan offensive tarafta çalışmalarını yürütüyor. Farklı sınıf aralıklarında oluşan 25 kişilik ekibin takım kaptanlığını yapıyor. Onlara çeşitli eğitimler veriyor. Kariyer hedeflerini belirleyip yol haritası çizmelerine yardımcı oluyor.