Bagaimana saya menyewa OSCP



Rekan-rekan saya dan saya mengambil kursus OSCP dan lulus ujian. Pada artikel ini saya akan menjelaskan secara rinci bagaimana ujian lulus, apa jebakannya dan apakah permainan itu layak untuk ditiru.

Bagaimana semua ini dimulai


Kolega saya c4ndua tahun yang lalu dia mengatakan bahwa kita harus lulus OSCP dan saya setuju, tetapi seperti yang sering terjadi dengan ide-ide bagus, kami membuat skor menunda ide bagus ini.

Setahun kemudian, perusahaan kami memiliki kesempatan untuk pelatihan gratis tentang hal-hal yang berguna bagi karyawan (sayangnya, pemahaman saya tidak sesuai dengan manajemen dan kursus sommelier masih menolak untuk membayar saya). Dengan usaha mulia untuk lulus OSCP ditarikGolovnyaD, mengatakan bahwa alasan kami tentang pekerjaan begitu-begitu dan bahwa kami perlu melanjutkan.

Dan kami mulai.

Apa yang kita ketahui tentang OSCP


Kami tahu bahwa OSCP terdiri dari 3 bagian: materi teoretis (selanjutnya saya akan menyebutnya pdf), akses ke laboratorium dengan mesin virtual (selanjutnya saya akan memanggil lab) dan ujian.

Awal jalan


Ternyata, akses ke lab dapat dibeli selama 30, 60 atau 90 hari, harganya $ 999, $ 1199, $ 1349. Karena kami tidak ingin mencurahkan seluruh waktu luang kami hanya untuk OSCP, dan perbedaan antara 30 hari dan 90 hanya $ 350), kami memilih akses selama 90 hari.

Pada 9 Oktober 2019, saya membayar kursus, berharap untuk bersenang-senang selama 3 bulan, betapa salahnya saya, saya bersenang-senang selama 5 bulan. Dan inilah alasannya:

pengaturan pertama: Anda tidak dapat memulai pelatihan besok. Dalam kasus saya, tanggal mulai terdekat adalah 20 Oktober (seperti yang mereka katakan di forum, waktu rata-rata untuk memulai setelah pembayaran adalah 2 minggu).

Kemudian pada 9 Oktober mereka mengirim paket uji (Paket Konektivitas) untuk menghubungkan ke VPN. Dilihat oleh tes mereka, saya tidak punya masalah dengan koneksi VPN (ternyata mereka kemudian melakukan tes yang disebut, saya akan memberitahu Anda nanti). Kemudian mereka mengirim tautan ke majelis mereka Kali (dalam penampilan tidak berbeda dari biasanya), yang secara khusus disiapkan untuk bagian itu.

Kursus dimulai


Secara formal, kursus dimulai pukul 3 pagi pada tanggal 20 Oktober, tetapi sepucuk surat dengan materi kursus tiba pukul 03:09 (saya melihat perbedaan ini hanya sekarang ketika saya sedang menulis artikel). Surat dengan materi pelajaran berisi tautan ke:

  • 380 halaman pdfku
  • rekaman video ke pdfk ini
  • Paket Konektivitas VPN

Dan di sini kita menunggu pengaturan kedua: tautan unduhan berlaku selama 72 jam dan jika mereka tidak punya waktu untuk mengunduh, mereka akan meminta tambahan $ 100, setelah itu mereka dengan hati-hati mengatakan membuat cadangan dan memasukkan lelucon: β€œ Ingatlah kata bijak:β€œ Ada dua jenis orang. Mereka yang membuat cadangan dan mereka yang belum kehilangan segalanya karena sistem crash. Β»
Juga, di semua forum, disarankan untuk memulai kursus dengan tugas-tugas dari pdfk. Kita semua melakukan hal itu.

Tugas dari PDF


Tugas dari pdfk perlu dilakukan untuk mempelajari alat dan teknik baru, untuk mengingat cara menggunakan alat dan, mungkin, untuk mendapatkan 5 poin tambahan dalam ujian. Dari yang mengejutkan: di pdfk tidak ada sepatah kata pun tentang Burp Suite dan PowerShell Empire (seharusnya ditambahkan dalam pembaruan Februari).

menjalankan ceritanya dari dasar-dasar: kami diajari ke google, gunakan nc.exe (netcat), tcpdump dan wireshark dan alat-alat lain yang lebih cenderung terkait dengan rekayasa sistem, daripada keamanan. Hanya di halaman 113 dari 380 kita berkenalan dengan nmap!

Kami juga diajarkan untuk menggunakan alat seperti OpenVAS, yang tidak dapat digunakan dalam ujian. Juga, contoh sering menggunakan meterpreter, yang juga dilarang (hanya dapat digunakan pada satu mesin). Secara umum, saya masih tidak mengerti apa yang menyebabkan pelarangan meterpreter ini berjalan, jelas bahwa Anda dapat melarangnya untuk meningkatkan dengan bantuannya, tetapi akan lebih mudah untuk tetap membalikkannya dengan beberapa konsol.

Menjadi menarik dari halaman 148 di mana buffer overflow dimulai, dan di sini saya menangkap masalah dengan koneksi VPN. Ternyata, ISP saya membunuh ukuran paket, dan VPN di lab dibangun menggunakan UDP dan paket saya dengan buffer overflow sama sekali tidak merangkak masuk dan menghilang. Solusinya sederhana - perbaiki konfigurasi dengan menambahkan baris:

tun-mtu 1492
mssfix 1370

Tetapi sangat disayangkan bahwa pemeriksaan semacam itu tidak dilakukan oleh penyelenggara OSCP, karena di forum mereka banyak yang mengeluh. Saya kehilangan 5 jam dan banyak kegelisahan dalam hal ini (mencapai solusi sendiri, kemudian saya menemukan banyak cabang di forum tentang ini).

Untuk menulis buffer overflows dan melakukan segala macam percobaan dengan windows, mereka memberi kita mesin virtual di dalam lab, ini cukup nyaman. Untuk keseluruhan kursus, saya tidak menginstal satu mesin virtual saya sendiri (setelah saya mencoba menginstal Windows XP SP2, tetapi tidak menemukan torrent yang berfungsi).

Secara umum, tugas untuk buffer overflows ditulis dengan sangat baik (untuk Windows dan Linux), akan lebih baik untuk melakukan ini dalam langkah-langkah, yang diajarkan di universitas. Kursus OSCP jelas mengatakan bahwa mem-bypass DEP dan ASLR tidak termasuk dalam kursus.

Kemudian mereka memberi tahu kami bagaimana menyiapkan exploit, mentransfer file, berbicara tentang eskalasi hak istimewa, tetapi dengan itu kami masih bermain cukup di lab, jadi tidak apa-apa.

Berikutnya adalah blok pada serangan pada pengguna (Serangan Sisi Klien), di mana saya menangkap masalah dengan mesin Kali "khusus disiapkan", itu memiliki versi Java yang lebih baru, dan Java Appet saya tidak berfungsi pada mesin uji. Lain 5 jam googling dan menyelesaikan masalah Anda sendiri dan, tentu saja, ada utas di forum tentang ini)

Secara umum, semuanya dapat ditemukan di forum, ini adalah tempat yang sangat berguna jika Anda terjebak di jalan buntu, tapi saya mengerti ini hanya pada akhir kursus.

Selanjutnya datang serangan di web - XSS, LFI, RFI, SQL injection dan banyak lagi. Ditulis dengan jelas dan baik, memberi contoh poking. Mereka berbicara tentang sqlmap, yang juga tidak dapat digunakan dalam ujian, tetapi, tentu saja, berguna untuk diketahui.

Serangan lebih lanjut pada kata sandi (brute force dan mendapatkan hash untuk Windows dan Linux) sangat luas bagi saya, saya meninggalkan beberapa tugas untuk nanti (dan apakah sudah di dalam lab). Pada akhirnya ada cerita tentang metasplit dan bagaimana menggunakannya, dengan sangat rinci, dengan menulis modul Anda sendiri. Ini juga memberikan contoh peretasan ke perusahaan fiktif yang menggunakan banyak teknik yang dijelaskan (membutuhkan 34 halaman).

Secara umum, dari semua pdf pada kasus 100 halaman (dan ada banyak screenshot). Butuh waktu 2 minggu untuk membacanya dan menyelesaikan tugas (tapi saya tidak terburu-buru).

- , , , .


Memecahkan laboratorium, diputuskan untuk tidak menggunakan Metasploit dan Meterpreter, karena mereka tidak dapat (hanya mungkin satu kali) digunakan dalam ujian.

Laba terdiri dari sekitar 60 mesin virtual, semua mesin dibagi menjadi 4 subnet (jaringan publik, jaringan pengembang, jaringan departemen TI, jaringan administrator). Awalnya, akses hanya di jaringan publik (pada kenyataannya, akses ada di semua jaringan, kami tidak bisa membalikkan mesin dari jaringan non-publik). Di lab (saya menulis tentang acara sebelum pembaruan Februari), semua mesin cukup lama, Windows terbaru adalah server Windows 2012R2 (cukup banyak Windows XP), mesin Linux Ubuntu 14 (Ubuntu 8 juga ditemukan di lab), Centos 7 (Centos 5 juga bertemu )

Secara teori, seluruh lab harus diselesaikan menggunakan kerentanan yang diterbitkan sebelum 2016, tetapi saya tidak menetapkan batasan seperti itu pada diri saya sendiri.

Laba (akses tidak istimewa diaktifkan)


Secara umum, sumur laboratorium sesuai dengan apa yang dinyatakan dalam pdfk. Dalam hal memperoleh akses yang tidak terjangkau, Anda perlu menggunakan berbagai teknik (termasuk serangan terhadap klien), mengumpulkan kata sandi dari mesin yang rusak dan menggunakannya kembali, meluncurkan kasar dan sebagainya. Mungkin topik terburuk adalah injeksi SQL dan injeksi buta - mereka belum pernah terlihat sebelumnya.

Algoritma untuk inisialisasi akses kemana-mana seperti dalam kehidupan:

  1. Pencacahan port dan layanan
  2. direktori kasar untuk web
  3. mendefinisikan produk dan versi
  4. mengeksploitasi pencarian dan modifikasi

Beberapa mesin membutuhkan penulisan eksploit Anda sendiri dengan blackbox, tetapi tidak ada yang rumit - LFI / RFI. Yang terpenting, saya senang bahwa hampir tidak ada mobil dari kategori KKP, di mana ada gambar di dalamnya ada juga gambar yang disembunyikan, di dalamnya ada arsip zip yang disembunyikan, dan sebagainya.

Laba (eskalasi hak istimewa)


Bagi saya itu adalah bagian yang paling menarik dan saya butuh sebagian besar waktu (pada awalnya).

Windows


Untuk mesin windows, saya menggunakan set split ini.

Tetapi pada beberapa mesin Windows semua kerentanan "kernel" ditambal secara khusus dan saya harus mencari cara untuk bangun. Ada mobil untuk setiap selera, layanan, startup, tugas terjadwal, perangkat lunak yang diinstal. Perangkat lunak yang diinstal tentu saja merupakan kegagalan besar, karena sudah jelas bahwa mobil disiapkan dan jika hanya satu aplikasi yang diinstal pada sistem, maka Anda dapat memanjatnya.

Linux


Untuk Linux, tentu saja, Anda selalu dapat menggunakan kerentanan kernel, sapi kotor yang dicintai semua orang bekerja di separuh mesin, saya menggunakan versi ini , walaupun itu tergantung pada hampir semua mesin di lab, itu berhasil membuat pengguna dengan akses ssh.

Tetapi hampir di mana-mana Anda dapat bangkit melalui kerentanan dalam konfigurasi, LinEnum membantu di sini , dan untuk malas -linux-smart-enumeration

Secara umum, tidak layak menyalahgunakan kerentanan kernel di lab, jika Anda ingin mempersiapkan ujian, lebih baik menggunakan kerentanan konfigurasi, karena semua mesin dalam ujian akan menggunakan kernel baru dan pembaruan yang diinstal (setidaknya saya mendapatkannya).

Eksplotasi di lab


Saya meninggalkan bagian pasca eksploitasi untuk nanti, tetapi setelah mengumpulkan semua kata sandi dan melihat semua database, file konfigurasi dan log, Anda dapat dengan mudah mengakses banyak mesin (terutama di jaringan non-publik).

Banyak mesin memecah rantai, penting untuk memahami ini, terutama untuk serangan pada klien, jika mobil itu disebut surat, maka mungkin seseorang akan melekat padanya sebagai klien email), dan jika HELPDESK, maka pergi untuk membuka tiket.

Empat besar


Ada 4 mobil di lab yang dianggap paling kompleks dan beberapa merekomendasikan meninggalkannya pada akhirnya, ini adalah: Nyeri, Menderita, Gh0st dan Humble. Saya tahu tentang kehadiran mereka sejak awal, tetapi saya tidak secara khusus melarikan diri dari mereka atau tidak mencari mereka. Pada saat saya memutuskan untuk kembali kepada mereka, dua dari empat saya sudah rusak.

Kesan saya tentang mereka:

  • Nyeri adalah mobil yang keren, rumit dalam mendapatkan kulit inisialisasi dan dalam pemeliharaan.
  • Penderitaan - langkah awal yang rumit, dalam beberapa tahap, saya mendapat sesuatu yang serupa pada ujian. Dorongan sederhana.
  • Gh0st - awal dan inisialisasi seperti mesin CTF, tetapi salah satu perangkat tambahan paling indah di seluruh lab.
  • Rendah hati - bisa dibilang inisialisasi berjalan paling kompleks di lab, tetapi dorongan sederhana.

Secara umum, ini adalah mobil-mobil keren, dan saya hampir yakin bahwa jika Anda memecahkannya di lab Anda, maka Anda akan lulus ujian tanpa masalah, saya memecahkan yang Humble lebih lama daripada saya melakukan ujian.

Top saya akan meliputi:

  • Sherlock - proof ternyata dalam beberapa menit, dan Anda bisa duduk lama untuk membalik.
  • beta adalah mesin yang sangat vital, baik dalam memperoleh akses primer maupun dalam peningkatan (bash terbatas).

Hasil lab


Secara umum, lab membuat kesan yang baik, saya menghancurkan semua mobil yang saya ambil (sekitar 45 mobil).

Secara umum, saya ingat banyak hal yang tidak sering digunakan.

Persiapan Ujian


Beberapa hari sebelum akhir akses ke lab, saya memutuskan sudah waktunya untuk mendaftar untuk ujian. Di sini saya salah, lebih baik melakukan ini sebelumnya. Tanggal terdekat pada hari libur hanya sebulan kemudian pada tanggal 23 Februari (dan kemudian pada jam 9 pagi).

Kesimpulan dan pengaturannya tiga - jika Anda ingin mengikuti ujian pada waktu yang tepat dan mendaftar untuk akhir pekan sebelumnya.

Saya juga mulai menulis laporan di lab (saya perlu menggambarkan 10 mobil, jika Anda ingin mendapatkan 5 poin tambahan), contoh standar dari laporan ini terlalu cerdas, jadi saya mulai menggunakan yang ini. Untuk keterangan terperinci, saya memilih mobil atau kasing yang menarik di mana Anda segera mendapatkan root.

Saya perlu mengambil 10-15 tangkapan layar tambahan, jadi saya sarankan memiliki akses ke lab saat menulis laporan ini.

Persiapan Ujian. Latihan. Binarisme


Dalam ujian, salah satu komponennya adalah menulis eksploit untuk meluap buffer, itu memberikan 25 poin, dan, tidak tahu bagaimana melakukannya dengan cepat dan baik, pergi ke ujian tidak masuk akal, itu layak mendapatkan bantuan di dalamnya.

Orang-orang baik telah mengumpulkan satu set perangkat lunak untuk berlatih.

Saya memutuskan sekitar 7 buah, dan jika saya menghabiskan 2 jam pada yang pertama, maka saya memutuskan yang ketujuh dalam 20 menit, pada kenyataannya, dengan kecepatan menulis kode dan memasukkan perintah. Algoritme yang tidak mengecewakan saya:

  1. kami melakukan bertahap penurunan dengan huruf A (dalam ujian langkah ini sudah akan dilakukan untuk kami)
  2. mencari offset, secara standar melalui pattern_create.rb dan pattern_offset.rb
  3. periksa panjangnya, ubah secara standar A ke B di tempat yang tepat, dan setelah B masukkan banyak C untuk melihat kemungkinan ukuran payload tanpa melompat ke buffer kami
  4. ( \x00, 99% )
  5. β€œjmp esp” ( , )
  6. ,
  7. ( 20 β€” \x90)

. .


