Сдать OSCE: вызов принят / Хабр

Сдать OSCE: вызов принят / Хабр Сертификаты

Что за зверь osce: разбираем на примере

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

С чего всё началось

Мой коллега c4n два года назад сказал, что надо бы сдать OSCP и я согласился, но как это часто бывает с хорошими идеями, мы

забили

отложили эту хорошую идею.

Спустя год в нашей компании появилась возможность бесплатного обучения полезным вещам для сотрудников (увы, моё понимание полезно не совпадает с руководством и курсы сомелье мне все ещё отказываются оплатить). К славной затее сдать OSCP подтянулся @GolovnyaD, сказал, что наши отговорки про занятость так себе и что надо приступать.

И мы приступили.

Начало пути

Как оказалось, доступ к лабе можно приобрести на 30, 60 или 90 дней стоит это 999$, 1199$, 1349$. Так как мы не хотели посвящать всё свободное время только OSCP, а разница между 30 днями и 90 всего 350$), мы выбрали доступ на 90 дней.

9 октября 2021 года, я оплатил курс, ожидая получить веселье на 3 месяца, как же я ошибался, мне досталось веселье на 5 месяцев. И вот почему:

первая подстава: нельзя начать обучение завтра. В моём случае ближайшая дата для старта была 20 октября (как пишут на форумах среднее время до старта после оплаты – 2 недели).

Тогда же 9 октября прислали тестовый пакет (Connectivity Pack) для подключения к VPN. У меня судя по их тестам не было проблем с VPN-подключением (как оказалось потом тест у них так себе, расскажу дальше). Тогда же прислали ссылку на их сборку Kali (на вид ничем не отличается от обычной), которая специально подготовлена для прохождения.

Старт курсаФормально курс начался у меня в 3:00 ночи 20 октября, но письмо с материалами курса мне пришли в 03:09 (заметил эту нестыковку только сейчас, когда писал статью). В письме с материалами курса содержатся ссылки на:

  • пдфку на 380 страниц
  • видеоматериалы к этой пдфке
  • VPN Connectivity Pack

И тут нас ждёт вторая подстава:

Сертификаты в области информационной безопасности: что актуально в рф и за рубежом

3.Сертификация технических специалистов

Нерассмотренным остался класс сертификатов, которыми в большей мере пользуются технические ИБ-специалисты. Подтверждение квалификации в области администрирования и конфигурации какого-либо оборудования — основная задача сертификатов данного типа.
Поскольку вендоров на рынке представлено великое множество, сперва может показаться, что выбрать некое ограниченное множество действительно значимых сертификатов — задача непростая. В данном случае можно пойти по одному из двух путей:
1. Получить сертификат одного из «мастодонтов» рынка IT — к подобным можно отнести Cisco с сертификациями CCNA, CCNP и CCIE Security, Microsoft с сертификациями MCSA и MCSE, наконец, Red Hat c сертификациями RHCSA и RHCE. Два наиболее существенных плюса данного подхода: а) возможность получения работы в компании, выдавшей соответствующий сертификат; б) признание со стороны профессионального сообщества, как следствие — более высокий интерес со стороны большого числа компаний, находящихся в поиске нового сотрудника с определённым уровнем квалификации.

2. Получить узкоспециализированный сертификат — в качестве примера можно привести сертификат технического специалиста UserGate, аналогичный сертификат для специалиста по технологии ViPNet и так далее. Интерес к подобного рода сертификации обычно возникает в том случае, когда компании необходимо получить доступ к работе с продуктами некоторого вендора — для этого в штате выделяется сотрудник, который проходит необходимый обучающий курс, в результате чего компания достигает свою цель. Если говорить о получении подобного сертификата специалистом исключительно для себя, то в качестве одной из немногих возможных причин видится нацеленность на работу в компании, которой требуется технический специалист, знакомый с оборудованием конкретного вендора. В остальных случаях лучше будет присмотреться к предыдущему «пути».

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

Никита Мулаков

Руководитель направления аудита и консалтинга, Акрибия

Что мы знали о oscp

Мы знали, что OSCP состоит, по сути, из 3 частей: теоретический материал (дальше я буду называть его пдфка), доступ к лаборатории с виртуальными машинами (дальше буду называть лаба) и экзамен.

Linux

Но почти везде можно подняться через уязвимости в конфигурации, тут помогает LinEnum, а для ленивых linux-smart-enumeration

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

Oscp вызов

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

Windows

Для windows машин я пользовался вот этим наборам сплойтов

Про сертификаты:  Бухгалтерская отчетность и фин. анализ УРАЛЭЛАСТОТЕХНИКА за 2011-2020 гг. (ИНН 6664014650)

Но на некоторых Windows машинах специально пропатчены все уязвимости «ядра» и приходилось придумывать, как подняться. Тут есть машины на любой вкус, сервисы, автозагрузки, шедулед таски, установленное ПО. Установленное ПО — это конечно большой провал, т.к. очевидно, что тачки подготовлены и если на системе установлено всего одно приложение, то через него можно подняться.

Буду ли я дальше сдавать экзамены offensive security?

Конечно, меня в целом устраивает подход «try harder», и интересны их новые курсы, а всё остальное можно пережить.

P. S. Спасибо коллегам и моей девушке, которые поддерживали меня!

Как я сдавал экзамен

Мне удалось сдать OSCE со второй попытки. В первый раз — это было в июне — у меня не получилось нормально подготовиться к экзамену из-за загруженности на проектах, но как «настоящий пентестер» я решил сделать всё «на лету». В итоге за 48 часов, 10 из которых ушло на сон, решил только 1,5 задачки.

В сентябре я принял волевое решение качественно со всем разобраться: изучить побольше тем, в том числе связанных с эксплуатацией (а это оказалась бесконечная дыра), проделать все лабораторные, пообщаться с другими экспертами, обдумать задачи с первой попытки сдать экзамен, подготовить различные скрипты для автоматизации.

В итоге вторая попытка была в ноябре: за 12 часов экзамена я выпил 7 стаканов чая, пару таблеток от головной боли, вкусно поужинал, прогулялся во дворе — и все 4 задания были решены. Благо, они были похожи на те, что мне попались при первой попытке. После приятного сна ещё часов 5 ушло на формирование отчёта, а спустя сутки мне сказали, что экзамен успешно сдан и можно просить повышение зарплаты у руководства.

Кому нужна это сертификация


У меня получился вот такой список (отсортированный по осмысленности получения и требования этого сертификата):

  1. студенты 4-5 курса. Для них это прям очень крутая практика.
  2. тем, кто решил перейти в безопасность из смежных отраслей. Все описывается на хорошем уровне, куча примеров, есть чему научиться.
  3. работодатель. Сертификат показывает, что человек что-то знает и что-то умеет делать руками (в наших вакансиях мы указываем это как плюс).
  4. людям в отрасли, которым хочется освежить/протестировать свои знания
  5. опытные пентестеры. Возможно, красивая корочка позволит им стать более интересными для работодателей.

Дальше в планах сдать OSWE (Offensive Security Web Expert). Как по мне, он интереснее, чем OSCE (Offensive Security Certified Expert). А для тех, кому интересно почитать про различные виды сертификации в области ИБ, мы написали отдельную статью.

Курс oscp

Курс, ведущий к сертификации OSCP, был впервые предложен в 2006 году под названием «Offensive Security 101». Студенты, ожидающие прохождения курса 101, не были подготовлены к тому уровню усилий, который требуется для курса, поэтому в декабре 2008 года название было изменено на «Пентестирование с помощью BackTrack» и снова на «Тестирование на проникновение с помощью Kali Linux», когда дистрибутив BackTrack был перестроен как Kali .

