CYBER SECURITY: Pengenalan CTF dan penyelesaian Bandit dari overthewire level 1 - 12

Apa itu CTF ?

Capture The Flag (CTF) adalah sebuah lomba di bidang keamanan siber. Dalam kompetisi ini, peserta, baik secara individu maupun dalam tim, akan diberi tugas untuk menyelesaikan berbagai tantangan. Tantangan ini biasanya melibatkan mencari celah keamanan dalam sistem, memecahkan kode, atau memahami cara kerja suatu program. Tujuannya adalah mengumpulkan "bendera" (flag), yaitu sebuah kode atau teks yang menjadi tanda bahwa peserta telah menyelesaikan tugas tersebut. Selain menantang, CTF juga jadi ajang belajar yang seru untuk mengasah kemampuan di dunia keamanan siber.

Berikut beberapa jenis permainan CTF yang sering dimainkan:

A. Jeopardy Style CTF

Dalam jenis ini, peserta diberikan banyak tantangan dalam beberapa kategori. Setiap tantangan punya tingkat kesulitan yang berbeda, dengan poin yang sesuai. Contoh kategori yang sering muncul:

• Kriptografi: Tantangan ini biasanya berupa pesan atau data yang disembunyikan dengan kode tertentu. Tugas peserta adalah memecahkan kode itu agar bisa membaca pesannya.

• Keamanan Web: Di sini, peserta harus mencari celah pada sebuah situs web, seperti kelemahan pada login atau formulir, yang bisa dimanfaatkan untuk mengambil informasi.

• Reverse Engineering: Peserta diberi program atau aplikasi, lalu diminta untuk membongkar dan memahami bagaimana cara kerjanya. Biasanya, ini dilakukan untuk menemukan kelemahan atau "jalan rahasia" dalam program tersebut.
Pemenang dari jenis ini adalah peserta atau tim yang berhasil menyelesaikan paling banyak tantangan dan mendapatkan poin terbanyak.


B. Attack-Defence CTF

Jenis permainan ini lebih seru karena melibatkan persaingan langsung antar tim. Setiap tim diberi server atau sistem yang harus dijaga agar tidak diserang lawan. Tugasnya ada dua:

• Melindungi server sendiri: Tim harus memastikan server mereka tetap aman dan tidak bisa ditembus oleh lawan.

• Menyerang server lawan: Di saat yang sama, tim juga harus mencari kelemahan di server lawan untuk menyerang dan mencuri bendera mereka.

Jenis ini membutuhkan kerja sama yang kuat dalam tim, karena harus menyerang dan bertahan secara bersamaan. Tim yang paling berhasil menjaga servernya sekaligus menyerang lawan biasanya akan menjadi pemenang.


C. 1 vs 1 CTF

Jenis ini adalah format terbaru yang dimainkan oleh dua orang. Peserta akan saling bertanding secara langsung, baik dengan menggunakan sistem yang sama ataupun masing-masing memiliki sistem sendiri.

• Tugasnya adalah menyerang lawan untuk mencari kelemahan di sistem mereka sekaligus melindungi sistem milik sendiri dari serangan.

Peserta harus berpikir cepat, multitasking, dan tetap fokus, karena harus menyerang dan bertahan dalam waktu yang bersamaan.
Pemenangnya adalah yang berhasil mengumpulkan bendera paling banyak dalam waktu yang ditentukan atau yang berhasil melumpuhkan lawan terlebih dahulu.

D. Macam macam kategori CTF jeopardy

1. Web Exploit :
Tantangan ini berhubungan dengan keamanan aplikasi web. Peserta harus menemukan dan memanfaatkan celah keamanan dalam situs web, seperti SQL Injection, XSS (Cross-Site Scripting), atau kelemahan login. Intinya, kamu diminta untuk "meretas" website secara aman untuk mendapatkan "flag".


2. Cryptography :
Tantangan ini melibatkan kode atau pesan yang dienkripsi. Peserta harus memecahkan kode tersebut dengan memahami teknik enkripsi, seperti Caesar cipher, RSA, atau hashing. Tugasnya biasanya untuk menemukan pesan rahasia yang tersembunyi.