Dalam salah satu prosedur ujian, vraytaps saya menemukan gambar ini: Gambar



ini menunjukkan mobil mana di hackthebox.eu sepertinya mobil dari ujian (mobil brainfuck sama sekali tidak seperti itu, saya sarankan tidak melatihnya). Untuk mengaktifkan gerobak dorong, diperlukan langganan berbayar (10 dolar per bulan, jangan lupa untuk segera membatalkannya ).

Saya menghabiskan 8 jam dan memutuskan 10 mesin, bergantian antara Windows dan Linux. Dan dia memutuskan bahwa itu cukup bagi saya, tetapi, mungkin, di sini, seperti dengan buffer overflow, perlu untuk dibawa ke otomatisme. Mobil-mobil ini lebih sederhana daripada mobil dalam ujian, setidaknya dalam hal eskalasi hak istimewa (beberapa salinan mobil dari lab, saya tidak tahu siapa yang saya pinjam dari siapa pun).

Persiapan Ujian. Latihan. Eskalasi hak istimewa


Anda dapat berlatih di mesin yang sama dengan hackthebox.eu, tetapi secara umum cukup membaca vraytapy untuk memahami teknik apa yang ada, ada contoh semua teknik yang mungkin Anda perlukan dalam ujian.

Persiapan Ujian. Bagian organisasi


Untuk lulus ujian Anda perlu:

  1. paspor asing (nama dan nama keluarga Anda harus ditulis dalam bahasa Inggris)
  2. Kamera web
  3. internet stabil

Adalah baik untuk memiliki tambahan:

  1. cadangan internet (saya menggunakan ponsel)
  2. komputer cadangan (saya memiliki laptop cadangan di sebelah saya yang sepenuhnya dikonfigurasi untuk mengikuti ujian)
  3. Snapshot VM dengan Kali
  4. salinan VM dengan Kali (saya meletakkan satu salinan pada hard drive, yang kedua pada hard drive eksternal)

Ujian!


Ujian ini dianggap sebagai ujian penuh waktu (Proctored Exam) sehingga dimulai 15 menit sebelum waktu yang dipilih. Anda terhubung ke platform web khusus, menggeledah layar Anda, dalam obrolan teks mereka mulai menanyakan tugas dan pertanyaan kepada Anda:

  1. tunjukkan paspor dengan webcam
  2. menunjukkan bahwa tidak ada orang di dalam ruangan
  3. berikan hasil skrip uji untuk koneksi

Lalu saya punya file dan ketika saya mencoba menyalin paket pengguna akhir baru ke mesin virtual dengan Kali, itu jatuh. Saya sudah siap untuk ini, memutar kembali mesin virtual, menyalin paket, meluncurkannya dan mulai menunggu jam 9 pagi.

Saya mendapat akses pada jam 9:01.

Saya punya rencana aksi sederhana:

  1. mulai penomoran layanan
  2. buat mobil untuk buffer overflow dalam 1 jam
  3. buat mobil untuk 10 poin dalam 1 jam
  4. buat mobil pertama untuk 20 poin dalam 2 jam
  5. buat mobil kedua untuk 20 poin dalam 2 jam
  6. buat mobil untuk 25 poin dalam 3 jam

Seperti yang dapat Anda lihat dari rencana saya, butuh waktu 9 jam untuk lulus ujian, tetapi tidak berjalan sesuai rencana sejak awal :) Saya lupa memperhitungkan faktor penghambat penting - untuk menuliskan dalam langkah-langkah semua yang telah dilakukan dengan semua tangkapan layar untuk laporan.

Hasil akhir yang saya dapatkan adalah sebagai berikut:

  1. buffer overflow - 2,5 jam. Saya kehilangan satu jam, karena tidak melihat beberapa karakter buruk, 30 menit lagi untuk laporan
  2. mobil dalam 10 - 30 menit: peretasan 10 menit, tangkapan layar 20 menit
  3. mobil pertama dalam 20 - 2,5 jam: peretasan 1,5 jam, tangkapan layar dan laporan 40 menit, istirahat 20 menit
  4. mobil kedua dalam 20 - 2 jam: peretasan 1,5 jam, screenshot dan laporan 30 menit.
  5. mobil selama 25 - 3,5 jam: 3 jam peretasan (dengan dua jeda), tangkapan layar 30 menit, dan laporkan