Курс охватывает общие векторы атак, используемые во время тестов на проникновение и аудита. Курс предлагается в двух форматах: онлайн или в режиме реального времени под руководством инструктора. Онлайн-курс представляет собой пакет, состоящий из видеороликов, PDF-файла, лабораторных заданий и доступа к лабораторным работам.

Курс под руководством инструктора представляет собой интенсивное живое обучение, охватывающее тот же материал, также с доступом к лаборатории. Лаборатории доступны через высокоскоростное подключение к Интернету и содержат множество операционных систем и сетевых устройств, на которых студенты выполняют свои задания.

Лаба (не привилегированный шел доступ)

В целом лаба хорошо соответствует тому, что было изложено в пдфке. В плане получения непривилегированного доступа, надо использовать различные техники (включая атаки на клиентов), собирать пароли со сломанных машин и их использовать повторно, запускать бруты и так далее. Наверное, хуже всего раскрыта тема SQL-инъекций и blind-инъекций — они не встречались ни разу.

Алгоритм получения доступа инициализирующего шела везде как в жизни:

  1. енумерация (Enumeration) портов и сервисов
  2. брут директорий для веба
  3. определение продуктов и версий
  4. поиск и модификация эксплойта

Пара машин требует написание собственных эксплойтов blackbox-ом, но ничего сложного – LFI/RFI. Больше всего меня радовало, что почти отсутствуют машины из разряда CTF, где есть картинка, внутри которой спрятана ещё картинка, внутри которой спрятан zip-архив и так далее.

Лаба (повышение привилегий)

Для меня это была самая интересная часть и она отнимала у меня большую часть времени (по началу).

Обновление правил сертификации

В октябре 2020 года Offensive Security

, что планирует обновить курс OSCE. Уже сейчас эту сертификацию нельзя оплатить, а статус OSCE по новым правилам можно будет получить только по результатам сдачи трёх экзаменов:

Отношение к другим тренингам или экзаменам по безопасности

Успешное завершение экзамена OSCP дает студенту право на получение 40 баллов (ISC) ² CPE .

В 2021 году доминирующий в Великобритании орган по аккредитации для тестирования на проникновение, CREST, начал признавать OSCP как эквивалент своей квалификации CREST Registered Tester (CRT) среднего уровня.

Повторная сертификация

OSCP не требует повторной сертификации.

Подготовка к экзамену. тренировка. повышение привилегий

Можно тренить на тех же машинах с hackthebox.eu, но в целом будет достаточно почитать врайтапы, чтобы понимать, какие техники есть, там есть примеры на все техники, которые вам могут пригодиться на экзамене.

Подготовка к экзамену. Организационная частьДля сдачи экзамена потребуется:

  1. заграничный паспорт (ваше имя и фамилия должны быть написаны на английском)
  2. веб-камера
  3. стабильный интернет

Хорошо иметь дополнительно:

  1. запасной интернет (я использовал мобильный)
  2. запасной компьютер (у меня рядом лежал запасной ноут полностью настроенный на сдачу экзамена)
  3. снепшот ВМ с Kali
  4. копия ВМ с Kali (я положил одну копию на жесткий диск, вторую — на внешний жесткий диск)

Экзамен!

Экзамен считается очным (Proctored Exam) поэтому он начинается за 15 минут до выбранного времени. Вы подключаетесь к специальной веб-платформе, шарите свои экраны, в текстовом чате вам начинают задавать задачи и вопросы:

  1. показать паспорт по веб-камере
  2. показать, что в комнате никого нет
  3. выдать результаты тестового скрипта для подключения
Про сертификаты:  Огнестойкие кабельные линии ЛуисОКЛ

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

Доступ я получил в 9:01.

У меня был простой план действий:

  1. запустить инумерацию сервисов
  2. сделать тачку на переполнение буфера за 1 час
  3. сделать тачку на 10 баллов за 1 час
  4. сделать первую тачку на 20 баллов за 2 часа
  5. сделать вторую тачку на 20 баллов за 2 часа
  6. сделать тачку на 25 баллов за 3 часа

