Difference between revisions of "CTF: 8 Ways To Succeed In Your First Capture The Flag (CTF)"

From OnnoWiki
Jump to navigation Jump to search
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Sumber: https://blog.lumen.com/8-ways-to-succeed-in-your-first-capture-the-flag-ctf/
 
Sumber: https://blog.lumen.com/8-ways-to-succeed-in-your-first-capture-the-flag-ctf/
  
Introduction
+
==Pendahuluan==
Last August, Black Lotus Labs participated in the DEF CON Red Team Village CTF. If that sentence reads as gobbledygook to you, read on as we unpack it. This blog will introduce CTFs and related security concepts, then show how the learning we gain by competing in CTFs helps inform the way Black Lotus Labs tracks cyber threat actors in the real world.
 
  
DEF CON is a hacker’s conference which normally takes place in the summer in Las Vegas. Along with Black Hat, DEF CON is one of the best-known conferences in the United States for hackers and computer security experts. DEF CON features virtual villages dedicated to specific topics such as lockpicking, IoT (Internet of Things) devices and social engineering. The general purpose of the event is to bring the security community together to share information and gain knowledge about tools and exploits that can be used by bad actors. By learning the latest tactics and sharing vulnerabilities, security practitioners can better defend networks from future attack.
+
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.
  
The “attacking” team in cybersecurity exercises is known as a Red Team. Their job is to adopt the methods and simulate the kinds of attacks that actual adversaries might use against an organization. The defenders in these scenarios are the Blue Team. The point of conducting red team/blue team exercises is to improve the security posture of the organization, not to cause actual damage. Related terms include “offensive security” (again, implying an attacking posture) and “pen test” (attempting to penetrate computer or cybersecurity defenses).
+
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).
  
CTF events have evolved from a children’s game where teams invade each other’s territory and attempt to capture and bring back the other team’s flag. In the area of cybersecurity, CTFs have become competitions to demonstrate expertise in attacking (or defending) computer resources. The flag in this context is typically a file or code a team recovers and provides as proof of their successful penetration of defenses.
+
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.
  
The essence of a CTF is puzzle solving. The challenges are created by and for people who like solving puzzles. One aspect potentially frustrating to beginners is that the goal of the challenge may not be spelled out. Take that in stride. If the challenge provides an IP address and a port, try connecting to it using a simple tool such as telnet or netcat. See what you can figure out. Every challenge has an intended solution.
+
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.
  
==Types Of Challenges==
+
==Tipe Challenge==
  
Here are some common types of challenges you might encounter in a CTF:
+
Berikut adalah beberapa jenis tantangan umum yang mungkin Anda temui di CTF:
  
* RCE – (Remote Code Execution) – Exploiting a software vulnerability to allow executing code on a remote server.
+
* RCE – (Remote Code Execution) – Memanfaatkan kerentanan perangkat lunak untuk mengizinkan eksekusi kode di server jarak jauh.
* Cryptography – Solving ciphers and code, ranging from classic ciphers (e.g., Caesar, transposition) to modern cryptography such as AES, 3DES, RC4 and Twofish.
+
* Cryptography – Memecahkan sandi dan kode, mulai dari sandi klasik (misalnya, Caesar, transposisi) hingga kriptografi modern seperti AES, 3DES, RC4, dan Twofish.
* Programming – Challenges which will require coding a solution in the computer language of your choice. Solving these manually would generally be too tedious or time-consuming.
+
* 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) – Finding clues hidden on the public internet and social media platforms. Bring your best Google-fu to tackle these.
+
* OSINT (Open Source Intelligence) – Menemukan petunjuk tersembunyi di internet publik dan platform media sosial. Bawa Google-fu terbaik Anda untuk mengatasi ini.
* Reverse engineering – Studying a binary executable, malware sample, or other file to understand its intent or behavior.
+
* Reverse engineering – Mempelajari file yang dapat dieksekusi biner, sampel malware, atau file lain untuk memahami maksud atau perilakunya.
* Forensics – Analyzing log files, network packet captures or other artifacts to detect how a hacker infiltrated a system.
+
* Forensics – Menganalisis file log, penangkapan paket jaringan, atau artefak lain untuk mendeteksi bagaimana peretas menyusup ke sistem.
* Steganography – The art and science of hiding (and detecting) messages in images, audio files and the like.
+
* Steganography – Seni dan ilmu menyembunyikan (dan mendeteksi) pesan dalam gambar, file audio, dan sejenisnya.
Tools
 
  
While you might use a limitless variety of tools to solve challenges, here are some to get you started:
+
==Tools==
  
* Python is an extremely useful scripting language, with a rich ecosystem of packages to add functionality. You should develop new code in python3 (python 2.7 the old version and no longer supported). Pip is the Python utility to use for installing additional packages.
+
Meskipun Anda mungkin menggunakan beragam alat yang tidak terbatas untuk menyelesaikan tantangan, berikut adalah beberapa untuk Anda mulai:
* CyberChef is a Javascript-based website for easily creating recipes, or a series of steps, to decode text or data. There is also a code repository if you want to deploy a standalone instance.
 
* Boxentriq is another website with a solid overview of ciphers and analysis tools.
 
* Kali is a Linux distribution which already includes many tools useful for penetration testing. More tools can be installed with the apt-get utility. You can also run Kali as a virtual machine on another computer.
 
* Dirb is a handy tool for scanning directories and files on a web server. Or try Gobuster – a similar tool implemented in the Go language, for improved performance.
 
* Metasploit is a powerful set of exploit tools for penetration testing. A related tool, Msfvenom, can create and encode an exploit payload.
 
* Pwntools is a Python-based framework for CTFs and exploit development.
 
* exploit-db is a useful website for finding proof-of-concept exploit code.
 
* IDA is an interactive disassembler and debugger. The professional version (IDA Pro) is both pricey and powerful. You can get started with the free version from the link above.
 
* Ghidra is a powerful (and free!) set of Java-based tools from the NSA for reverse engineering software. It includes a decompiler to convert binary code to high-level C code.
 
* Debugging tools allow you to interact with programs, pause execution, investigate the contacts of registers and memory locations, and many other things. They are indispensable for creating exploits. There are many options for debuggers, such as x64dbg, OllyDbg, or Immunity. On Linux, you also have an option of gdb, the Gnu debugger. To enhance gdb, you also might look at plugins such as PEDA or GEF (pronounced “Jeff”).
 
* Your brain! Sometimes the best analysis comes from thinking carefully about the problem you are presented, and how to leverage the information at hand.
 
  
==Best Practices And Suggestions==
+
* 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.
  
Here are some best practices and suggestions to follow if you’re just getting started:
+
==Best Practice dan Saran==
  
* Read the ground rules before you start – and follow them
+
Berikut ini beberapa praktik terbaik dan saran untuk diikuti jika Anda baru memulai:
Understand what is in scope and what is not. If a given IP address or port is off limits, respect that. The ground rules may vary from one competition to the next, but as a general guideline: don’t break them. Feel free to leverage resources to solve the challenges, but avoid actions which intentionally impede others from making progress. CTFs are designed to be learning opportunities, so avoid depriving others of the satisfaction of learning and solving.
 
  
* Take notes!
+
* '''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.
Once you start making progress it is easy to get carried away by your own momentum, but remember to take notes as you go along. You may need to backtrack, and a few notes can streamline the process of getting back to an earlier step. Record the essential things you discover such as IP addresses, flags, port numbers or command syntax. When brainstorming new approaches to try, review what you have already tried. Notes will also be handy if you want to write up your solution later.
 
  
* Try again later
+
* '''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.
Sometimes a challenge is based on a server being in a certain state, say, providing responses in a TCP session. Given that myriad teams may be deploying various hacking tools against a server, it is possible that the target machine will become unstable or unavailable. The organizers usually have a way to reset the state of the server. The same steps you attempted (which failed) might succeed for you a few hours later. (See above about taking notes!)
 
  
* Search the web
+
* '''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!)
You may find a hint (or even a partial solution) by searching on whatever information you have. Indeed, some types of challenges (such as OSINT) demand this. Check for clues hidden in materials that seem like mere window dressing, such as images. Are there pop culture references or memes which might guide your research? If you are stuck, look for similar challenges from the past.
 
  
It takes a significant time investment to create CTF challenges, and individual challenge may get re-purposed for another CTF. People enjoy posting their solutions, so you may find hints there.
+
* '''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.
  
* Try a different challenge
+
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.
Often there are challenges which are designed to be solved in sequence; try to understand the intended sequence. Sometimes the difficulty level is designed to ramp up slowly, so what you learn by solving one challenge in the series will help you learn what you need to do for the next challenge. There may be natural gates built into the series: until you exploit that bastion server, you will be unable to pivot to attack the one with an internal 10.x.x.x IP address.
 
  
Don’t assume you always have to tackle the challenges in sequence. Look for clues whether a later challenge can be attempted without solving a prior challenge.
+
* '''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.
  
If you are stuck on one type of challenge, give another type of challenge a try. Look for challenges that sound fun, that connect to things you already know, or that leverage skills you are trying to improve. If you are stuck on trying to exploit that server, try instead a cryptography challenge, an OSINT challenge or a programming challenge.
+
* '''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.
  
* Ask for a hint
+
* '''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).
Each challenge you try to solve was created by a human. They are likely proud of their creation and would like you to succeed. In the challenge description you might see the name of the author or their Twitter handle. Feel free to reach out and politely ask for help. Be succinct, but tell them what you’ve already tried. They just might be willing to drop a hint to get you unstuck, or to at least help you understand how the challenge was intended to be solved.
 
  
* Sharpen your tools
+
* '''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.
If you don’t already know Python, learn it… it will serve you well. If you are already an expert at Python, you might use the CTF as an opportunity to become more proficient at another language which intrigues you, such as Go or Rust. Think about how easy (or difficult) solving a particular challenge might be using different tools. If you routinely script things in Python, try writing a bash script (or vice versa).
 
  
* Do a post-mortem
+
==Beberapa CTF yang di sarankan==
At the end, review what worked and what failed. Look for published walkthroughs for the puzzles that stumped you to learn what you need to know for next time. Think about the skills you need to be successful and commit to improving these. Sign up for another CTF in a month or two… to motivate your learning and as a milestone to test yourself on what you have learned.
 
  
* A Few Suggested CTFs
+
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.
Note that there are hundreds of CTF events taking place every year. Some CTFs are virtual, while others happen on-site at a conference or meeting. They all present opportunities for learning and improving your cybersecurity skills.
 
  
Here are three examples of CTFs I would recommend, for a variety of skill levels:
+
Berikut adalah beberapa contoh CTF yang bisa di rekomendasikan, untuk berbagai tingkat kesulitan:
  
* Beginner:  PicoCTF provides year-round cyber security education content (PicoGym practice challenges) for learners of all skill levels. Their annual competition is aimed at high school teams.
+
* '''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: The Red Team Village website has a couple events a year. In 2021, the DEF CON 29, Red Team Village CTF opens with a 24-hour prequalification round starting August 5. Twenty teams will progress to an immersive pen testing scenario. Based on last year, the prequal challenges should remain available through the weekend. The team at Lumen found this CTF had a nice range of difficulty and some satisfying series of challenges.  We have been sharpening our skills and will try our hand again at the same competition this year.
+
* '''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: The main DEF CON CTF (separate from the Red Team Village CTF above), is currently run by “Order of the Overflow.” The qualifiers usually happen in May, with 16 teams competing in the finals during DEF CON in August.
+
* '''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.
  
Finally, ctftime.org lists many upcoming CTF events by date. The list does not include every CTF happening, but it is a good place to look for your next CTF. You can filter by location (on-line, or on-site) and restrictions (open or otherwise).
+
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).
  
==Conclusion==
+
==Kesimpulan==
  
CTFs are a fun way to learn and hone your skills, in the guise of a competition. If you have never tried one before, you may realize you have been missing out!
+
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!
  
If you are just getting started with CTFs, I recommend checking out the PicoGym practice challenges. You can sign up for free and try your hand at challenges from previous PicoCTF competitions. The practice challenges are available year-round, and the website has resources to get you started in tackling various challenge types.
+
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==
 
==Referensi==
  
 
* https://blog.lumen.com/8-ways-to-succeed-in-your-first-capture-the-flag-ctf/
 
* https://blog.lumen.com/8-ways-to-succeed-in-your-first-capture-the-flag-ctf/

Latest revision as of 08:47, 12 February 2023

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