Capture the Flag

Capture the Flag

by surogatie

apa sih CTF ??

Capture The Flag atau biasa di sebut CTF adalah Event yang bersifat game dan Edukasi di bidang security komputer, nahh kompetisi hacking atau CTF ini merupakan perlombaan buat nyari celah dan nemuin bug keamanan di suatu jaringan komputer yang udah di sediain sama panitia.

Harus mulai dari mana??

perlu di pahami kalo soal CTF itu beraneka ragam, ada exploit,web,reverse enginering,forensic,kriptografi dan lain". jadi secara umum kita perlu belajar semuanya. Nhaa di CTF ini banyak soal yang saling berhubungan, misal ketika reversing, kadang ada enkripsi di dalemnya, atau ketika melakukan forensic, ternyata ditemukan file pcap yg buat kita harus tahu soal networking.

waahh Susah tuh,,,
Gk ada yg susah cuy,yg penting mau berusaha,,,,, :D yg ikut CTF juga gk cuman para master doang,,, dari newbie sampai master ada semua, So kita bisa belajar dari mereka,nyari pengalaman juga terutama, so jangan minder,,, seruu kok games nya,,, :D

untuk dasar si kita bisa belajar :

  • bahasa C dan assembly
  • forensic identifikasi dan ekstraksi dasar
  • Kemampuan googling buat mengetahui lebih lanjut mengenai ZPAQ
  • programming buat memodifikasi kode

itu dulu yang lain sambil jalan :D sering-sering nyobain aja reverse sendiri, ngutik" code,,,, ane kasih dikit penjelasan soal topik"nya ya gaes biar tambah gregett..... :D

  • Topik reversing dan exploit
    kita perlu mahami assembly dan bahasa C. kebanyakan soal diberikan dalam bentuk binary, dan kadang bisa didekompilasi menjadi C (dengan IDA Pro atau Hopper). Nah... kalo kita gk bisa baca bahasa C, kan percuma bisa pakai sama jalanin decompiler kalo gk paham outputnya. Bahasa C ketika dicompile akan dikonversi menjadi assembly lalu di assembler menjadi file biner. So saran ane: buat topik reversing dan exploit, pahami dasar-dasar bahasa C, minimal sampai ke topik: memory allocation, pointer, function pointer.
    kalo udah bisa mengkompilasi program dalam bahasa C, cobal reverse engineer sendiri program yg udah dicompile itu, biar dapet feel gimana sebuah program dikonversi dari teks dalam bahasa C menjadi bahasa mesin.abis itu, coba deh baca artikel-artikel tentang exploit, misal tentang buffer overflow, heap overflow, dsb. So tanpa dasar bahasa C,bakal sulit mengikuti topik ini.
  • Topik web
    kita bisa mulai pake yg mudah, misalnya PHP. Coba nulis program sederhana yg pakai session, akses database, tanpa menggunakan framework (jadi pakai PHP murni aja, jangan memakai Yii, Code Igniter, dsb yg sejenis). kalo udah cobain eksploit aplikasi sendiri pake (sql injection, session fixation, dsb). Di sisi client, kita perlu belajar HTML dan JavaScript (wajib, soalnya ini bahasa de facto buat aplikasi sisi client). Di sisi client ini ada beberapa yg perlu dipelajari dari sisi security, misalnya XSS. Pahami juga soal gimana client ama server berkomunikasi, artinya kita perlu belajar tentang protokol HTTP. kita harus paham hal-hal dasar kaya POST request, GET request, Cookie, dsb.
    walaupun ane nyaranin pake PHP, tapi di banyak CTF, bahasa lain banyak dipakai. Konsep security di berbagai bahasa ini masih serupa sih, So pengetahuan dari satu bahasa bisa dipakai di bahasa lain.
  • Topik forensic kita biasanya diminta ngekstrak data dari sebuah file. File ini bisa berupa disk image, bisa berupa network capture. disini, kita perlu tahu berbagai jenis filesystem dan tools-tools yg berkaitan sama itu, tools forensik misalnya Sleuthkit dan Volatility. Buat forensic yg berhubungan ama networking (sebenarnya ini juga masuk di topik networking), kita perlu paham banyak protokol dasar, misalnya HTTP, FTP, HTTPS, dsb. Cara mahamin protokol-protokol ini, selain banyak baca yaaa langsung cuss di di praktekin mengcapture packet pake wireshark dan baca hasilnya.
  • Topik kriptografi ini adalah topik paling abstrak, kita harus belajar mulai dari enkripsi paling sederhana (rot13, xor, dsb), sampai topik yg rumitkaya RSA, dan bahkan topik kriptografi yang gk standar lainnya. Berbagai tools standar (Seperti command line, openssl) perlu dikuasai.

hampir semua soal membutuhkan skill programing. Selain programming, kemampuan pake shell (misalnya bash) dan tools-tools command line lainnya juga sangat membantu (misalnya: gimana dapetin MD5/SHA1 sebuah file). Sebenarnya pake fitur-fitur shell juga bentuk programming (ada loop, if dsb) tapi kemampuan dan kecepatan shell terbatas

Terakhir yg gk kalah penting adalah kemampuan pake search engine (Google Fu). Ini sangat penting buat nyaari solusi soal. Kadang malah jawabannya langsung ketemu di Google,, :D , kadang juga perlu dimodif dulu jawaban yg udah di dapet dri mbah google.

Cara terbaik belajar pakai google adalah:
jangan langsung nanya ama orang kalo udah mentok (tanya ama rumput yg bergyang :D kwkwkw,,).
Coba habisin waktu sejam, dua jam buat nyari jawaban sendiri, dengan berbagai variasi kata kunci, kalau udah nyerah, baru nanya sama orang, plus sekalian tanya: gimana sih orang orang itu tau jawabannya.

okayy gaesss,,, itu sedikit coret"an ane, berani nyoba itu gahar gaes, kwkwkw
semoga bermanfaat.. :D
salam SEMPAK TELES ( SEMangat komPAK anTE LEmeS) :D