company_banner

OSCP: как я сдавал самый известный экзамен по информационной безопасности

    Offensive Security Certified Professional отличается от других сертификаций по информационной безопасности адски сложным экзаменом. Ребята из Offensive Security бегают по интернету и пристально следят за тем, чтобы никакие подсказки или готовые решения не были доступны публично. И, похоже, им успешно удаётся это делать более 10 лет подряд.

    Сдавая экзамен, люди не спят по двое суток, тестируя инфраструктуру на проникновение с постоянно включенной видеокамерой и спрашивают в специальном чате разрешения отойти в туалет. Я прошёл этот путь и сейчас расскажу, как всё устроено.

    Я много читал про OSCP, но только волшебный пинок локдауна заставил меня купить курс. За окном был 2020, а у меня — $999 и желание прокачаться в информационной безопасности. «Похоже, это отличное время, чтобы инвестировать деньги в обучение», — подумал я и купил курс Penetration Testing with Kali Linux.

    Минимальная стоимость курса — $999. За эти деньги ты получишь «стартер кит молодого пентестера», который включает в себя:

    • Книжку на 850 страниц.

    • 17+ часов видеолекций.

    • 30 дней доступа к лаборатории.

    • 1 попытку сдачи экзамена.

    Сложности начинаются уже при покупке. Нельзя купить курс и сразу начать заниматься: можно только выбрать дату начала обучения в будущем. В моём случае датой стало начало октября 2020, через месяц после покупки.

    Небольшая ремарка. Уже в процессе обучения я решил почитать блоги людей, которые проходили курс, и оказалось, что большая часть из них подошли к нему основательно и готовились за полгода или даже год. А для тренировки перед OSCP покупали доступы к HTB и VulnHub. Я же ничего из этого не делал, и курс был для меня чёрной коробкой.

    После оплаты мне скинули ссылки на кастомизированный образ Kali (чем конкретно он отличается от обычного я не понял), а также архив для проверки VPN-соединения, который действует 3 дня. За эти дни нужно было скачать VMware, поставить туда этот Kali и проверить своё подключение к VPN. Говорят, раньше всё это присылали в день начала занятий, теперь присылают заранее.

    Вообще в 2020 году курс изрядно обновили и, как они сами пишут, увеличили в два раза размер материалов — раньше в книжке было всего 400 страниц, — а также на 30% число машин в лаборатории. А ещё добавили новые типы атак, вроде атаки на Active Directory или лекций по PowerShell Empire, репозиторий которого уже закрыт владельцем.

    Курс состоит из трёх частей

    Первая часть — это теория. За неё отвечает та самая книжка на 850 страниц и набор видеороликов. Чтобы не было соблазна выкладывать их в открытый доступ, все страницы книги и видеоматериалы содержат водяные знаки с личным номером и именем покупателя курса.

    Вторая часть курса — это время работы в лаборатории. Что это значит? Ты получаешь доступ в закрытый интранет, где располагается 4 виртуальных сети, связанных через шлюзы. На картинке из официального гайда можно посмотреть, как эти сети связаны между собой. Кроме того, в этой сети развёрнуто два полноценных Active Directory домена по 5 машин в каждом. Это, кстати, интересный момент, его я опишу ниже.

    Изначально доступ есть только в Student Network (она же Public), но по мере захвата машин можно попасть и в другие сети. В сети 66 хостов, на каждом из которых лежит файл proof.txt, который необходимо сдать в панели управления. Принцип чем-то похож на CTF, с той лишь разницей, что сам файл не так важен как понимание уязвимости, через которую можно получить права администратора.

    Последняя часть программы — это экзамен. О его сложности я прочитал только когда имел на руках дату начала обучения. Целые форумы посвящены плачам людей, которые его пытаются сдать. Читать подобные пассажи строго не рекомендую.

    День Х

    В день начала курса на почту прислали заветное письмо, а в нём ссылки: на книжку и архив с видео, а главное — конфигурацию для VPN. Можно было подключаться и хакать, но я пошёл смотреть видео. Таков путь.

    До 2020 года книжка и видео дублировали друг друга, но сейчас это не так. Некоторые векторы атак, показанные в видео, не раскрываются в книге, а дополнительных заданий из книги нет в видео. Я выбрал путь стримера: смотреть в консоль на экране и слушать закадровый голос было проще, чем читать все 850 страниц.

    Я смотрел лекции по 2-3 часа в день и потому мне потребовалась целая неделя для просмотра всех 17 часов от начала и до конца, попутно листая PDF.

    Лабы

    После теории у меня осталось 23 дня, за которые я планировал получить доступ на все машины (ха-ха, как наивен я был тогда). Сначала в лабораторной сети у меня не было ничего, кроме адреса подсети /24, в которой расположены какие-то уязвимые хосты. Но именно так и построено обучение: в теории рассказали возможные векторы атак, а дальше всё зависит от студента.

    Большинство хостов в лаборатории как-то связаны между собой. Письмо в почтовом ящике на одной машине может содержать доступ к другой. Некая симуляция реальной сети. Но бывают и незапланированные сценарии. Например, чтобы получить доступ к контроллеру домена Active Directory, нужно получить доступ к дочерним узлам и только потом получить администратора контроллера. Именно так задумали эту атаку, но, если хорошо погуглить, выясняется, что есть довольно свежий эксплойт, позволяющий атаковать сразу контроллер, игнорируя всю цепочку. Сделано это намеренно или нет, я не знаю.

    Подсказок, как ломать, нет в принципе. Можно пойти на закрытый форум для студентов, но это отдельный цирк. Обсуждать можно всё, но давать прямые подсказки запрещено. А потому местные посетители упражняются в аллегориях, например, вместо упоминания smb пишут brazilian dance, а вместо dirtycow используют well-know exploit.

    На форумах ходит поверье о четырёх машинах (pain, sufferance, humble, gh0st), которые не обязательно ломать, так как они какие-то особенно сложные. Забавно, что узнал я об этом много позже получения доступа к каждой из них. По мне, так это обычные, ничем не примечательные машины, которые встречаются на любом CTF-соревновании.

    Спустя 3 недели я закрыл всего 23 из 66 машин. В этот момент у меня заканчивался 30-дневный доступ в лабораторию, и я купил дополнительные 30 дней — покупать дополнительные дни можно бесконечно. За следующие 30 дней я закрыл все машины, получив доступ ко всем подсетям.

    Исходя из тредов на форуме, можно сделать вывод, что типичный студент закрывает около 40 машин, так как взлом машин через SSH-туннелирование — это развлечение не для всех.

    Экзамен

    Эндшпилем движухи стал экзамен, о котором пишут статьи, наполненные либо слезами, либо советами, как к нему лучше готовиться морально и физически. Я попробую не ударяться в крайности.

    Экзамен занимает полные 48 часов, из которых первые 24 даётся на взлом 5 серверов, а вторые 24 часа — на написание отчёта о том, как был получен доступ к каждому из них.

    А чтобы было совсем весело, первые 24 часа за тобой через веб-камеру будут наблюдать специально обученные люди. Твой экран они тоже будут видеть. А потому, даже если захочется отойти в туалет, нужно будет написать об этом в специальном чате.

    В день экзамена, за 15 минут до начала, на почту падает ссылка для проведения сессии подтверждения личности. Я использовал загранпаспорт. После это приходит уже новое письмо с доступами для подключение к VPN и ссылка на экзаменационную панель управления.

    Для успешной сдачи экзамена нужно набрать 75 очков. Для этого есть 5 машин, они каждый раз разные, но тип каждой всегда одинаковый:

    • 1 машина на написание эксплойта с переполнением буфера за 25 очков.

    • 1 комплексная машина со множеством ложных векторов атаки за 25 очков.

    • 2 обычные машины по 20 очков.

    • 1 совсем простая за 10.

    Максимум можно получить 100 очков. Плюс ещё можно заработать 5 очков, конспектируя работу в лаборатории, но это вариант для параноиков. Лишние 5 очков точно не спасут, а выполнение и конспектирование всех заданий занимает очень много времени.

    Так как экзамен — это рулетка, то и соотношение Windows/Linux может быть любым. Мне попались три машины на Linux и две на Windows.

    Первый полученный доступ стал на машине за 25 очков. Мне повезло: она была очень близка к стеку технологий, с которым я привык иметь дело. Затем, чтобы расслабиться, я получил доступ к машине за 10 очков, часто её называют low-hanging fruit. Для атаки требовалось просто найти один публичный эксплойт, который даёт доступ к учетной записи с правами администратора.

    Большинство экзаменуемых начинают с переполнения буфера, а я оставил его на середину, чтобы разгрузить мозги. Кому-то это может показаться сложным, но по факту дают примитивное приложение и заранее подготовленный PoC в котором нужно дописать только «мясо». Берём любую инструкцию и следуем всем шагам.

    После этих упражнений у меня было 60 очков в кармане. Оставшееся от экзамена время я потратил на одновременную атаку на 2 оставшиеся машины. На одной из них я быстро получил непривилегированного пользователя, а вот с эскалацией привилегий вышло сложнее. На второй же кроме LFI не получалось прощупать ничего. Ближе к вечеру я получил привилегированный доступ на первой из машин, а на вторую решил просто забить и лечь спать.

    Я читал о смельчаках, которые не спали по 24 часа и всё равно проваливали экзамен. Примыкать к их числу я не хотел. Проснувшись за 3 часа до окончания экзамена, я проверил, хватает ли мне скриншотов и логов для заполнения отчёта. А после этого попытался ещё раз копнуть оставшуюся машину, но так ничего и не вышло.

    Отчёт

    После выполнения практической части даётся 24 часа на написание и отправку подробного отчёта на английском с последовательностью шагов, необходимых для получения доступа к каждой из машин. Туда также входят советы администратору сервера, чтобы обезопасить его.

    Написание отчёта может отпугнуть неподготовленного русскоязычного обывателя. Но и у англоязычных студентов оно вызывало приступы паники. Некоторые «счастливчики» писали отчёты по 200+ страниц. Сказу скажу, что мой отчёт содержал всего 68 и это с учётом того, что я вставлял по одному скриншоту на лист.

    Бояться этого смысла нет, писать эссе точно не надо. Достаточно взять шаблон и вставлять в нужные места скриншоты с одним предложением о том, что значит скриншот. Использовать стандартный шаблон тоже не обязательно. Для своего отчёта я использовал альтернативный вариант в Markdown.

    После заполнения отчёта его нужно было запаковать в 7z и отправить на специальной странице. До 2020 надо было ещё и паролем шифровать, но теперь от этой практики отказались.

    Результат

    Спустя неделю мне пришло заветное письмо, где сообщалось, что я сдал экзамен и теперь мне необходимо заполнить информацию о моём местонахождении для отправки физической копии сертификата.

    На этом я заканчиваю свой рассказ. А на вопрос, стоит ли сдавать OSCP ответ однозначный — да, если есть много свободного времени и лишние $999.

    Авито
    У нас живут ваши объявления

    Comments 27

      +4
      Круто! Мой экзамен в cisco после такого выглядит, как детский лепет :)
        +5
        Горячий привет от человека, пропатчившего эксплоит для Phoenix =) Там для этого ядра есть 42 и 45 статьи в Exploit-DB, но добрые ребята из Offensive Security аккуратно прикрыли дыру для 45 самого популярного эксплоита, но не целиком, а только так, чтобы скачанный с сайта не работал. В итоге оказалось достаточно прочитать CVE и поправить одно слово, чтобы этот эксплоит заработал) У меня, кстати, в августе еще нужно было шифровать отчет паролем… С удивлением узнал, что теперь это не так. Видимо многие ломались на чтении правил и не присылали правильный отчет… Я в итоге взял все машины в лабе и все на экзамене, хотя 25 машина на экзамене попортила мне очень очень много крови. Она была как титановый шарик с одним открытым портом, к которому непонятно как вообще подступаться. А в BOF я встретил отдельную пасхалку от Offsec) Но в итоге я взял все) Очень хочу теперь на AWAE, но бью пока себя по рукам, вначале надо всё же устроиться на работу)
          +1
          А в BOF я встретил отдельную пасхалку от Offsec

          А что за пасхалка?

            +1
            Ну я ж так не могу об этом сказать тут) Но чувство юмора у них точно есть, я минут 15 пытался понять где я дурак… Знаю еще случаи по форумам, когда на реальной машине были закрыты все исходящие порты и народ уронив сервис не получал шелл обратно, а вспомнить, что можно добавить локального админа попросту забывал… Мне, к счастью, такое не попалось, но я был готов.
          +1
          А чтобы было совсем весело, первые 24 часа за тобой через веб-камеру будут наблюдать специально обученные люди. Твой экран они тоже будут видеть. А потому, даже если захочется отойти в туалет, нужно будет написать об этом в специальном чате.

          WTF?? А можно надеть маску Гая Фокса во время экзамена?

            +2
            Можно. Но в этом случае вас просто не допустят до экзамена. Это вынужденная цена популярности экзамена и поддержание его качества. Все серьёзные онлайн экзамены давно «Proctored». Справедливости ради, Offsec зато не пишет звук, как делаю это почти все системы сдачи типа Vue.
            Ну и хотелось бы добавить, что тут нет традиционного зверства как при сдаче PMP, например. У меня на столе всегда была чашка чая, вазочка с орехами/шоколадом и другим снеками. Никого не будет волновать, что ты будешь сидеть с ногами на кресле и прихлёбывать чай с чипсами. Хоть пиво пей. Главное, чтобы было видно твою верхнюю половину тела. Я ближе к концу слишком сполз и меня попросили поправить камеру) Ну еще и от проктора зависит, конечно. Их человек 5 за всё время сменится.
              +1

              Спасибо за развёрнутый ответ. А можно расшарить один экран, где разворачивается экзамен, а второй оставить нерасшаренным (вдруг что-то загуглить надо будет)? Или лучше поставить 2 ноута рядом? У меня иногда вылетают из головы простые команды, стыдно гуглить на экране, который под наблюдением)))

                +2

                Во время экзамена можно не только гуглить но и даже пользоваться любыми заметками или скриптами которые были сделаны во время работы в лаборатории.

                  +5
                  Увы, так запрещено) Шарится всё. Лучше решить проблему со «стыдно» =) Всем всё равно, что вы будете гуглить. Когда к ночи тупил, гуглил чуть ли не банальные вещи…
                  Я студентам всегда говорил, что забыть не стыдно, стыдно в этом не признаться)
                  Экзамен проходит в формате «open book», т.е. разрешено всё кроме явной помощи со стороны. Гуглить, смотреть видео в ютьюбе, читать статьи и т.д. В целом лаба в основном нацелена на то, чтобы выработать свою собственную методологию. У меня целый репозиторий в github с методикой, ссылками и командами. Я бы даже больше сказал, экзамен не столько про знания, сколько еще про тайм менеджмент. Очень много историй в англоязычном интернете, как народ залипал на одной машине и сидел с ней по 5-8 часов и полностью выгорал… Поэтому я подсмотрел в одном из отчетов и сделал себе некую табличку с разбивкой времени дня по машинам и сну/еде. И старался придерживаться её, если застрял на час, обязательно переключаться. И делал перерывы в выбранное время. По себе скажу, что самые классные идеи пришли мне после ночного сна и перерывов на «посидеть на кухне и посмотреть в окно». Мозг отпускает рельсы и решает задачу за тебя)
              +3
              Интересный опыт, поздравляю
                +1
                Подскажите, пожалуйста какими языками программирования необходимо владеть для сдачи этого экзамена?
                  +2

                  Определенно Python на базовом уровне, так как именно на его примере построено обучение в секции buffer overflow. Еще будет плюсом знание PHP и C на уровне чтения, так как может понадобится для модификации готовых эксплойтов но не более.

                    +1
                    Благодарю!
                    И тогда ещё один вопрос — какие инструменты Kali оказались наиболее востребованными при экзамене? Ну, что-то вроде рейтинга. Использовались ли программы, которых нет в репах Kali?
                      +2

                      Самая востребованная это nmap. А вообще если говорить о каких-то списках, то могу порекомендовать Unofficial OSCP Approved Tools это, пожалуй, лучший список на текущий момент.

                  +1

                  Интересно, а если выключили свет, второй шанс дадут? Или лучше запастись генератором?

                    +1

                    Дополнительные попытки экзамена только за деньги, при этому между первой и второй попыткой должно пройти минимум 4 недели.

                    +1
                    Главный вопрос: имея сертификат, какую з\п в евро можно смело требовать?
                    или это как с вузовским дипломом — вы молодец, но опыта нет, так что идите крутите гайки в ночь?
                      +2
                      (Я разработчик, не разбираюсь в безопасности, не знаю специфику OSCP).

                      Имхо, так везде: сертификат не является ключевым моментом трудоустройства.
                      Далее, моё субъективное мнение.

                      Если сертификат не требуется в описании вакансии, но он у вас есть и работодатель его уважает, то, вероятно, будет большим плюсом (но не более того). Остальной процесс найма всё равно нужно пройти (рекрутер, cultural fit, hard skills, soft skills, design / conceptual thinking).

                      Если сертификат требуется в описании вакансии, то это просто барьер для отсеивания кандидатов без сертификата или формальное требование. Но удовлетворив формальные требования, вы только открываете себе дорогу в процесс найма. Это не пропуск на работу. Соответственно, все этапы тоже остаются.
                        +4
                        (Я сдал OSCP и OSCE, который недавно отменили и сейчас прохожу AWAE)
                        Данный сертификат достаточно уважаем в среде ИБ, хоть и считается сертификатом начального уровня. Получив такой серт, вы говорите, что понимаете как примерно работает специфика работ по тестированию и сможете спокойно пройти как минимум фильтр HR и получить первое собеседование в иб компании)
                          0
                          какие зарплаты в этой сфере? Средний ИБ-шник стоит дороже или дешевле среднего Фронтендщика?
                          Образно говоря, вы мидл-уровня ИБ, я — мидл Фронт. Оба ищем работу в РФ.
                          Учитывая а)востребованность (т.е. вероятность устроиться в единицу времени) и б)зарплату (т.е. гонорар в единицу времени), то чья единица времени выходит прибыльнее?
                          p.s. судя по описанию теста, а также вашей реплике про начальность,
                          в этой сфере просто монстры сидят и получают смело под полмиллиона в месяц (так кажется).
                          или опять спускаемся с небес на землю и признаём, что трудный изнурительный экзамен оказывается больше «для себя»?
                            +1

                            Так, ну экзамены из этой серии(по крайней мере для меня)-всегда оказывались в категории для себя, потому что каждый экзамен-как подъем на гору-она нереально гигантская и забираться очень страшно, но во время похода очень интересно и очень хочется наконец подняться и ощутить некую свободу после ощущения сдачи) Несомненно они ценятся при работе, но я получаю кайф от прохождения курсов и экзаменов, пускай они и стоят много моих нервных клеток)
                            Что касается работы-я думаю даже в Москве зарплаты мидла очень разнятся, от 120 до 250, в зависимости от стажа и места работы.Сейчас мидлу устроится намного проще-мидлов мало и много начинающих специалистов

                      +1

                      С чего начать в иб, если полный ноль в этой теме? Прочитал и заинтересовало.

                        +1
                        я думаю, как и везде — с оценки рискоф и развенчивания мифов, срывания покровов и розовых очков.
                        Оно, может, звучит круто, а в плане сумм, прилетающих на карту, окажется неКруто…
                          +1
                          Оценивать в плане зарплат, это тоже могут быть в некоторой степени розовые очки. Не для всех, но если куда-то входить/развиваться окажется трудно, то и з/п которая виделась и о которой кто-то рассказывал что её достигнуть не сложно, может оказаться меньше, чем то в чем было бы проще или смог бы уделять больше времени. В ИБ много энтузиастов, и сложно оценить сколько времени и трудов нужно для вхождения в это.
                            0
                            Плюс большинство компаний или вообще не заинтересованы проверять безопасность (и хватаются когда уже их хакнули) или делают это бюрократическим подходом.
                          +1
                          Если по навыкам, то очень полезны будут книги/курсы, которые дают базовые знания, типа CCNA для понимания сетей, RHCSA/RHCE для Linux, что-то по администрированию Win и т.д. Надо отталкиваться от того, что больше интересно. Лично я пришел в ИБ через администрирование и OSCP.
                          0
                          Оказываете ли услуги по анализу защищенности?

                          Only users with full accounts can post comments. Log in, please.