3. Forensics :
Tantangan ini fokus pada menganalisis file atau sistem untuk mencari petunjuk. Peserta bisa diminta untuk meneliti log sistem, file gambar, audio, atau memori komputer untuk menemukan "flag". Misalnya, menemukan file yang tersembunyi dalam gambar (steganografi) atau menganalisis aktivitas mencurigakan.


4. OSINT (Open Source Intelligence) :
Tantangan ini menggunakan informasi yang tersedia di internet secara publik. Peserta diminta untuk menggali informasi dari media sosial, website, atau sumber lainnya untuk menjawab pertanyaan. Contohnya, mencari jejak seseorang atau memverifikasi suatu fakta berdasarkan data online.

E. Tempat untuk melakukan CTF

1. Pico CTF
2. pwn.college
3. CTFRST
4. overthewire
5. cryptohack
6. blockchain

Penyelesaian soal CTF bandit dari overthewire
Level 0 -> 1

Tugas: Temukan password yang terdapat dalam file readme di direktori home.

1. Login ke server menggunakan SSH:
ssh bandit0@bandit.labs.overthewire.org -p 2220

Penjelasan:
• ssh: Perintah untuk mengakses server melalui protokol SSH.
• bandit0: Username yang digunakan.
• bandit.labs.overthewire.org: Host server.
• -p 2220: Port server, yaitu 2220.

2. Gunakan perintah ls untuk melihat daftar file di direktori:
Penjelasan:
ls: Menampilkan daftar file/direktori.

3. Buka file readme menggunakan perintah cat:
Penjelasan:
cat: Membaca dan menampilkan isi file di terminal.

4. Salin password yang ditampilkan untuk login ke level berikutnya.

Level 1 -> 2

Tugas: Temukan password yang tersimpan dalam file -.

1. Login dengan username bandit1:
ssh bandit1@bandit.labs.overthewire.org -p 2220

2. Gunakan ls untuk melihat file:
3. File bernama - perlu dibuka secara khusus dengan memberikan path file. Gunakan:
Penjelasan:

• ./-: Menunjukkan file bernama - yang berada di direktori saat ini.
• Tanpa ./, perintah bisa salah karena - juga digunakan sebagai argumen.

4. Salin password dari isi file tersebut.

Level 2 -> 3

Tugas: Password disembunyikan dalam file bernama "spaces in this filename".

1. Login dengan username bandit2:
ssh bandit2@bandit.labs.overthewire.org -p 2220

2. Lihat file dengan perintah ls:
3. File dengan nama yang memiliki spasi perlu diakses menggunakan tanda kutip atau escape karakter:
Penjelasan:
• Tanda kutip diperlukan untuk menangani spasi dalam nama file.

4. Salin password dari isi file tersebut.

Level 3 -> 4

Tugas: Password disembunyikan dalam file tersembunyi di dalam direktori inhere.

1. Login dengan username bandit3:
ssh bandit3@bandit.labs.overthewire.org -p 2220

2. Masuk ke direktori inhere:
3. Lihat file tersembunyi menggunakan ls -a:
Penjelasan:
• -a: Menampilkan semua file, termasuk yang tersembunyi (berawalan .).

4. File yang tersembunyi bernama ...Hidding-Form-You Buka file tersebut:
5. Salin password dari isi file tersebut.

Level 4 -> 5

Tugas: Temukan file yang memiliki panjang 1033 byte dan dapat dibaca manusia di direktori inhere.

1. Login ke server:
ssh bandit4@bandit.labs.overthewire.org -p 2220

2. Masuk ke direktori inhere:
3. Gunakan perintah berikut untuk mencari file yang memiliki isi (dapat dibaca manusia):
Penjelasan:
grep .: Mencari baris yang memiliki karakter (berarti file tidak kosong).
• -r: Mencari secara rekursif ke dalam sub-direktori.
inhere/: Direktori tempat pencarian dilakukan.

4. Setelah mengetahui file yang berisi password, salin password tersebut.

Level 5 -> 6

Tugas: Temukan file yang memiliki atribut unik di direktori inhere.

1. Login dengan username bandit5:
ssh bandit5@bandit.labs.overthewire.org -p 2220

2. Gunakan find untuk mencari file dengan atribut tertentu:
Penjelasan:
! -executable: Mengecualikan file yang dapat dieksekusi.

3. Buka file tersebut dengan cat dan salin password.

Level 6 -> 7

Tugas: Password disembunyikan dalam file yang dimiliki oleh user bandit7, grup bandit6, dan ukurannya 33 byte.

1. Login dengan username bandit6:
ssh bandit6@bandit.labs.overthewire.org -p 2220

2. Gunakan perintah berikut untuk mencari file:
Penjelasan:
/: Mencari di seluruh sistem.
-user bandit7: File dimiliki oleh user bandit7.
-group bandit6: File dimiliki oleh grup bandit6.
-size 33c: Ukuran file 33 byte.
2>/dev/null: Mengabaikan pesan kesalahan.

3. Buka file tersebut dengan cat dan salin password.

Level 7 -> 8

Tugas: Password disembunyikan dalam file yang memiliki string "millionth".

1. Login dengan username bandit7:
ssh bandit7@bandit.labs.overthewire.org -p 2220

2. Gunakan perintah berikut untuk menemukan password:
Penjelasan:
grep: Mencari string tertentu dalam file.
"millionth": String yang dicari.
• data.txt: File tempat string dicari.

3. Salin password yang ditemukan.

Level 8 -> 9

Tugas: Temukan satu-satunya string unik dalam file data.txt.

1. Login dengan username bandit8:
ssh bandit8@bandit.labs.overthewire.org -p 2220

2. Gunakan perintah berikut:
Penjelasan:
sort: Mengurutkan isi file.
uniq -u: Menampilkan baris yang unik.

3. Salin password yang ditemukan.

Level 9 -> 10

Tugas: Temukan password di dalam file data.txt yang merupakan string dalam format hexadecimal dengan panjang 4 byte.

1. Login ke server:
ssh bandit9@bandit.labs.overthewire.org -p 2220

2. Jalankan perintah berikut:
Penjelasan:
• strings: Menampilkan teks yang dapat dibaca manusia dari file biner (seperti data.txt).
• grep '=': Menyaring hasil untuk mencari baris yang mengandung tanda =. Dalam tantangan ini, password disertai dengan tanda =.

3. Salin password yang muncul (tepat setelah =) untuk digunakan pada level berikutnya.

Level 10 -> 11

Tugas: Password disembunyikan dalam file data.txt yang telah dienkripsi dengan base64.

1. Login dengan username bandit10:
ssh bandit10@bandit.labs.overthewire.org -p 2220

2. Decode file data.txt yang dienkripsi menggunakan base64:
Penjelasan:
base64 -d: Mendekripsi (decode) teks yang telah dienkripsi dalam format Base64.

3. Password akan muncul. Salin untuk login ke level berikutnya.

Level 11 -> 12

Tugas: Password disembunyikan dalam file data.txt yang telah dikompresi beberapa kali.

1. Login ke server:
ssh bandit11@bandit.labs.overthewire.org -p 2220

2. Gunakan perintah berikut untuk mendekode teks yang disandikan dalam file data.txt:
Penjelasan:
• cat data.txt: Menampilkan isi file data.txt.
|: Mengarahkan output dari cat ke perintah berikutnya (tr).

tr '[A-Za-z]' '[N-ZA-Mn-za-m]':
tr: Perintah untuk mentranslasi atau mengganti karakter.
'[A-Za-z]': Semua huruf alfabet (besar dan kecil).
'[N-ZA-Mn-za-m]': Huruf alfabet digeser 13 posisi (ROT13).

Postingan populer dari blog ini

CYBER SECURITY: Pengenalan cyber security dan Command dasar dalam Termux ( Terminal Linux )