Secara umum, ujian jauh lebih menarik daripada laboratorium, kerentanannya cukup baru - 2018-2019. Peningkatan tidak di mana-mana melalui kerentanan kernel.

Saya duduk paling lama, menunggu eskalasi hak istimewa, semua cangkang yang tidak terjangkau diterima dalam 10-30 menit.

Ujian telah melakukan banyak jalan palsu yang tidak akan mengarah pada kesuksesan. Jika semuanya dengan mudah dibuang untuk inisialisasi shell (misalnya, exploit untuk buffer overflow pada Windows XP SP2, meskipun layanan itu sendiri berjalan pada Windows 10), maka dalam upgrade saya terjebak di jalur palsu ini beberapa kali. Hal utama di sini adalah untuk mengatakan pada diri sendiri bahwa vektor ini layak diubah dan memilih yang baru.

Setelah 11 jam, saya menyelesaikan ujian, memecahkan segalanya dan pergi minum beberapa gelas bir (hanya beberapa gelas, karena hari berikutnya kita masih harus menulis laporan indah resmi).

Menulis dan mengirim laporan


Saya mengambil templat dari repositori yang sama tempat templat untuk laboratorium dan mengisinya dalam 4 jam,

kemudian kesenangan dimulai dengan kemana harus mengirimnya dan caranya. Pertama Anda perlu mengenkripsi menggunakan 7z dengan kata sandi, kata sandi tidak acak, dan ID Anda ada di sistem (5 digit, terbang dalam 0,3 detik pada CPU). Lalu saya mencari informasi untuk waktu yang lama di mana harus meletakkan laporan di lab di arsip yang sama atau di tempat lain (Jawab: Anda harus memasukkannya di arsip yang sama). Kemudian saya menemukan fakta bahwa format untuk menetapkan kata sandi dalam arsip 7z, bendera -p, setelah itu kata sandi harus dituliskan bersama, yaitu sesuatu seperti -password. Bahkan, semua langkah dijelaskan dalam panduan ini , Anda hanya perlu bisa mencarinya.

Arsip yang dihasilkan harus diunggah ke situs, dapatkan tautan, dan kirim tautan ini ke surat khusus! Mengapa kesulitan seperti itu pada tahun 2020 adalah misteri bagi saya.

Setelah beberapa jam, Anda akan menerima surat tanggapan yang: "Kami menerima tautan Anda, tetapi tidak memverifikasi bahwa itu memiliki arsip normal, bahwa itu didekripsi dan mengandung data yang diperlukan. Dan kami akan melaporkan hasil ujian dalam waktu 10 hari kerja. "

Total


Tepat seminggu setelah ujian, pada hari Minggu 1 Maret, saya menerima surat yang menggembirakan bahwa saya telah menyusun arsip dengan benar:



Setelah itu saya mengisi data untuk mengirimkan saya sertifikat fisik dan kartu sertifikasi OSCP.

Siapa yang butuh sertifikasi ini?


Saya mendapatkan daftar berikut (diurutkan berdasarkan kebermaknaan tanda terima dan persyaratan sertifikat ini):

  1. Siswa 4-5 tahun. Bagi mereka, ini adalah latihan yang sangat keren.
  2. mereka yang memutuskan untuk pindah ke tempat yang aman dari industri terkait. Semuanya dijelaskan pada level yang baik, banyak contoh, ada sesuatu untuk dipelajari.
  3. majikan. Sertifikat menunjukkan bahwa seseorang mengetahui sesuatu dan tahu bagaimana melakukan sesuatu dengan tangannya (dalam lowongan kami kami mengindikasikan ini sebagai nilai tambah).
  4. orang-orang di industri yang ingin menyegarkan / menguji pengetahuan mereka
  5. pentester berpengalaman. Mungkin lapisan kulit yang indah akan membuat mereka menjadi lebih menarik bagi pengusaha.

Rencana lebih lanjut untuk lulus OSWE (Pakar Keamanan Web Ofensif). Bagi saya, ia lebih menarik daripada OSCE (Pakar Keamanan Bersertifikat Ofensif). Dan bagi mereka yang tertarik membaca tentang berbagai jenis sertifikasi di bidang keamanan informasi, kami menulis artikel terpisah .

All Articles