Как видно по моему плану мне требовалось 9 часов на прохождения экзамена, но всё пошло не по плану с самого начала 🙂 я забыл учесть важный тормозящий фактор – записывать по шагам всё что сделано со всеми скриншотами для отчета.

Итоговый результат у меня получился следующий:

  1. переполнение буфера – 2.5 часа. Час потерял, т.к. не заметил пару плохих символов, ещё 30 минут на отчёты
  2. тачка за 10 – 30 минут: 10 минут взлом, 20 минут скрины
  3. первая тачка за 20 – 2.5 часа: 1.5 часа взлом, 40 минут скрины и отчёт, 20 минут перерыв
  4. вторая тачка за 20 – 2 часа: 1.5 часа взлом, 30 минут скрины и отчёт.
  5. тачка за 25 – 3.5 часа: 3 часа взлом (с двумя перерывами), 30 минут скрины и отчёт


В целом экзамен куда интереснее лабы, уязвимости все достаточно свежие – 2021-2021 год. Повышения везде не через уязвимости ядра.

Дольше всего я сидел, ожидая повышения привилегий, все непривилегированные шелы были получены за 10-30 минут.

В экзамене сделано множество ложных путей, которые не приведут к успеху. Если для инициализирующего шела всё легко отбрасывается (например, эксплойт для переполнения буфера на Winodws XP SP2, хотя сам сервис запущен на Windows 10), то в повышении я пару раз погряз в этих ложных путях. Тут главное вовремя сказать себе, что этот вектор стоит изменить и выбрать новый.

Спустя 11 часов я закончил экзамен, сломав всё и отправился выпить пару пинт пива (всего пару, так как на следующий день надо ещё написать формальный красивый отчёт).

Написание и отправка отчётаВзял шаблон с того же репозитория где и шаблон по лабам и заполнил его часа за 4.

Дальше началось веселье с тем куда это отправлять и как. Сначала это надо зашифровать, используя 7z с паролем, пароль не случайный, а ваш айдишник в системе (5 цифр, брутится за 0.3 секунды на CPU). Дальше я долго искал информацию куда вкладывать отчёт по лабе в тот же архив или в другой (Ответ: надо вкладывать в тот же архив).

Полученный архив надо загрузить на сайт, получить ссылку и эту ссылку отправить на специальную почту! Зачем такие сложности в 2020 году, для меня загадка.

Спустя пару часов, вы получите ответное письмо, что: «Мы получили вашу ссылку, но не проверили, что там нормальный архив, что он расшифровывается и что в нём нужные данные. И о том, что результаты экзамена мы сообщим в течении 10 рабочих дней».

ИтогСпустя ровно неделю после экзамена, в воскресенье 1 марта я получил радостное письмо, что я составил архив правильно:

После этого я заполнил данные для отправки мне физического сертификата и карточки OSCP-сертификации.

Постэксплотация в лабе


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

Многие машины ломаются по цепочке, это важно понимать, особенно для атак на клиентов, если тачка называется mail, то возможно к ней кто-то будет цепляться почтовым клиентом), а если HELPDESK, то заходить на открытые тикеты.

Большая четвёркаВ лабе есть 4 машины, которые считаются самыми сложными и некоторые рекомендуют оставить их на конец, это: Pain, Sufferance, Gh0st and Humble. Я знал про их наличие с самого начала, но специально от них не сбегал или их не искал. К моменту, когда я решил вернуться к ним две из четырёх мной уже было сломано.

Моё впечатление от них:

  • Pain – крутая тачка, сложная как и в получении инициализирующего шела, так и в повышении.
  • Sufferance – сложный инициализирующий шел, в несколько этапов, что-то похожее мне досталось на экзамене. Простое повышение.
  • Gh0st – начало и инициализирующий шел как на CTF машинах, но одно из самых красивых повышений во всей лабе.
  • Humble – возможно самый сложный инициализирующий шел в лабе, но простое повышение.

В целом это крутые тачки, и я почти уверен, что если вы сломали их в лабе, то вы сдадите экзамен без проблем, один Humble я ломал дольше, чем сдавал экзамен.

В мой топ ещё бы вошли:

  • Sherlock – пруф получается за пару минут, а над получением реверса можно долго посидеть.
  • beta – очень жизненная машина как и в получении первичного доступа, так и повышения (ограниченный bash).

Итоги лабы

В целом лаба произвела хорошее впечатление, я сломал все машины, за которые брался (около 45 машин).

В целом вспомнилось много вещей, которыми не так часто приходится пользоваться.

Подготовка к экзаменуЗа несколько дней до окончания доступа к лабе, я решил, что пора записаться на экзамен. Тут я был не прав, лучше это сделать заранее. Ближайшая дата в выходной день была только через месяц на 23 февраля (и то на 9 утра).

Вывод и подстава три – если хотите сдавать экзамен в удобное время и на выходных записывайтесь заранее.

Так же я начал писать отчёт по лабе (надо описать 10 машин, если хотите получить 5 дополнительных балов), стандартный пример отчёта слишком заумен, поэтому я стал использовать вот этот. Для подробного описания я выбирал или интересные машины или случаи, где сразу получаешь рута.

Про сертификаты:  Адреса диспансеров (ПНД и НД)

Мне понадобилось сделать 10-15 дополнительных скриншотов, поэтому я рекомендую иметь доступ к лабе во время написания этого отчёта.

Подготовка к экзамену. Тренировка. БинарщинаВ экзамене одна из составных частей — это написание эксплойта на переполнение буфера, она даёт 25 балов, и, не умея это делать быстро и хорошо, идти на экзамен особо не имеет смысла, стоит набить руку.

Добрые люди уже собрали набор ПО, на которых можно потренироваться.

Я решил штук 7, и если на первую я потратил 2 часа времени, то седьмую я решил за 20 минут, по сути, со скоростью написания кода и ввода команд. Алгоритм, который меня не подводил:

  1. фазим на падение буквами A (на экзамене этот шаг уже будет сделан за нас)
  2. ищем офсет, стандартно через pattern_create.rb и pattern_offset.rb
  3. проверяем длину, стандартно меняем A на B в нужном месте, а после B вставляем много C, чтобы посмотреть возможный размер полезной нагрузки без прыжков внутрь наш0его буфера
  4. проверяем плохие символы (я сразу отрезаю x00, так как он будет плохим в 99% случаев)
  5. ищем “jmp esp” (самый сложный шаг, и техники могут быть разными)
  6. проверяем валидность найденного адреса, через брекпоинт в отладчике
  7. генерим пейлоад с реверс шелом (в начало добавляем 20 нопов — x90)
  8. профит

Подготовка к экзамену. тренировка. сервисы

В одном из врайтапов по процедуре экзамена я нашёл вот такую картинку:

На этой картинке показаны какие машины на hackthebox.eu похоже на тачки с экзамена (тачка brainfuck вообще не похожа, на ней рекомендую не тренить). Для активации тачек требуется платная подписка (10 баксов за месяц, сразу не забудьте её отменить).

Я потратил 8 часов и решил 10 машин, чередуя Windows и Linux. И решил, что с меня хватит, но, наверное, тут, как и с переполнением буфера надо доводить до автоматизма. Эти машины проще чем машины на экзамене, по крайне мере в плане повышения привилегий (некоторые копии машин из лабы, не знаю, кто у кого позаимствовал).

Прием

В статье «Kali Linux: Набор инструментов для тестирования на проникновение» Дж. М. Поруп назвал сертификацию OSCP «желанной», потому что для этого требовалось пройти сложный 24-часовой экзамен, демонстрирующий взлом. В пресс-релизе о новом главном операционном директоре компании, предоставляющей услуги безопасности, использование компанией профессионалов OSCP было названо сильной стороной.

В «Полном руководстве по началу работы с кибербезопасностью» Вишал Чавла из Analytics India Mag рекомендовал OSCP как один из двух «хорошо известных» сертификатов безопасности. В интервью генеральному директору Offensive Security Нин Вангу Адам Баннистер из The Daily Swig рассказал о «крупном обновлении» учебного курса «Тестирование на проникновение с Kali Linux (PWK)», которое приводит к сертификации OSCP для студентов, сдающих заключительный экзамен. Обучающие обновления подробно обсуждались в разделе «Безопасность хелпнета».

В книге «Основы веб-взлома: инструменты и методы атаки на Интернет» Джош Паули назвал OSCP «весьма уважаемым». Обучение кибербезопасности для осведомленности и соблюдения требований дало план учебного курса для OSCP. В книге «Темные воды фишинга: наступательная и защитная стороны вредоносных писем» соавтор Кристофер Хаднаги назвал OSCP одной из своих квалификаций.

В руководстве Certified Ethical Hacker (CEH) Foundation Guide протокол OSCP указан в качестве одного из двух сертификатов Offensive Security для «Программы тестирования безопасности». Sicherheit von Webanwendungen in der Praxis также включила OSCP в список рекомендуемых сертификатов.

В «Учебной программе бакалавриата по информационной безопасности: эволюция небольшой программы» Лайонел Мью из Университета Ричмонда сказал, что 35% должностей в области информационной безопасности требуют сертификации, и назвал OSCP «популярной сертификацией».

Решение

  1. Сначала разбираем протокол на сетевом уровне: необходимо проанализировать его составляющие и выделить все места, которые имеет смысл модифицировать. Потом пишем фаззер, который будет подставлять различные значения во все эти места и пытаться выслать их серверу.
  2. Спустя время определённый строковый буфер с определёнными символом и (или) длиной вызовет stack overflow, а это нарушит работу программы и приведёт к её критическому завершению.
  3. Дальше с помощью этого буфера следует разместить payload (полезную нагрузку) в виде ассемблерных команд в бинарном виде, но не просто разместить команды в стеке, а перехватить управление регистром EIP. Для этого можно либо просто найти корректное смешение в буфере, либо попытаться вызвать исключение SEH.
  4. После перехвата управление EIP необходимо передать на последовательность своих команд. Сложность тут в том, что данные в памяти располагаются каждый раз по новому адресу. Поэтому следует найти в оперативной памяти такой участок статичного адреса, который будет ссылаться на регистр, а тот в свою очередь — на адрес в памяти (с возможностью записи и выполнения), где можно будет также расположить свои данные.

Кажется, что осталось только разметить шелл-код, и всё очень просто. Но бывает так, что сначала нужно обойти механизм ASLR, если в памяти не удаётся найти статичный адрес, либо оказывается, что буфер в памяти ограничен алфавитом (разрешёнными символами), тогда необходимо собрать все допустимые символы и из них выстроить цепочку альтернативных команд.

А если буфер ограничен длиной, то надо найти другое место в памяти программы, где дополнительно можно разместить данные, найти их в памяти и сделать переход на них (техника egghunter) или вообще написать свой шелл-код, который выполнит то, что вы хотите, в представленных ограничениях.

Также бывает, что эти дополнительно размещённые данные частично повреждаются, поэтому следует оценить повреждения и придумать, как обойти это ограничение. Например, убрать badchars, разбить свой шелл-код на цепочку и сделать цепочку вызовов. Всё это усложняется тем, что отладчик (ваш основной инструмент) может некорректно работать с выделением памяти и неправильно отображать данные в памяти во время отладки — Bingo!

По сути, бинарная эксплуатация, да и пентест в целом — это игра с обходом кучи ограничений, использование различных методик и применение смекалки. Решение подобной задачи может занять от 6 часов до бесконечности, поэтому 48 часов на 4 задачи не кажутся мне избыточными.

Оцените статью
Мой сертификат
Добавить комментарий