CTF: 8 Ways To Succeed In Your First Capture The Flag (CTF)

From OnnoWiki
Jump to navigation Jump to search

Sumber: https://blog.lumen.com/8-ways-to-succeed-in-your-first-capture-the-flag-ctf/

Pendahuluan

DEF CON adalah konferensi hacker yang biasanya berlangsung pada musim panas di Las Vegas. Bersama dengan Black Hat, DEF CON adalah salah satu konferensi paling terkenal di Amerika Serikat untuk para hacker dan pakar keamanan komputer. DEF CON menampilkan virtual village yang didedikasikan untuk topik tertentu seperti lockpicking, perangkat IoT (Internet of Things), dan rekayasa sosial. Tujuan umum dari acara ini adalah untuk menyatukan komunitas keamanan untuk berbagi informasi dan mendapatkan pengetahuan tentang alat dan eksploitasi yang dapat digunakan oleh aktor jahat. Dengan mempelajari taktik terbaru dan berbagi kerentanan, praktisi keamanan dapat mempertahankan jaringan dengan lebih baik dari serangan di masa mendatang.

Tim “Attacker” dalam latihan keamanan siber dikenal sebagai Tim Merah. Tugas mereka adalah mengadopsi metode dan mensimulasikan jenis serangan yang mungkin digunakan musuh sebenarnya terhadap organisasi. Tim bertahan dalam skenario ini adalah Tim Biru. Tujuan diadakannya latihan tim merah/tim biru adalah untuk memperbaiki postur keamanan organisasi, bukan untuk menimbulkan kerusakan yang sebenarnya. Istilah terkait termasuk "keamanan ofensif" (sekali lagi, menyiratkan postur menyerang) dan "pen test" (mencoba menembus pertahanan komputer atau keamanan siber).

Acara CTF telah berevolusi dari permainan anak-anak di mana tim menyerang wilayah satu sama lain dan berusaha merebut dan membawa kembali bendera tim lain. Di bidang keamanan siber, CTF telah menjadi kompetisi untuk menunjukkan keahlian dalam menyerang (atau mempertahankan) sumber daya komputer. Bendera dalam konteks ini biasanya berupa file atau kode yang dipulihkan oleh tim dan diberikan sebagai bukti keberhasilan penetrasi pertahanan mereka.

Inti dari CTF adalah memecahkan teka-teki. Tantangan diciptakan oleh dan untuk orang-orang yang suka memecahkan teka-teki. Salah satu aspek yang berpotensi membuat frustrasi para pemula adalah bahwa tujuan tantangan mungkin tidak disebutkan. Ambillah itu dengan tenang. Jika tantangan memberikan alamat IP dan port, coba sambungkan menggunakan alat sederhana seperti telnet atau netcat. Lihat apa yang bisa Anda ketahui. Setiap tantangan memiliki solusi yang diinginkan.

Tipe Challenge

Berikut adalah beberapa jenis tantangan umum yang mungkin Anda temui di CTF:

  • RCE – (Remote Code Execution) – Memanfaatkan kerentanan perangkat lunak untuk mengizinkan eksekusi kode di server jarak jauh.
  • Cryptography – Memecahkan sandi dan kode, mulai dari sandi klasik (misalnya, Caesar, transposisi) hingga kriptografi modern seperti AES, 3DES, RC4, dan Twofish.
  • Programming – Tantangan yang membutuhkan pengkodean solusi dalam bahasa komputer pilihan Anda. Memecahkan ini secara manual umumnya akan terlalu membosankan atau memakan waktu.
  • OSINT (Open Source Intelligence) – Menemukan petunjuk tersembunyi di internet publik dan platform media sosial. Bawa Google-fu terbaik Anda untuk mengatasi ini.
  • Reverse engineering – Mempelajari file yang dapat dieksekusi biner, sampel malware, atau file lain untuk memahami maksud atau perilakunya.
  • Forensics – Menganalisis file log, penangkapan paket jaringan, atau artefak lain untuk mendeteksi bagaimana peretas menyusup ke sistem.
  • Steganography – Seni dan ilmu menyembunyikan (dan mendeteksi) pesan dalam gambar, file audio, dan sejenisnya.

Tools

Meskipun Anda mungkin menggunakan beragam alat yang tidak terbatas untuk menyelesaikan tantangan, berikut adalah beberapa untuk Anda mulai:

  • Python adalah bahasa skrip yang sangat berguna, dengan ekosistem paket yang kaya untuk menambah fungsionalitas. Anda harus mengembangkan kode baru di python3 (python 2.7 versi lama dan tidak lagi didukung). Pip adalah utilitas Python yang digunakan untuk menginstal paket tambahan.
  • CyberChef adalah situs web berbasis Javascript untuk membuat resep dengan mudah, atau serangkaian langkah, untuk memecahkan kode teks atau data. Ada juga repositori kode jika Anda ingin menerapkan instance mandiri.
  • Boxentriq adalah sebuah web dengan overview yang cukup baik dari chiper dan berbagai tool analisis.
  • Kali adalah distribusi Linux yang sudah menyertakan banyak tool yang berguna untuk pengujian penetrasi. Lebih banyak tool dapat diinstal dengan utilitas apt-get. Anda juga dapat menjalankan Kali sebagai mesin virtual di komputer lain.
  • Dirb adalah tool yang berguna untuk memindai direktori dan file di server web. Atau coba Gobuster – tool serupa yang diimplementasikan dalam bahasa Go, untuk meningkatkan kinerja.
  • Metasploit adalah seperangkat tool eksploit yang ampuh untuk pengujian penetrasi. Tool terkait, Msfvenom, dapat membuat dan mengenkripsi muatan eksploit.
  • Pwntools adalah sebuah Python-based framework untuk CTF dan exploit development.
  • exploit-db adalah website yang berguna untuk memperoleh proof-of-concept exploit code.
  • IDA adalah sebuah interactive disassembler and debugger. Versi professional (IDA Pro) memang mahal tapi powerfull. Kita dapat memulainya dengan versi free-nya.
  • Ghidra adalah sekumpulan tool Java-based yang powerful dan free dari NSA untuk reverse engineering software. Dalamnya termasuk decompiler untuk mengubah binary code ke high-level C code.
  • Debugging tool memungkinkan kita berinteraksi dengan program, pause execution, investigasi hubungan dari registers dan lokasi memory, dan masih banyak lagi. Mereka sangat diperlukan untuk menciptakan eksploitasi. Ada banyak opsi untuk debugger, seperti x64dbg, OllyDbg, atau Immunity. Di Linux, Anda juga memiliki opsi gdb, debugger Gnu. Untuk menyempurnakan gdb, Anda juga dapat melihat plugin seperti PEDA atau GEF (diucapkan “Jeff”).
  • Otak anda! Terkadang analisis terbaik datang dari memikirkan dengan hati-hati tentang masalah yang Anda sajikan, dan bagaimana memanfaatkan informasi yang ada.

Best Practice dan Saran

Berikut ini beberapa praktik terbaik dan saran untuk diikuti jika Anda baru memulai:

  • Baca aturan sebelum memulai – dan ikuti aturan - Pahami apa yang termasuk dalam ruang lingkup dan apa yang tidak. Jika alamat IP atau port tertentu terlarang, hormati itu. Aturan dasar dapat bervariasi dari satu kompetisi ke kompetisi berikutnya, tetapi sebagai pedoman umum: jangan melanggarnya. Jangan ragu untuk memanfaatkan resource untuk menyelesaikan tantangan, tetapi hindari tindakan yang dengan sengaja menghalangi orang lain membuat kemajuan. CTF dirancang untuk menjadi kesempatan belajar, jadi hindari merampas kepuasan belajar dan kenikmatan memecahkan masalah dari kompetitor lain.
  • Take note! Begitu Anda mulai membuat kemajuan, mudah terbawa oleh momentum Anda sendiri, tetapi ingatlah untuk membuat catatan saat Anda melakukannya. Anda mungkin perlu mundur, dan beberapa catatan dapat merampingkan proses untuk kembali ke langkah sebelumnya. Catat hal-hal penting yang Anda temukan seperti alamat IP, bendera, nomor port, atau sintaks perintah. Saat melakukan brainstorming pendekatan baru untuk dicoba, tinjau apa yang sudah Anda coba. Catatan juga berguna jika Anda ingin menuliskan solusi Anda nanti.
  • Try again later - Terkadang tantangan didasarkan pada server yang berada dalam kondisi tertentu, katakanlah, memberikan respons dalam sesi TCP. Mengingat banyaknya tim yang mungkin menggunakan berbagai tool peretasan terhadap server, kemungkinan mesin target akan menjadi tidak stabil atau tidak tersedia. Penyelenggara biasanya memiliki cara untuk mengatur ulang keadaan server. Langkah yang sama yang Anda coba (yang gagal) mungkin berhasil untuk Anda beberapa jam kemudian. (Lihat di atas tentang membuat catatan!)
  • Cari di web - Anda mungkin menemukan petunjuk (atau bahkan sebagian solusi) dengan mencari informasi apa pun yang Anda miliki. Memang, beberapa jenis tantangan (seperti OSINT) menuntut hal ini. Periksa petunjuk yang tersembunyi di bahan yang tampak seperti hiasan saja, seperti gambar. Apakah ada referensi atau meme budaya pop yang dapat memandu penelitian Anda? Jika Anda mandek, cari tantangan serupa dari masa lalu.

Dibutuhkan investasi waktu yang banyak untuk membuat tantangan CTF, dan tantangan individual dapat digunakan kembali untuk CTF lainnya. Orang senang memposting solusi mereka, jadi Anda dapat menemukan petunjuk di sana.

  • Cobalah tantangan yang berbeda - Seringkali ada tantangan yang dirancang untuk diselesaikan secara berurutan; mencoba memahami urutan yang dimaksud. Terkadang tingkat kesulitan dirancang untuk meningkat perlahan, jadi apa yang Anda pelajari dengan menyelesaikan satu tantangan dalam rangkaian akan membantu Anda mempelajari apa yang perlu Anda lakukan untuk tantangan berikutnya. Mungkin ada gerbang alami yang dibangun ke dalam seri: sampai Anda mengeksploitasi server bastion itu, Anda tidak akan dapat melakukan pivot untuk menyerang server dengan alamat IP internal seperti 10.x.x.x. Jangan menganggap Anda selalu harus mengatasi tantangan secara berurutan. Cari petunjuk apakah tantangan selanjutnya dapat dicoba tanpa menyelesaikan tantangan sebelumnya. Jika Anda terjebak pada satu jenis tantangan, cobalah jenis tantangan lainnya. Carilah tantangan yang terdengar menyenangkan, yang berhubungan dengan hal-hal yang sudah Anda ketahui, atau yang meningkatkan keterampilan yang ingin Anda tingkatkan. Jika Anda terjebak dalam mencoba mengeksploitasi server itu, cobalah tantangan kriptografi, tantangan OSINT, atau tantangan pemrograman.
  • Minta Petunjuk - Setiap tantangan yang Anda coba selesaikan diciptakan oleh manusia. Mereka mungkin bangga dengan kreasi mereka dan ingin Anda berhasil. Dalam deskripsi tantangan, Anda mungkin melihat nama penulis atau akun Twitter mereka. Jangan ragu untuk menghubungi dan meminta bantuan dengan sopan. Singkat, tetapi beri tahu mereka apa yang sudah Anda coba. Mereka mungkin bersedia memberikan petunjuk untuk membuat Anda melepaskan diri, atau setidaknya membantu Anda memahami bagaimana tantangan itu dimaksudkan untuk diselesaikan.
  • Pertajam tool anda - Jika Anda belum mengetahui Python, pelajarilah… itu akan membantu Anda dengan baik. Jika Anda sudah ahli dalam Python, Anda dapat menggunakan CTF sebagai peluang untuk menjadi lebih mahir dalam bahasa lain yang membuat Anda penasaran, seperti Go atau Rust. Pikirkan tentang seberapa mudah (atau sulit) menyelesaikan tantangan tertentu menggunakan alat yang berbeda. Jika Anda secara rutin membuat skrip dengan Python, cobalah menulis skrip bash (atau sebaliknya).
  • Lakukan post-mortem - Pada akhirnya, tinjau apa yang berhasil dan apa yang gagal. Cari Walkthrough yang dipublikasikan untuk teka-teki yang membuat Anda bingung untuk mempelajari apa yang perlu Anda ketahui di lain waktu. Pikirkan tentang keterampilan yang Anda butuhkan untuk menjadi sukses dan berkomitmen untuk meningkatkannya. Mendaftar untuk CTF lain dalam satu atau dua bulan… untuk memotivasi pembelajaran Anda dan sebagai tonggak sejarah untuk menguji diri Anda sendiri atas apa yang telah Anda pelajari.

Beberapa CTF yang di sarankan

Ada ratusan acara CTF yang berlangsung setiap tahun. Beberapa CTF bersifat virtual, sementara yang lain terjadi di tempat pada konferensi atau meeting. Semuanya menghadirkan peluang untuk mempelajari dan meningkatkan keterampilan cyber security Anda.

Berikut adalah beberapa contoh CTF yang bisa di rekomendasikan, untuk berbagai tingkat kesulitan:

  • Beginner: PicoCTF menyediakan konten pendidikan keamanan dunia maya sepanjang tahun (tantangan latihan PicoGym) untuk pelajar dari semua tingkat keahlian. Kompetisi tahunan mereka ditujukan untuk tim sekolah menengah.
  • Intermediate: Situs web Red Team Village mengadakan beberapa acara dalam setahun. Pada tahun 2021, DEF CON 29, Red Team Village CTF dibuka dengan babak prakualifikasi 24 jam mulai 5 Agustus. Dua puluh tim akan maju ke immersive pen testing scenario. Berdasarkan tahun lalu, tantangan prakualifikasi harusnya tetap tersedia hingga akhir pekan. Tim di Lumen menemukan CTF ini memiliki rentang kesulitan yang bagus dan beberapa rangkaian tantangan yang memuaskan.
  • Elite: DEF CON CTF utama (terpisah dari Red Team Village CTF di atas), saat ini dijalankan oleh “Order of the Overflow.” Kualifikasi biasanya terjadi pada bulan Mei, dengan 16 tim bersaing di final selama DEF CON pada bulan Agustus.

Terakhir, ctftime.org mencantumkan banyak acara CTF yang akan datang berdasarkan tanggal. Daftar ini tidak mencakup setiap CTF yang terjadi, tetapi ini adalah tempat yang baik untuk mencari CTF berikutnya. Anda dapat memfilter berdasarkan lokasi (on-line, atau on-site) dan batasan (terbuka atau lainnya).

Kesimpulan

CTFs adalah cara yang menyenangkan untuk belajar dan mengasah keterampilan Anda, dengan kedok sebuah kompetisi. Jika Anda belum pernah mencobanya sebelumnya, Anda mungkin menyadari bahwa Anda telah kehilangan!

Jika Anda baru memulai dengan CTFs, disarankan untuk melihat tantangan latihan PicoGym. Anda dapat mendaftar secara gratis dan mencoba tantangan dari kompetisi PicoCTF sebelumnya. Tantangan latihan tersedia sepanjang tahun, dan situs web memiliki sumber daya untuk membantu Anda memulai mengatasi berbagai jenis tantangan.

Referensi