Writeup CCUG Hackfest 0x02 (Reverse Engineering)

Reverse Engineering

Ular Terbungkus

Diberikan file dengan ekstensi file python yang sudah di compile (.pyc) dan ketika di run maka akan menampilkan :


----- Sarang Ular -----
Flag :

untuk menyelesaikan challenge ini, penulis terlebih dahulu mendecompyle dengan bantuan Uncompyle6, dan saat di run akan tampil :



┌─[fallcrescent@parrot]─[~/Hackfest/Crypto/Multibyte_XOR_Source] └──╼ $ uncompyle6 ular_terbungkus.pyc
# uncompyle6 version 3.2.4
# Python bytecode 2.7 (62211)
# Decompiled from: Python 2.7.15+ (default, Nov 28 2018, 16:27:22)
# [GCC 8.2.0]
# Embedded file name: ular_terbungkus.py
# Compiled at: 2018-12-12 08:33:32
from Crypto.Cipher import AES
import hashlib, base64

class Ular:

def __init__(self):
    self.ular_flag = 'Gda+wKa52rT/1WaWzVXDVi23VemIwUNTpttG4JJddYGHDF4eSGj2/9tCZs8OTwzaizI75GTfxS/QGDKEVm9XBz2zM/WQGrM7gqDNfx3SCpVKtaENNnnYOZHwk8Lpo1wt'

def unpad(self, s):
    return s[:-ord(s[-1])]

def decrypt(self, s):
    cip = base64.b64decode(s)
    key = hashlib.md5(cip[:16]).hexdigest()
    IV = cip[-16:]
    cipher = cip[16:-16]
    aes_obj = AES.new(key, AES.MODE_CBC, IV)
    return self.unpad(aes_obj.decrypt(cipher))

def get_flag(self):
    return self.decrypt(self.ular_flag)


def main():
print '----- Sarang Ular -----'
inp_flag = raw_input('Flag : ')
real_flag = Ular().get_flag()
if inp_flag == real_flag:
    print '[+] Correct'
else:
    print '[x] Wrong'


if __name__ == '__main__':
main()
# okay decompiling ular_terbungkus.pyc

dari script diatas penulis hanya membenarkan penulisan script dengan menghapous bagian if dan input lalu menampilkan fungsi real_flag


def main():
print '----- Sarang Ular -----'
real_flag = Ular().get_flag()
print(real_flag)

Flag : HackFest{88df7b7657844da585f1590c887bbaefdb2685c6}

Serial Number

diberikan service netcat dengan alamat nc ccug.gunadarma.ac.id 6006 dan jika di run maka akan menampilkan :


HackFest 0x02 Secret Software

[?] Serial number :

dan juga diberikan sebuah file exe yang sudah, lalu penulis membukanya dengan IDA Pro dan mendapatkan :

Dan dapat di lihat bahwa service menerima angka dengan format %d-%d-%d-%d-%d dan akan dimasukkan fungsi sub_AC0 dan ketika dibuka fungsinya tertulis

Untuk menyelesaikan challenge ini penulis menggunakan perhitungan manual dikarenakan pada saat mengerjakan tidak mengetahui ada z3 tools yang dapat membantu solve perhitungan ini. Dengan membandingkan nilai dengan ketentuan if agar tidak return 0 Maka didapatkan
a1 = 2000
a2 = 2000
a3 = 4000
a4 = 8000
a5 = 4000

dan ketika dimasukan ke service



HackFest 0x02 Secret Software

[?] Serial number : 2000-2000-4000-8000-4000

Nice bro
HackFest{z3_akan_setia_menemanimu_di_masa_masa_sulit_seperti_ini}

Flag : HackFest{z3_akan_setia_menemanimu_di_masa_masa_sulit_seperti_ini}

Categories: ,

0 comments:

Post a Comment

http://www.resepkuekeringku.com/2014/11/resep-donat-empuk-ala-dunkin-donut.html http://www.resepkuekeringku.com/2015/03/resep-kue-cubit-coklat-enak-dan-sederhana.html http://www.resepkuekeringku.com/2014/10/resep-donat-kentang-empuk-lembut-dan-enak.html http://www.resepkuekeringku.com/2014/07/resep-es-krim-goreng-coklat-kriuk-mudah-dan-sederhana-dengan-saus-strawberry.html http://www.resepkuekeringku.com/2014/06/resep-kue-es-krim-goreng-enak-dan-mudah.html http://www.resepkuekeringku.com/2014/09/resep-bolu-karamel-panggang-sarang-semut-lembut.html

Copyright © FallCrescent | Powered by Blogger

Design by Anders Noren       Up ↑