Tampilkan postingan dengan label Crypto. Tampilkan semua postingan
Tampilkan postingan dengan label Crypto. Tampilkan semua postingan

Minggu, 07 Juli 2019

Write Up IndoSecurity Ctf 2019 -crack_me_please-

Assalamualaikum teman-teman, setelah sekian lama tidak nulis write-up ctf akhirnya sekarang bisa nulis lagi yeay :D

Langsung aja kita bahas soalnya, jadi soal kali ini merupakan soal kategori forensik dengan judul "crack_me_please", diberikan sebuah file dengan nama "crack_me_please.7z".


Langsung saja extract itu filenya kemudian didapatkan 2 file yaitu, ok.zip dan takut lupa.pdf


Setelah itu saya coba extract file ok.zipnya, dan ternyata butuh password untuk extractnya


hmm, heran padahalkan ngga dikasih password tapi kok butuh password. Setelah itu saya coba cek isi dari file takut lupa.pdf. Ternyata isinya banyak sekalian string yang tidak jelas dan jumlahnya sangat banyak sekali, sampai 400-an halaman :O


hmm, setelah itu kepikiran mungkin isi dari file pdf itu adalah wordlist untuk bruteforce password untuk file ok.zip :D
Tapi sebelum itu kita convert dulu file pdfnya jadi txt biar lebih gampang diolah.


Selanjutnya buat aja script sederhana untuk bruteforce password ok.zip menggunakan wordlist file takut lupa.txt.Berikut isi scriptnya :


Setelah itu jalankan scriptnya dan tunggu beberapa saat. kemudian setelah file ok.zip berhasil, muncul 2 file baru yaitu flag.zip dan hai.png, yeay :D


Langsung saja tanpa basa-basi extract file flag.zip, tapi ternyata diberi password lagi T_T


Lalu saya coba buka file hai.png dan berharap isinya adalah passwordnya


Tapi ternyata isinya cuma tulisan hai -,- hmm, setelah berpikir beberapa saat, dapet ide buat liat string dari file hai.png, dan ternyata benar isinya sebuah wordlist lagi untuk bruteforce password file flag.zip


Langsung saja simpan isi string dari hai.png ke dalam sebuah file txt.


Setelah itu, kita pakai lagi script yang sudah dibuat tadi dengan sedikit penyesuaian nama filenya, sehingga hasilnya jadi seperti ini


Langsung aja jalanin script dan tunggu beberapa saat, dan akhirnya file flag.txt berhasil diekstrak, yeayy! :D
Coba buka file flag.txt dan berharap muncul string flagnya. Tapi ternyata hasilnya seperti dibawah ini T_T


Astagaaa, ini soal kok gini amat ya T_T
Oke, saya rasa ini perjuangan terakhir jadi ayo semangat! :D
Jika dilihat lihat dari string ini kemungkinan adalah md5hash, langsung saja saya cari md5hash online untuk melakukan decrypt md5hash ini. Dan akhirnya Taddaaaaa, flagnya muncul juga :")


IYA, SAMA-SAMA :V

Final flag : ISCC2019{makasih_udah_di_crack}

Share:

Minggu, 23 September 2018

[Write Up] IDCC 2018 Crypto -DecryptME- 50pts

Assalamu'aikum teman-teman :)
Kali ini saya akan berbagi Write Up dari salah satu soal di IDCC Ctf 2018 yang baru saja berakhir. Selamat membaca~
Langsung saja soal kali merupakan soal Crypto. Diberikan sebuah file yang berisi string flag yang sudah di enkripsi dan program yang digunakan untuk enkripsi kedua file tersebut bisa didownload disini.

Pertama, kita lihat dulu program yang digunakan untuk mengenkripsi, kira-kira seperti ini.
Serta untuk hasil enkripsi flagnya adalah seperti ini:
Tugas kita adalah untuk mendekripsi string tersebut supaya bisa mendapatkan flagnya. Nah, karena proses dekripsi merupakan kebalikan dari proses enkripsi maka untuk mendekrip string tersebut kita memprosesnya secara terbalik.
Dilihat dari proses paling akhir yaitu mengubah nilai integer menjadi huruf. Maka langkah pertama untuk mendekripnya adalah mengubah setiap huruf dari string yang kita dapat menjadi bentuk integernya. Nilai integer itu didapat dari nilai var teks dan var kunci di modulo 127. Modulo disini bisa juga diartikan sebagai pengurangan. Maka jika pengurang dibalik hasilnya harus ditambah. Jadi integer yang sudah kita dapat ditambah dengan 127.

Sekarang nilai integernya merupakan jumlah dari nilai var teks dan var kunci. Disini saya mengguakan program  seperti dibawah ini untuk mendapatkan nilai integernya:
Hasilnya:
Langkah selanjutnya kita harus melakukan proses bruteforce untuk bisa mendapatkan nilai dari kunci. Sedangkan untuk nilai dari var teks akan menjadi parameter pengecekan yang bisa kita tebak dari format flagnya. Dimana format dari flagnya pasti diawali dengan string 'IDCC{', nah kita cek jika kunci yang dimasukkan senilai maka itu kunci jika tidak senilai berarti bukan. Eit, tapi jangan lupa pada awal enkripsi bentuknya diencode dulu menjadi base64. Selanjutnya tambahkan beberapa baris script baru untuk mengecek key pada program yang sudah kita buat sebelumnya:
Hasil kuncinya:
Sekarang kita sudah mendapatkan nilai dari kunci. Saatnya melakukan dekripsi dari string flag yang sudah dienkripsi.Caranya adalah dengan mengurangi setiap nilai integer dari string enkripsi dengan kunci secara berulang kemudian diubah menjadi huruf lalu didecode base64. Kenapa dikurangi? Karena pada saat proses enkripsi ditambah. Kira-kira beginilah bentuk program untuk mendekripsinya:

Hasilnya adalah flag:

Flag : IDCC{S1mpl3_4nd_stR4ight}

Sekian, terima kasih sudah menyimak sampai akhir. Silakan berikan kritik & saran kepada penulis, karena penulis juga masih belajar. :)
Share: