Sunday, April 13, 2014

PlaidCTF2014 Write Up: curlcore (Forensic250)

Dalam challenge ini, Kita diberi sebuah file coredump dari curl yang sedang mengakses sebuah situs https, dan sebuah file capture pcap, serta beberapa library pelengkap curl. Tadinya ingin meload file ini di gdb untuk melihat session master key, tapi ternyata meload file ini sulit dilakukan. Setelah mencari-cari di Internet, didapat link ini yang menyatakan bahwa kita bisa langsung mengekstrak dari key dari memori dengan mudah jika kita tahu session idnya:
http://www.cloudshield.com/blog/advanced-malware/how-to-decrypt-openssl-sessions-using-wireshark-and-ssl-session-identifiers/
Jadi solusinya cukup mudah: cari session id menggunakan wireshark di paket handshake, dan didapat:
19ab5edc02f097d5074890e44b483a49b083b043682993f046a55f265f11b5f4
Kemudian kita cari di curlcure nilai hex tersebut, dan kita mundur sedikit untuk mendapatkan master keynya:
191e5042e6b31371aa65258e13b2dc714d984df8d68fad678ff0a2fc49476d65c3a161f718572c3f5db8566a0de89e58
Keduanya kita masukkan ke file sslkey.txt (semuanya satu baris):
RSA Session-ID:19ab5edc02f097d5074890e44b483a49b083b043682993f046a55f265f11b5f4 Master-Key:191e5042e6b31371aa65258e13b2dc714d984df8d68fad678ff0a2fc49476d65c3a161f718572c3f5db8566a0de89e58
Lalu kita pakai file ini di wireshark:
settingssl
Kita sekarang bisa melihat requestnya:
ssl2
Dan jika kita ikuti SSL Streamnya:
ssl
Kita mendapatkan flagnya.

1 comment: