Posting ini akan membahas pengalaman saya mengambil sertifikasi Offensive Security Certified Professional (OSCP). OSCP merupakan sertifikasi di bidang security yang fokusnya adalah pentesting. Kebanyakan sertifikasi security hanya merupakan pertanyaan pilihan berganda, tapi dalam OSCP ujiannya adalah praktik langsung dengan mendapatkan akses ke 5 mesin dalam sebuah lab dalam waktu 23 jam 45 menit. Tidak ada soal pilihan ganda sama sekali. Setelah itu peserta perlu menulis laporan dalam 24 jam berikutnya untuk menjelaskan bagaimana bisa mendapatkan aksesnya.
Sebelum Agustus 2018 OSCP ini ujiannya tidak diawasi. Jadi seseorang diberi akses VPN ke lab, lalu ditunggu hasilnya besok. Hasilnya: banyak orang curang, memakai joki, meminta bantuan, dsb. Akhirnya sekarang OSCP ini diawasi dengan webcam dan screen sharing (istilahnya: proctored).
Buat yang tidak ingin membaca detail: saya lulus dengan akses lab 30 hari (saya hanya pakai sekitar 3 minggu) dan lulus di ujian pertama dengan skor 100 poin. Total biaya untuk sertifikasi ini dengan akses lab minimum dan sekali ujian langsung lulus adalah: 800 USD (~11 jt rupiah).
Perlukah sertifikasi ini?
Sebenarnya bagi saya pribadi, sertifikasi ini tidak terlalu perlu. Saya masuk ke dunia security tanpa sertifikasi apa-apa. Berbagai tulisan berbahasa Inggris yang ada di blog saya tinyhack.com dan berbagai karya di github dan tulisan di blog ini sudah lebih dari cukup untuk mendapatkan tawaran pekerjaan di berbagai negara. Saya sendiri saat ini masih kerasan di Chiang Mai dalam bidang software development dan belum berniat pindah ke mana-mana.
Karena saya tidak memiliki tekanan mendapatkan sertifikasi ini, saya tidak memiliki beban sama sekali dalam mengerjakan lab dan ujiannya. Dan ini membuat saya bisa mengerjakan dan mendapatkan sertifikasinya dengan relatif mudah.
Sebagai catatan: sering kali dalam hidup ini ijazah dan sertifikasi tidak menunjukkan skill tertentu. Tapi tetap saja ijazah dan sertifikasi bisa membuka banyak jalan. Contohnya: jika ingin bekerja di luar negeri, ijazah sarjana atau master akan sangat memudahkan untuk urusan Visa dibandingkan ijazah SMP atau SMU. Jika ingin melamar pekerjaan tertentu, kadang-kadang HR sudah membuang duluan CV tanpa sertifikasi padahal mungkin kemampuannya lebih hebat.
Sertifikasi OSCP ini cukup dipandang positif di banyak tempat (internasional). Setidaknya jika seseorang lulus OSCP (secara jujur), maka kemampuan memakai berbagai tool dasar, kemampuan menggunakan eksploit baru tanpa bergantung metasploit sudah teruji. Sedangkan pada sertifikasi lain yang teruji hanya kemampuan menghapal teks.
Meski OSCP ini cukup dikenal, tapi ada juga perusahaan-perusahaan yang butuh sertifikasi “hapalan” seperti CEH. Menurut saya seseorang yang sudah lolos OSCP akan relatif mudah mengambil sertifikasi lain yang sifatnya hapalan.
Untuk mahasiswa atau orang IT secara umum (baik itu software developer, sysadmin dsb) yang ingin terjun ke dunia security atau pentesting, sertifikasi ini cukup disarankan. Dengan sertifikasi ini, akan cukup mudah untuk mencari pekerjaan di dunia pentesting.
Jika Anda merasa bahwa Anda sudah jago dalam bidang security tapi tidak punya karya yang bisa ditampilkan (misalnya karena kebanyakan yang Anda lakukan adalah illegal), maka ikut OSCP ini juga bisa jadi jalan untuk menunjukkan kemampuan Anda secara legal. Kalau memang sudah beneran jagoan, maka ikut OSCP ini akan sangat mudah. Tapi kalau ternyata belum sejago itu, berarti masih ada hal-hal yang ternyata belum dikuasai dan perlu diperdalam.
Motivasi pribadi
Lucunya beberapa hari sebelum ujian, saya baru mendapatkan wawancara teman saya Tintin tahun lalu:
https://book.theprasojos.id/download/169/pdf/169.pdf
Kalau merasa tidak perlu, lalu kenapa mengambil sertifikasi ini? Tahun ini saya sedang ingin belajar banyak hal. Menurut saya perlu untuk sesekali merefresh ilmu. Minat saya terlalu banyak, dari mulai elektronik, embedded system, security, jaringan, software development, sampai AI. Awal tahun saya sudah mengambil 6 course dalam topik AI dari Coursera. Lalu saya menimbang-nimbang ingin belajar topik tertentu dengan sertifikasi.
Saya memiliki beberapa kriteria sertifikasi:
- Sertifikasinya yang ada nilainya, andaikan suatu saat dibutuhkan di masa depan (contoh sertifikasi lain yang berharga adalah dari Cisco, sedangkan sebagian sertifikasi tidak dipandang sama sekali)
- Tidak akan expired (saya malas memperbarui)
- Bisa dilakukan online (saya malas datang ke tempat tertentu untuk sertifikasi saja)
Sebenarnya saya tadinya lebih tertarik ke berbagai sertifikasi jaringan (seperti dari Cisco atau Juniper), tapi semua sertifikasinya butuh diperbarui setiap beberapa tahun padahal sertifikasinya tidak akan saya pakai (tidak berniat pindah jadi network admin).
Pilihan akhirnya jatuh ke OSCP. Sebenarnya ada juga sertifikasi lain dari Offensive Security: OSCE dan OSEE. OSCE berfokus pada exploit development level menengah dan OSEE di level yang lanjut. Tapi sepertinya saat ini kebutuhan di banyak tempat baru di level OSCP, jadi saya putuskan untuk mengambil OSCP. Saya sering menyarankan orang mengambil OSCP, tapi saya sendiri belum pernah, jadi ya sekalian biar bisa merasakan nasihat saya.
Sebagai informasi saja: jika tertarik bekerja di tempat yang berfokus pada reverse engineering dan exploit development, saya lebih menyarankan menyelesaikan Flare On. Jika selesai Flare On, kita bisa langsung wawancara dengan FireEye. Dari Flare On saya juga jadi kenal banyak orang di dunia malware dan low level research yang menawarkan pekerjaan dan proyek di bidang RE.
Materi dan Lab
Saat ini saya menjadi remote pentester untuk PT Xynexis (sudah beberapa tahun jadi pekerjaan part time, pekerjaan full time saya tetap di Chiang Mai). Xynexis mendukung rencana saya mengambil OSCP, jadi saya mendaftar di bulan April, dan mengambil lab 30 hari (biayanya 800 USD), jika ingin 60 hari 1000 USD, dan jika ingin 90 hari: 1150 USD. Akses lab di sini artinya secara remote dengan VPN.
Sebagai catatan: waktu kita mendaftar kita tidak langsung akan bisa mendapatkan langsung akses lab maupun materi. Biasanya akses lab dan materi akan didapatkan beberapa minggu sesudah kita mendaftar nanti. Dalam salah satu langkah pendaftaran akan ditunjukkan kapan lab bisa tersedia. Jadi jika ingin mengakses lab mulai saat tertentu (misalnya pas liburan), maka daftarlah jauh-jauh hari.
Materi yang diberikan berupa Video dan satu diktat. Saya hanya menonton sekilas beberapa videonya. Bagi saya melihat video memakan waktu terlalu lama dan menurut saya materinya terlalu sederhana. Untuk pemula, video akan sangat membantu.
Perlu diperhatikan bahwa materi dan video di-watermark per orang, jadi tidak boleh dibocorkan/diberikan pada siapapun. Risikonya adalah: OSCP bisa dicabut sertifikasinya dan akan di-ban tidak boleh mengambil sertifikasi lain apapun dari offensive security.
Diktat yang diberikan juga hanya menyentuh berbagai permukaan saja. Tapi ini tidak apa-apa, karena dalam kehidupan nyata kita harus banyak mencari di Google untuk informasi keamanan dan eksploit terbaru. Ada banyak soal latihan yang bisa dikerjakan. Jika kita mengerjakan semua soal latihannya, maka jawabannya bisa dituliskan dan digabung dengan laporan lab untuk mendapatkan 5 point ekstra. Point ekstra ini hanya berguna kalau misalnya ketika ujian nilai kita ada di ambang batas.
Selain video dan diktat, peserta juga mendapatkan akses ke forum OSCP. Di dalamnya ada beberapa informasi ekstra dan diskusi mengenai masing-masing mesin. Tentunya selain forum resmi, peserta juga bisa bergabung dengan berbagai komunitas lain di tempat lain (misalnya di reddit).
Tidak ada panduan khusus dalam mengerjakan lab. Intinya adalah kita harus bisa masuk ke sebuah mesin dan mendapatkan file bukti di dalamnya. Di forum diberikan satu contoh bagaimana masuk ke sebuah mesin, lalu sisanya perlu dipikirkan sendiri. Jika bingung, kita bisa membaca sedikit hint di forum (tapi hintnya biasanya tidak jelas). Ada puluhan mesin yang bisa kita hack dalam beberapa jaringan yang terhubung, awalnya kita hanya diberi akses ke jaringan publik dan jaringan lain baru bisa terbuka setelah kita menyelesaikan mesin tertentu.
Walau punya akses 30 hari, saya hanya mengakses lab sekitar 3 minggu pertama, menyelesaikan seluruh jaringan publik dan sebagian jaringan lain. Seminggu terakhir saya sudah sibuk dengan hal lain. Saya juga sempat berlatih di Hack The Box (HTB) menyelesaikan sekitar 10 mesin. Sebagian besar mesin di HTB menurut saya lebih sulit dari lab OSCP.
Akses lab saya berakhir di pertengahan Mei dan saya menjadwalkan ujian di awal bulan Juli. Jadwal ujian dipilih oleh kita sendiri dalam batas tanggal dan slot waktu yang tersedia. Sebenarnya menurut saya awal Juli sudah terlalu jauh dari tanggal lab, tapi saya perlu mengatur agar tidak mengganggu jadwal kegiatan hidup yang lain.
Ujian
Sebelum ikut ujian, baca dulu segala macam aturan di URL ini dan pahami semuanya. Kalau ada yang kurang jelas, tanyakan pada offensive security:
https://support.offensive-security.com/oscp-exam-guide/
hal-hal yang sering tidak diperhatikan peserta:
- Ada batasan pemakaian tool metasploit (cuma boleh maksimum sekali, tidak boleh diulangi jika gagal)
- Screenshot sangat penting untuk laporan, jangan sampai terlewat requirementnya (harus terlihat IP server dan isi file bukti)
- Isi file bukti harus dikirimkan ke control panel. Cek lagi sebelum ujian selesai. Saya sempat salah klik dan ada submission terhapus, untungnya ini saya cek ulang
- Ada tool-tool yang tidak boleh dipakai (misalnya sqlmap dan berbagai tool otomatis lain, cek di url di atas untuk lebih jelasnya)
Saya pernah membaca: ada yang ujiannya nilai 100 tapi gagal karena memakai metasploit 2 kali. Jadi perhatikanlah hal-hal kecil seperti itu. Saya sendiri tidak memakai metasploit sama sekali ketika ujian.
Untuk ujian sebaiknya kita melakukannya di tempat yang tidak terlalu banyak gangguan. Pastikan koneksi internet stabil dan punya cadangan akses internet misalnya via 4G. Sekitar 15 menit sebelum ujian kita akan diberi email instruksi bagaimana melakukan koneksi. Akan ada instruksi spesifik yang diberikan mengenai target, jadi bacalah ini dengan teliti. Dijelaskan masing-masing poin dari tiap mesin, jadi kita bisa mengatur strategi mesin mana duluan yang akan kita serang.
Untuk bisa lolos minimal kita mendapatkan skor 70 dari 100. Ada target yang terbagi dalam dua bagian: mendapatkan shell user dan shell root/administrator. Nilai poin adalah jika kita mendapatkan akses penuh menjadi root/administrator, tidak diberikan penjelasan berapa poinnya jika hanya berhasil shell user saja (kalau saya baca di forum nilainya: 50% atau kurang dari poin penuh). Perlu diperhatikan bahwa laporan juga harus lengkap, jadi walaupun nilai sudah cukup di ambang batas ada kemungkinan tidak lulus jika laporan tidak lengkap.
Ketika ujian disarankan memakai Virtual Machine (VM) Kali Linux, tapi saya memutuskan memakai Linux saja (Debian) langsung tanpa VM di laptop Thinkpad X230 (dengan RAM 6 GB). Waktu berlatih/mengakses lab saya memakai VM Kali, dan ternyata di laptop saya ada beberapa tool yang lupa saya install dan memakan waktu saya. Kalau Anda khawatir dengan berbagai hal, pakailah VM.
Bos saya tahu mengenai ujian ini dan saya diberi tawaran oleh bos untuk menggunakan satu ruangan di kantor untuk ujian jadi bisa bebas dari gangguan anak-anak. Saya memilih waktu mulai jam 9 pagi, istirahat makan siang sejam dan istirahat makan malam 30 menit, saya selesai seluruhnya 100 poin pada jam 9 malam. Sebenarnya sore hari saya sudah memiliki poin yang cukup untuk lulus, tapi saya masih penasaran dan akhirnya menyelesaikan semua sisanya.
Karena ada jeda waktu cukup lama dari sejak terakhir mengakses lab dan waktu ujian, saya tidak langsung bisa fokus dan bahkan 3 jam pertama hanya berhasil mendapatkan user shell di mesin 20 poin (artinya nilai saya baru dapat 10 poin atau kurang). Andaikan bisa langsung fokus, maka seharusnya bisa selesai jauh lebih cepat.
Beberapa tips yang bisa saya berikan adalah:
- OSCP adalah sertifikasi level awal, kita tidak diminta membuat eksploit sendiri. Jika eksploit tidak ditemukan di exploit-db, maka kemungkinan bukan itu targetnya. Kadang saya berpikir terlalu jauh ingin membuat eksploit sendiri.
- Jika eksploit tidak jalan, cek segala macam detailnya dan apa yang membuat eksploitnya tidak jalan
- Laporan merupakan komponen sangat penting. Jangan lupa memastikan bahwa catatan dan screenshot sudah lengkap. Saya sempat kehilangan catatan karena ketika ditinggal makan siang, komputer saya sleep dan hang, jadi perlu restart paksa
- Berlatihlah dan buat catatan ketika mengerjakan lab. Jika sudah cukup berlatih di lab, maka seharusnya sudah terbentuk kebiasaan yang baik dan terstruktur dalam menangani sebuah mesin: nmap, nikto, gobuster, dst.
- Kerjakan latihan buffer overflow di diktat dan pahami semuanya
Jika kita gagal dalam ujian, maka ada dua jalan yang bisa diambil:
- mengambil ujian saja lagi (150 USD)
- mengambil perpanjangan lab sehingga dapat gratis kesempatan ujian, minimal perpanjangan akses lab 15 hari (200 USD)
Kali pertama mendaftar kita harus membeli akses lab dengan satu kali kesempatan ujian, tidak bisa membeli ujian saja. Jadi biaya minimal sertifikasi ini jika langsung lulus adalah 800 USD (30 hari lab dan sekali ujian) atau nilai rupiah saat ini sedikit lebih dari 11 juta rupiah.
Jika Anda gagal, jangan terlalu kecewa karena sertifikasi ini memang termasuk sulit. Silakan baca pengalaman berbagai orang di https://reddit.com/r/oscp/ dan berbagai forum lain sejenis. Beberapa orang bahkan mengambil ujian ini sampai lebih dari 5 kali.
Setelah ujian, ada waktu 24 jam untuk menyelesaikan laporan. Seperti materi, laporan ini juga tidak boleh dibocorkan/dishare ke siapapun, jika ketahuan maka akan dicabut sertifikasinya dan di-ban tidak boleh ikut sertifikasi Offensive Security yang lain. Ada instruksi sangat spesifik bagaimana mengirimkan hasil laporannya. Jangan sampai salah, karena nilai bisa menjadi nol.
Pengumuman hasil maksimum akan datang dalam 5 hari kerja setelah laporan dikirimkan. Banyak orang dapat hasil dalam 2-3 hari kerja, tapi dalam kasus saya: tepat 5 hari, bahkan sudah hari kerja ke 5 dan hampir jam 5 sore waktu New York baru dapat hasilnya. Jadi bersabarlah jika belum ada hasilnya.
Ketika menunggu hasil, saya sendiri sempat sedikit khawatir karena setelah membaca ulang laporannya ada beberapa hal yang terlewat (padahal sudah dibaca ulang beberapa kali sebelum dikirimkan):
- Ada screenshot yang tidak menunjukkan apa perintahnya, hanya outputnya saja
- Ada screenshot yang terlewat saya buat (akhirnya hanya dijelaskan dengan kata-kata)
- Ada beberapa salah ketik
Saran saya adalah: coba pelajari contoh laporan yang diberikan, dan buatlah kira-kira seperti itu. Biasakan melakukan screenshot seluruh layar dan juga me-log seluruh output terminal ke file. Kalau perlu, cobalah membuat laporan untuk mesin di lab agar terlatih ketika ujian nanti.
Penutup
Dari materi pelajaran saya hanya mendapatkan sedikit ilmu baru, tapi labnya cukup berguna untuk membentuk kebiasaan baik bagi saya agar meminimalisasi hal yang terlewat. Saya biasanya hanya melakukan pentest aplikasi mobile dan web eksternal jarang pentest internal, jadi pengalamannya cukup berguna.
Semoga pengalaman saya bisa berguna untuk orang lain karena saya lihat berbagai tulisan OSCP berbahasa Indonesia dibuat di jaman sebelum proctored test. Jangan takut dengan ujian yang proctored (diawasi), karena jika kita memang mampu, tidak peduli diawasi atau tidak, maka akan tetap bisa melakukannya. Anggap saja tidak ada yang melihat apa yang kita lakukan.
Memang layak dijadikan panutan.
halo yohanes, boleh minta nomor WA? saya mau ajak project pentest. thanks
Maaf saat ini saya tidak melayani pentest lagi (eksklusif dengan PT Xynexis).
Bos, ada info jasa JOKI OSCP gak? HELPPPP
Terimakasih mas, sangat inspiratif sekali, kemungkinan saya ambil ini sekitar 2 tahun lagi sambil nunggu dana, ada saran belajar di situs apa ngga mas? sambil nunggu pengumpulan dana
Bisa belajar dari hackthebox dulu, banyak mesin setara OSCP di situ.