Всем привет! Меня зовут Андрей и я хотел бы поделиться своим опытом сдачи Offensive Security Certified Professional (OSCP) в конце 2022 года. На хабре уже есть несколько отчётов об OSCP, например, раз, два, три.
Но за последнее время курс претерпел немало изменений и мой опыт может кому-то пригодиться.
Часть 0. Моя предыстория
Я с 2013 живу и работаю в Германии, после учебы в универе устроился на работу программистом в небольшую компанию, оказывающую услуги в том числе в сфере информационной безопасности. Так как в России до переезда в Германию моя учеба и работа была связана с ИБ и мне это было интереснее чем чисто программирование, мне хотелось развиваться в этом направлении. Мой непосредственный начальник проводил периодически небольшие пентесты (в основном веб приложений) и я начал втягиваться в эту тему с ним. А когда выучил немецкий до комфортного для работы уровня, понял, что хочу полностью перейти в пентест. В 2020 году решил посмотреть какие есть сертификаты в области пентеста. Нашел два самых известных на тот момент: CEHv11 от ECC Council и собственно OSCP.
Решил начать с CEHv11, и это было абсолютной тратой времени. Всё техническое, что было в материалах, я более менее знал. Всякую теоретическую и юридическую чушь пришлось заучивать и в целом я не узнал практически ничего нового. Экзамен шёл 4 часа и состоял из 100 с лишним вопросов (иногда неясно сформулированных).
Справедливости ради, стоит сказать, что пару лет назад появился CEH Practical, который состоит из практических заданий. Не пробовал, не знаю.
После этого стал смотреть в сторону OSCP, и когда у Offensive Security появилась подписка на год (Learn One), то не раздумывая, попросил начальника оплатить мне это обучение. Стоило оно тогда 2000$, сейчас стоит 2500$. Можно купить и трехмесячный доступ к лабам за 1600$, но в Learn One помимо времени есть и другие плюсы, а именно:
включен доступ к Proving Grounds Practice (отдельно стоит 200 в год, чуть позже об этом)
две попытки выбранного экзамена (в моём случае OSCP) вместо одной
доступ к материалам и попытка сдачи OSWP (Offensive Security Wireless Professional, PEN-210) и KLCP (Kali Linux Certified Professional, PEN-103)
Для меня был важен доступ на год вместо трех месяцев - шёл 2021 год, стресса хватало и без экзамена (корона, работа из дома, отсутствие садика у двух маленьких детей, загруженность на работе...)
После оплаты и регистрации прошло чуть больше недели и я получил доступ ко всем материалам на портале.
Часть 1. Подготовка
Получив доступ к порталу, установив Kali Linux в Virtual Box на рабочем ноуте, я начал подготовку. Я был наслышал о большом количестве материалов и заданий, но ведь у меня есть целый год! На портале можно читать материал, выполнять упражнения и тренироваться в сети (лабы). Материал можно читать онлайн, он разбит на главы, хорошо структурирован. Можно сгенерировать pdf и скачать. Вот тут можно посмотреть оглавление текущей версии. В 2022 можно было получить 10 бонусных баллов, написав отчет о:
всех выполненных упражнениях из PDF
отчет о 10 взломанных виртуалках из сети
Я подумал, что начать экзамен с 10 баллами гораздо приятнее, чем с 0, решил писать этот отчет. Польза от написания однозначно была, но не соразмерна потраченному времени. Мой отчет содержал 200+ страниц, чем ближе к его готовности, тем больше я ненавидил его и MS Word (да-да, знаю про Latex, но думал, всё будет проще, знай себе вставляй скриншоты) вместе взятые. К слову, эту систему упразднили и теперь можно получить бонусные баллы, выполнив 80% онлайн упражнений на портале и взломав 30 машин в сети. Намного более справедливое и просто правило :) Больше тут.
Сам по себе материал был адекватный и полезный, хоть и не на 100 процентов актуальный. Но на мой взгляд и по опыту более опытных коллег пробежать по нему в любом случае стоит, даже имея опыт в пентесте.
В сети можно найти около 70 виртуальных машин разного уровня сложности. Между некоторыми есть зависимости (взломав одну, можно получить часть полезной информации о другой). Изначально у студента есть доступ к одной сети, ещё 3 сети доступны после взлома определенных виртуалок и настроив доступ через них. Я получил рут примерно к 30 машинам, частично сам, частично с помощью сообщества. Кстати, о сообществе. Два официальных источника: discord и форум. Там могут помочь как другие студенты, так и менторы. Я пару раз туда тоже писал, когда совсем застревал. Но больше использовал, как пассивный источник помощи - большинство застревает в одних и тех же местах и достаточно было просто поискать. Из неофициального - reddit, куда ж без него. Виртуалки однозначно полезны в качестве подготовки к экзамену, особенно для людей без практического опыта. Главное, не застревать по неделе, а либо отложить на позже, либо поискать подсказки. Но лично для меня только их было бы скорее недостаточно для сдачи экзамена.
Из минусов:
виртуалки были общие на всех студентов, из-за чего они могут мешать друг другу. Или кто-то постоянно делает Reset виртуалки, пока ты безуспещно пытаешься получить шелл. Насколько я знаю, сейчас это изменили и у студентов выделенные виртуалки.
большинство из них устарело (как сами ОС, так и способы получения root)
из-за зависимостей не всегда понятно, надо ли копать глубже, либо копать в другом месте.
Из недавних изменений прошлого года: теперь на экзамене не 5 отдельных машин с обязательным Buffer Overflow, а три и домен, состоящий из трех машин (Buffer Overflow может быть среди них, но не обязательно). Для тренировки с Active Directory в тренировочной сети есть два домена. На мой взгляд, экзамен стал от этого только лучше и наверно сложнее. Виндовый домен может встретиться в почти любой компании в ходе пентеста, а Buffer Overflow уже не так актуален и процесс эксплутации на экзамене был стандартным и считался легкой добычей 10 баллов.
Третья возможность подготовки - PG Grounds Practice. Тоже виртуалки, доступные через VPN, но гораздо более современные, сложные и разнообразные. Однозначный плюс, что к каждой есть три подсказки и официальный гайд (пусть и с ограничением по открытию гайдов в день для невзломанных машин). Доступно чуть больше 100 виртуалок, как Windows, так и Linux. Сеть плоская, без зависимостей. Сложность у виртуалок разная и реальная не всегда совпадает с классификацией Offensive Security. К счастью, есть рейтинг сообщества (Community Rating), который гораздо более точно отражает реальность. Много машин похожих на экзамен. Какие именно выбрать - я ориентировался на популярную таблицу от NetSec Focus со списком виртуалок. По-моему опыту, машины на экзамене были по сложности между Intermidiate и Hard по рейтингу сообщества.
Кстати, есть ещё PG Grounds Play. Бесплатный доступ на 3 часа в день, машины попроще и только Linux. Но в качестве дополнительной (или предварительной до начала курса) тренировки - более чем ок.
Из других платформ я использовал HackTheBox, но только читая WriteUp'ы машин из списка выше или смотря видео от IppSec на Youtube (они очень полезные как с точки зрения утилит, так и с точки зрения общего подхода).
Часть 2. Сдача экзамена
Время экзамена желательно бронировать минимум за пару недель (а лучше ещё больше), чтобы получить желаемое время. Выходные обычно быстро разбирают. Я выбрал субботу в конце ноября в 8 утра. Доступ к порталу у меня был до конца декабря, между попытками должно пройти минимум 4 недели и я хотелось иметь запасной вариант в виде второй попытки. На сайте можно прочитать требования по железу и ПО и даже попросить тестовую сессию. Я решил сдавать с рабочего ноута и спрашивал в поддержке, можно ли сдавать не из под админа. Ответ был "нежелательно, но можно". Детей и жену на 24 часа деть было некуда, а кабинета у меня отдельного не было, поэтому обустроил временное рабочее место в подвале. Рабочее место выглядело довольно эпично:
Во время экзамена все время была включена камера, велась запись экрана. Один раз у меня возникла проблема с виндой, пришлось перезагружать ноут. Один раз была проблема с экзаменационной машиной, писал в поддержку, машину проверили, сделали Reset, стало ок. В остальном каждые пару часов я делал паузы на поесть, погулять, отдохнуть. На экзамене есть 3 отдельные виртуалки (10 баллов за шелл, еще 10 за рут) и Active Directory домен, состоящий из 3 машин (40 пунктов за весь домен, частичных пунктов нет). Для прохождения нужно 70 баллов. Через 2 часа после начала я получил первый рут (20 баллов), еще через час второй шелл (+10 баллов) и застрял на некоторое время с рутом. Решил попробовать третью виртуалку, на первые взгляд не увидел очевидных путей и сделав паузу на обед, перешёл к домену. И где-то через 5 часов я взял контроллер домена. Итого у меня было 20+10+40+10 (бонусных за отчет) =80 и я решил прежде всего гарантировать мне эти 80 и не гнаться за 100. Начал писать отчет и к полуночи закончил его, решил на этом и закончить. Загрузил отчет и пошел спать. Теоретически, на экзамен отводится 24 часа и потом ещё 24 часа на отчёт. Но мне не хотелось растягивать и поэтому решил добить одним разом.
Через 2 дня пришел ответ с заветным
Часть 4. (Бонус) Сдача OSWP
Если покупаешь Learn One подписку бонусом идёт доступ к материалам Offensive Security Wireless Professional. У меня оставался месяц доступа к порталу и я в любом случае решил попробовать. Пробежав по довольно легкому материалу за пару дней, не выполняя упражнения, сдал 4-х часовой экзамен. На экзамене дается доступ по ssh к машине с WLAN, то есть локально разумеется не нужно никакого оборудования. Есть три сценария, для сдачи нужно выполнить 2 из них. На экзамене было всё как в материалах - для подготовки не нужно ничего больше. Да и после OSCP это очень легкий экзамен :) Для практической пользы значение сомнительно, но для расширения кругозора ок, особенно когда бесплатно дают.
Часть 5. И что теперь?
Во время подготовки однозначно прокачал скиллы, создал методологию и коллекцию хороших онлайн источников. После экзамена укрепилась вера в себя, синдром самозванца немного отпустил. Стали больше писать в Linkedin с предложениями о работе. В общем, это такой знак отличия, что человек немного умеет в пентест и с ним можно поговорить. Разумеется, наличие OSCP не гарантирует, что человек будет хорошим пентестером. Равно как и отсутствие не говорит, что человек плохой пентестер. Экзамен критикуют за искусственность и навязанное давление из-за 24-часового ограничения. Для меня это была проверка себя, но я не ставил всё на то чтобы сдать. Знаю крутых спецов, которые не сдавали с первого раза. Экзамен как экзамен в общем. Но в любом случае было интересно побыть на время частью этого сообщества с девизом Try Harder. Как оказалось, это целая субкультура со своим сленгом и даже песней. Ну а я наверно пойду почитаю материал по OSWE c 48-часовым экзаменом...