Priviahub | RevTwo

Orta zorluktaki RewTwo'ya yakından bakalım. İlk olarak bize verilen dosyayı tanımaya çalışıyoruz . Dosyayı çalıştırdığımızda bizden bir parola istemekte ve yanlış girişte sonlanıyor . Bu aşamada buffer overflow akıllara geliyor .
Dosyayı daha iyi tanımlamak için aşağıdaki komutları çalıştırdığımızda "Copyright (C) 1996-2020 the UPX Team. All Rights Reserved" yazısı dikkatimizi çekiyor . Araştırdığımızda UPX'in açık kaynka kodlu executeable packer olduğunu görüyoruz. Websitesini ziyaret ettiğimizde UPX'in dosyayı çok iyi sıkıştırdığına vurgu yapılmakta .
Dosyayı ghidra ile açtığımızda UPX ile paketlendiği için anlamsız veriler ile karşılaşıyoruz .ParrotOs üzerinde kurulu gelen UPX'in man sayfasına bakıyoruz ve dosyayı decompress ediyoruz .
Elde edilen yeni dosyayı ghıdra ile açtığımızda artık daha fazla veriye ulaşmaktayız . Programın yürütülmeye başladığı main fonksiyonunu arattığımızda sağ tarafta ghidra tarafından decompile edilmiş halini inceledğimizde müdehale etmemiz gereken noktaları anlamaya başlıyoruz .
local_c değişkeni 0 oludğu taktirde bize flag'i verdiğini kod üzerinde görmekteyiz. Yazılımın akışını bozup şartı atlayıp if'in içerisini çalıştırmasını sağlamak için Cuttter aracını kullanacağız . 0x00404a39 adresinde gerçekleştirilen karşılaştırmanın sonucunda JNZ(Jump If Not zero) instruction'ı ile parolanın yanlış olduğu duruma gidiyor . Bizde bu adresi değiştirerek 0x00404a43 adresine atlanmasını sağlayacağız .
Cutter aracı üzerinde Write-Mode'u aktifleştirdikten sonra adrese müdehale edioyoruz . Adresi değiştirdirip dosyayı çalıştırdığımızda flag'i elde ediyoruz .

No comments:

Post a Comment

Hack The Box | MetaTwo

  Makinayı nmap ile tarıyoruz . 21/tcp open  ftp? | fingerprint-strings: |   GenericLines: |     220 ProFTPD Server (Debian) [::ffff:10.10.1...