Всем привет!
Наконец-то нашёл время и структурировал свои мысли по подготовке и сдаче экзамена на сертификацию OSCP.
Информации в интернете о курсе «Penetration Testing with Kali Linux» (PWK) и экзамене «Offensive Security Certified Professional» (OSCP) довольно много, но ещё одна статья, я думаю, никому не повредит.
Ссылки на похожие статьи с форума прилагаю:
Опишу свой опыт перед началом подготовки к сдаче экзамена. Проработал 5 лет в компаниях, занимающихся интеграцией различных систем безопасности. Большую часть времени работал в отделе сопровождения, за это время с чем только ни сталкивался (администрирование AD, настройка сети и систем IPS/IDS, внедрение систем виртуализации и систем защиты виртуализации, консультации и решение проблем с иностранными коллегами и даже переводы инструкций и интерфейса к иностранному ПО). Короче, работы было много, и сфера задач была сильно размазана - на тот момент мне это нравилось. Я смог прикоснуться ко многим аспектам работы в ИТ и ИБ, но конечную цель для себя я видел в сфере аудита безопасности, а если быть совсем точным, то в пентесте.
В компании у нас часто премировали сотрудников не деньгами, а возможностью отправиться на обучение (зачастую отправляли на обучение, необходимое для компании, и при условии подписания договора о возмещении стоимости обучения в случае увольнения в течении 2х лет после завершения обучения), но мне, в итоге, удалось убедить начальство в необходимости повышения моих навыков в пентесте, и мне дают добро начать обучение. Поскольку компании необходимы были бухгалтерские документы, выбор пал на российский УЦ «Специалист» и курсы CEH и CEH2.
После обучения успешно сдаю CEH и совсем чуток не хватает баллов сдать ESCA (проходной балл 70%, я написал на 69,3%). Изучив, что стоимость пересдачи экзамена на ESCA выходит в 1000$, решаю забить на него и потратить эти деньги на OSCP.
Еще через год продуктивной работы умудряюсь выбить для себя ещё одно обучение и выбираю курс PWK, плюс лабы на 60 дней.
Курс обучения PWK
Обучение у меня начиналось в середине осени 2018 года, и начинал я учиться ещё по старым учебникам и видео (в 2020 году курсы обновили). Перед началом обучения присылают ссылки на PDF учебник и видео, которые стоит скачать и сохранить, потому что ссылка пропадёт примерно через неделю. И если появится необходимость запросить повторно материалы, то за них придётся повторно заплатить.
Обучение очень захватывает, поначалу ты изучаешь материалы учебника, а после тебя кидают в поле с лабораторными машинами. Никаких подсказок, указателей и прочего. Начинаешь осваиваться сам по себе, искать варианты решения или похожие кейсы в интернете. Голова начинает реально пухнуть от новой информации и начинаешь замечать, что тупо не можешь уснуть, если не решил машину до конца. В голове постоянно летают мысли, в какую сторону стоит попробовать двинуться. Для упрощения обучения можно, конечно, посмотреть небольшие подсказки на форуме, но я старался не пользоваться этой возможностью. (Один раз подсказка с форума была воспринята мной неправильно, и я потратил один день, двигаясь в неправильном направлении).
Во время обучения по учебнику можно заполнять дневник, выполняя и конспектируя задания. В дальнейшем, этот дневник можно приложить к финальному отчёту и получить за него 5 дополнительных баллов. Но я сначала забил на него, потом, когда решил, что стоит всё же подстраховаться, начал его заполнять. На 45 странице дневника я понял, что меня это задолбало и я повторно решил на него забить))) Освободившееся время я решил потратить на практику.
За 60 дней я сделал 35 машин. Мне казалось, что этого достаточно, но в этом курсе нет такого показателя, как «реши все машины и ты 100% сдашь экзамен». С такими результатами я подошёл к первой попытке сдачи экзамена.
Попытка сдачи экзамена номер 1
В момент первой попытки сдачи экзамена присутствие проктора (человек, который за тобой смотрит) ещё было не обязательным условием. Но Offensive Security предложили мне поучаствовать в тестировании функционала за вознаграждение (100 баксов на счёт аккаунта, которые можно будет потратить при пересдаче или оплате других курсов). Я решил, что особо ничего не теряю и согласился.
В день экзамена с проктором никаких проблем не было, показал, что в комнате никого, кроме меня и собаки, нет, под столом хакеров, готовых мне помогать, тоже нет, расшарил два экрана и начал сдавать.
Я очень плохо помню свою первую попытку сдачи (не помню, какие хосты были), но чётко помню, как сдал BOF и больше ничего не смог сделать. Я бился в закрытые двери (или они были просто нарисованы на стене). В итоге я не спал сутки (от начала и до конца экзамена я не сомкнул глаз), смог получить только 1 пользователя на машине, за которую давали 20 баллов и провалил первую попытку сдачи экзамена. Из-за нервов и недосыпа на следующий день у меня поднимается температура до 39 градусов, и я полуживой пытаюсь психологически прийти в себя.
Продолжаем повышать навыки самостоятельно
После такой стрессовой сдачи экзамена я решил переключиться просто на работу, начались завалы и переработки, так что было не до повторной пересдачи экзамена. Через полгода я увольняюсь из компании, по договорённости оплачиваю 50% стоимости курса из своего кармана и решаю, что теперь я непременно должен сдать экзамен.
Брать повторный доступ к лабораторным я не очень хотел (делать это уже надо было за свой счёт). И я решаю взять себе платную подписку на Hack The Box, нашел список машин OSCP-like и пошёл их решать. Для повышения навыков после сдачи машин просматривал видео от ippsec (а ещё у него есть
К моменту, когда я хотел подавать запрос на пересдачу, выходит информация об обновлении курса, а главное - ценовой политики. Плюс бакс полез вверх, но отступать я не хотел. Поскольку для сдачи экзамена требуется двое суток, нужно было записываться на сдачу в субботу, но за год это стало как-то сложнее, в итоге я смог записаться только на майские праздники, которые наступали через 2 месяца.
Попытка сдачи экзамена номер 2
Ко второй попытке я был морально готов, четко расписал себе временной план по работе (2 часа работы, потом перерыв 20 минут, обязательно сон минимум 4-5 часов).
Начало экзамена было назначено на 12 часов по Москве, так что я спокойно выспался, позавтракал и был готов к началу. Опять прошёл рутинную проверку проктором и приступил к экзамену.
Первым делом запустил AutoRecon на сканирование 4 хостов, а сам ушёл делать BOF. Справился с ним минут за 45, и к этому времени уже появилась часть информации об остальных машинах. Дальше, придерживаясь своего плана с временными интервалами, я решил машину на 20 баллов за 3 часа, машину на 25 баллов за 2 часа (тут мне сильно повезло с эксплоитом на повышение прав, я сразу попал на правильный). Машина на 10 баллов так же была сделана часа за 2 и потом я упёрся в машину на 20 баллов. Я потратил на неё около 5 часов, нашёл SQL инъекцию, но так и не смог её дальше раскрутить (из-за чего теперь мучаюсь и очень хочу узнать, что же с ней надо было делать). В какой-то момент я понял, что баллов для сдачи мне хватает, но стоит повторно проверить и задокументировать все шаги с каждой машиной и наснимать побольше скриншотов. Тут я словил жесткую панику, потому что из 4 машин 2 моих эксплоита повторно не воспроизводились))) Я потратил ещё часа 2, чтобы разобраться с проблемами и потом ушёл с чистой совестью спать. Утром потратил ещё 1 час на машину с SQL, так ничего нового не нашёл и решил закончить экзамен.
Все уязвимости, с которыми я столкнулся, были обнаружены в период 2016-2018 (сдавал я в 2020 году). Но, на сколько понял, у Offensive Security довольно большой пул машин, поэтому там могут попадаться машины как с новыми, так и со старыми уязвимостями.
Оставалось написать отчёт, но с этим проблем у меня не возникло (на работе я писал огромное количество отчётов, так что в этом опыта у меня было больше, чем в пентесте J ). Для написания отчёта я пользовался стандартным шаблоном отчёта от Offensive Security, где просто пошагово расписал, какие команды я вводил. (кстати, из CherryTree текст в Word вставлялся с подсветкой синтаксиса, и выглядел отчёт очень презентабельно). Отчёт был написан за 4 часа, проверен на орфографию женой-лингвистом и отправлен.
После 1.5 недели ожидания меня оповестили, что я сдал, но из-за коронавируса сертификат я получил только в Августе.
Полезная информация
Хочу поделиться полезной, на мой взгляд, информацией, которая может пригодиться при сдаче экзамена:
Виртуальные машины
У меня был большой опыт работы с продукцией виртуализации компании VMware, поэтому я, недолго думая, решил использовать VMware Workstation.
Для обучения я использовал выданную машину OffsecVM-2018.3-20180821 и решил ничего на ней не обновлять. Максимум качал дополнительно с github'a софт и обновлял зависимости. Также не забывайте про возможность использования Snapshot’ов.
Сдачу задания с переполнением буфера я довёл до автоматизма, в этом мне помогла методичка PWK, но в интернете гуляет очень много похожего материала. Если методички нет, но очень хочется начать готовиться, то можно найти информацию по BOF (например,
Непосредственно перед экзаменом я дополнительно развернул Kali 2019.3 и собирался её использовать как резервную машину.
Такая же схема у меня была подготовлена на стационарном ПК (если ноутбук неожиданно откажет). Помимо этого, я подготовил резервную линию связи, в её качестве я собирался задействовать раздачу мобильного интернета.
CherryTree
Также рекомендую завести себе персональную «Базу знаний». Я видел советы использовать для этого KeepNote или CherryTree (тут на вкус и цвет фломастеры разные, выбирайте, что вам визуально больше понравится).
Наполнять «Базу знаний» стоит по мере изучения курса PWK, решения лабораторных машин и машин с Hack The Box. Однако не ограничивайтесь и не останавливайтесь на её наполнении даже после сдачи экзамена. Я и сейчас продолжаю пополнять её новой информацией. Порой я вспоминал, что похожий вектор мне уже встречался, и я тратил намного меньше времени на поиск этого вектора у себя в заметках, нежели в интернете.
Своими наработками я так же поделюсь, возможно, кому-то понравится моя структура и заметки, и вы начнёте на этой основе создавать свою «Базу знаний». Скачать можно из прикрепленных файлов к этой теме.
Заключение
После первой провальной попытки я прочитал очень много отчётов о сдаче этого экзамена. Я находил людей, которые сдавали экзамен с 3го или даже 4го раза. Эта информация дала мне чуть больше уверенности в повторной сдаче экзамена. Так или иначе, с каждой новой попыткой сдачи экзамена или решения новой машины на Hack The Box, ты обрастаешь новыми знаниями и становишься чуть более опытным.
К тому же надо понять философию всего курса - “Try Harder”. Изучить материалы и применить что-то новое - это “Try Harder”. Расширять свой кругозор, искать и отфильтровывать кучу информации в интернете - это “Try Harder”. Научиться работать в стрессовой ситуации и в сжатые сроки — это тоже “Try Harder”. Да даже писать дурацкие отчёты, которые никому не нравятся - это тоже “Try Harder”. Вылезая за границы известного и комфортного, мы растём как специалисты, и всё это можно свести к простой фразе - “Try Harder”.
P.S. Я хочу пожелать терпения и сил сдать этот экзамен всем, кто решился и встал на путь к OSCP. В сложные моменты вспомните, почему вы этим начали заниматься, и не позволяйте возникшим сложностям взять над вами верх!
Наконец-то нашёл время и структурировал свои мысли по подготовке и сдаче экзамена на сертификацию OSCP.
Информации в интернете о курсе «Penetration Testing with Kali Linux» (PWK) и экзамене «Offensive Security Certified Professional» (OSCP) довольно много, но ещё одна статья, я думаю, никому не повредит.
Ссылки на похожие статьи с форума прилагаю:
- 31 день опыта OSCP [Перевод]
- Дорога к OSCP - утилиты и ссылки
- Дорога к OSCP или мотивация к Try Harder!
- Как я сдавал OSCP?!
Опишу свой опыт перед началом подготовки к сдаче экзамена. Проработал 5 лет в компаниях, занимающихся интеграцией различных систем безопасности. Большую часть времени работал в отделе сопровождения, за это время с чем только ни сталкивался (администрирование AD, настройка сети и систем IPS/IDS, внедрение систем виртуализации и систем защиты виртуализации, консультации и решение проблем с иностранными коллегами и даже переводы инструкций и интерфейса к иностранному ПО). Короче, работы было много, и сфера задач была сильно размазана - на тот момент мне это нравилось. Я смог прикоснуться ко многим аспектам работы в ИТ и ИБ, но конечную цель для себя я видел в сфере аудита безопасности, а если быть совсем точным, то в пентесте.
В компании у нас часто премировали сотрудников не деньгами, а возможностью отправиться на обучение (зачастую отправляли на обучение, необходимое для компании, и при условии подписания договора о возмещении стоимости обучения в случае увольнения в течении 2х лет после завершения обучения), но мне, в итоге, удалось убедить начальство в необходимости повышения моих навыков в пентесте, и мне дают добро начать обучение. Поскольку компании необходимы были бухгалтерские документы, выбор пал на российский УЦ «Специалист» и курсы CEH и CEH2.
В УЦ Специалист существует 3 курса с названием “CEH”:
- «CEH. Этичный хаккинг и тестирование на проникновение»;
- «СЕН2. Тестирование на проникновение хакера и анализ безопасности»;
- «СЕН3. Расследование хакерских инцидентов».
- Certified Security Analyst» (ECSA);
- Computer Hacking Forensic Investigator (CHFI).
После обучения успешно сдаю CEH и совсем чуток не хватает баллов сдать ESCA (проходной балл 70%, я написал на 69,3%). Изучив, что стоимость пересдачи экзамена на ESCA выходит в 1000$, решаю забить на него и потратить эти деньги на OSCP.
Еще через год продуктивной работы умудряюсь выбить для себя ещё одно обучение и выбираю курс PWK, плюс лабы на 60 дней.
Курс обучения PWK
Обучение у меня начиналось в середине осени 2018 года, и начинал я учиться ещё по старым учебникам и видео (в 2020 году курсы обновили). Перед началом обучения присылают ссылки на PDF учебник и видео, которые стоит скачать и сохранить, потому что ссылка пропадёт примерно через неделю. И если появится необходимость запросить повторно материалы, то за них придётся повторно заплатить.
Обучение очень захватывает, поначалу ты изучаешь материалы учебника, а после тебя кидают в поле с лабораторными машинами. Никаких подсказок, указателей и прочего. Начинаешь осваиваться сам по себе, искать варианты решения или похожие кейсы в интернете. Голова начинает реально пухнуть от новой информации и начинаешь замечать, что тупо не можешь уснуть, если не решил машину до конца. В голове постоянно летают мысли, в какую сторону стоит попробовать двинуться. Для упрощения обучения можно, конечно, посмотреть небольшие подсказки на форуме, но я старался не пользоваться этой возможностью. (Один раз подсказка с форума была воспринята мной неправильно, и я потратил один день, двигаясь в неправильном направлении).
Во время обучения по учебнику можно заполнять дневник, выполняя и конспектируя задания. В дальнейшем, этот дневник можно приложить к финальному отчёту и получить за него 5 дополнительных баллов. Но я сначала забил на него, потом, когда решил, что стоит всё же подстраховаться, начал его заполнять. На 45 странице дневника я понял, что меня это задолбало и я повторно решил на него забить))) Освободившееся время я решил потратить на практику.
За 60 дней я сделал 35 машин. Мне казалось, что этого достаточно, но в этом курсе нет такого показателя, как «реши все машины и ты 100% сдашь экзамен». С такими результатами я подошёл к первой попытке сдачи экзамена.
Попытка сдачи экзамена номер 1
В момент первой попытки сдачи экзамена присутствие проктора (человек, который за тобой смотрит) ещё было не обязательным условием. Но Offensive Security предложили мне поучаствовать в тестировании функционала за вознаграждение (100 баксов на счёт аккаунта, которые можно будет потратить при пересдаче или оплате других курсов). Я решил, что особо ничего не теряю и согласился.
В день экзамена с проктором никаких проблем не было, показал, что в комнате никого, кроме меня и собаки, нет, под столом хакеров, готовых мне помогать, тоже нет, расшарил два экрана и начал сдавать.
Я очень плохо помню свою первую попытку сдачи (не помню, какие хосты были), но чётко помню, как сдал BOF и больше ничего не смог сделать. Я бился в закрытые двери (или они были просто нарисованы на стене). В итоге я не спал сутки (от начала и до конца экзамена я не сомкнул глаз), смог получить только 1 пользователя на машине, за которую давали 20 баллов и провалил первую попытку сдачи экзамена. Из-за нервов и недосыпа на следующий день у меня поднимается температура до 39 градусов, и я полуживой пытаюсь психологически прийти в себя.
После такой стрессовой сдачи экзамена я решил переключиться просто на работу, начались завалы и переработки, так что было не до повторной пересдачи экзамена. Через полгода я увольняюсь из компании, по договорённости оплачиваю 50% стоимости курса из своего кармана и решаю, что теперь я непременно должен сдать экзамен.
Брать повторный доступ к лабораторным я не очень хотел (делать это уже надо было за свой счёт). И я решаю взять себе платную подписку на Hack The Box, нашел список машин OSCP-like и пошёл их решать. Для повышения навыков после сдачи машин просматривал видео от ippsec (а ещё у него есть
Ссылка скрыта от гостей
, на котором можно ввести необходимую тему, и он покажет таймкоды видео, где эта тема объясняется). Он отлично объясняет, почему тот или иной эксплоит работает, и очень часто показывает, как можно решить машину без использования Metasploit.К моменту, когда я хотел подавать запрос на пересдачу, выходит информация об обновлении курса, а главное - ценовой политики. Плюс бакс полез вверх, но отступать я не хотел. Поскольку для сдачи экзамена требуется двое суток, нужно было записываться на сдачу в субботу, но за год это стало как-то сложнее, в итоге я смог записаться только на майские праздники, которые наступали через 2 месяца.
Попытка сдачи экзамена номер 2
Ко второй попытке я был морально готов, четко расписал себе временной план по работе (2 часа работы, потом перерыв 20 минут, обязательно сон минимум 4-5 часов).
Начало экзамена было назначено на 12 часов по Москве, так что я спокойно выспался, позавтракал и был готов к началу. Опять прошёл рутинную проверку проктором и приступил к экзамену.
Первым делом запустил AutoRecon на сканирование 4 хостов, а сам ушёл делать BOF. Справился с ним минут за 45, и к этому времени уже появилась часть информации об остальных машинах. Дальше, придерживаясь своего плана с временными интервалами, я решил машину на 20 баллов за 3 часа, машину на 25 баллов за 2 часа (тут мне сильно повезло с эксплоитом на повышение прав, я сразу попал на правильный). Машина на 10 баллов так же была сделана часа за 2 и потом я упёрся в машину на 20 баллов. Я потратил на неё около 5 часов, нашёл SQL инъекцию, но так и не смог её дальше раскрутить (из-за чего теперь мучаюсь и очень хочу узнать, что же с ней надо было делать). В какой-то момент я понял, что баллов для сдачи мне хватает, но стоит повторно проверить и задокументировать все шаги с каждой машиной и наснимать побольше скриншотов. Тут я словил жесткую панику, потому что из 4 машин 2 моих эксплоита повторно не воспроизводились))) Я потратил ещё часа 2, чтобы разобраться с проблемами и потом ушёл с чистой совестью спать. Утром потратил ещё 1 час на машину с SQL, так ничего нового не нашёл и решил закончить экзамен.
Все уязвимости, с которыми я столкнулся, были обнаружены в период 2016-2018 (сдавал я в 2020 году). Но, на сколько понял, у Offensive Security довольно большой пул машин, поэтому там могут попадаться машины как с новыми, так и со старыми уязвимостями.
Оставалось написать отчёт, но с этим проблем у меня не возникло (на работе я писал огромное количество отчётов, так что в этом опыта у меня было больше, чем в пентесте J ). Для написания отчёта я пользовался стандартным шаблоном отчёта от Offensive Security, где просто пошагово расписал, какие команды я вводил. (кстати, из CherryTree текст в Word вставлялся с подсветкой синтаксиса, и выглядел отчёт очень презентабельно). Отчёт был написан за 4 часа, проверен на орфографию женой-лингвистом и отправлен.
После 1.5 недели ожидания меня оповестили, что я сдал, но из-за коронавируса сертификат я получил только в Августе.
Полезная информация
Хочу поделиться полезной, на мой взгляд, информацией, которая может пригодиться при сдаче экзамена:
Виртуальные машины
У меня был большой опыт работы с продукцией виртуализации компании VMware, поэтому я, недолго думая, решил использовать VMware Workstation.
Для обучения я использовал выданную машину OffsecVM-2018.3-20180821 и решил ничего на ней не обновлять. Максимум качал дополнительно с github'a софт и обновлял зависимости. Также не забывайте про возможность использования Snapshot’ов.
Сдачу задания с переполнением буфера я довёл до автоматизма, в этом мне помогла методичка PWK, но в интернете гуляет очень много похожего материала. Если методички нет, но очень хочется начать готовиться, то можно найти информацию по BOF (например,
Ссылка скрыта от гостей
). Для дополнительной практики я использовал виртуальные машины с Windows XP и Windows 7, на которые устанавливал софт. Вот мой список, на котором я тренировался:- SLmail v5.5 (
Ссылка скрыта от гостей)
- FreeFloatFTP Server 1.0 :
Ссылка скрыта от гостей
- Minishare 1.4.1 (
Ссылка скрыта от гостей)
- Savant 3.1 (
Ссылка скрыта от гостей)
- WarFTPd 1.6.5 (
Ссылка скрыта от гостей)
- PCMAN FTP 2.0.7 (
Ссылка скрыта от гостей)
Если перейти по ссылкам, то вы попадёте на готовый эксплоит или пошаговую инструкцию, для обучения нам этого не надо, поэтому просто ищем кнопку «Vulnerable App», и рядом будет ссылка на скачивание уязвимого ПО. Начали качать ПО и уходим с сайта самостоятельно обучаться)) Максимум, что ещё мы можем найти в интернете - это первый скрипт, который мы будем использовать для начального фаззинга ПО.
Такая же схема у меня была подготовлена на стационарном ПК (если ноутбук неожиданно откажет). Помимо этого, я подготовил резервную линию связи, в её качестве я собирался задействовать раздачу мобильного интернета.
CherryTree
Также рекомендую завести себе персональную «Базу знаний». Я видел советы использовать для этого KeepNote или CherryTree (тут на вкус и цвет фломастеры разные, выбирайте, что вам визуально больше понравится).
Наполнять «Базу знаний» стоит по мере изучения курса PWK, решения лабораторных машин и машин с Hack The Box. Однако не ограничивайтесь и не останавливайтесь на её наполнении даже после сдачи экзамена. Я и сейчас продолжаю пополнять её новой информацией. Порой я вспоминал, что похожий вектор мне уже встречался, и я тратил намного меньше времени на поиск этого вектора у себя в заметках, нежели в интернете.
Своими наработками я так же поделюсь, возможно, кому-то понравится моя структура и заметки, и вы начнёте на этой основе создавать свою «Базу знаний». Скачать можно из прикрепленных файлов к этой теме.
После первой провальной попытки я прочитал очень много отчётов о сдаче этого экзамена. Я находил людей, которые сдавали экзамен с 3го или даже 4го раза. Эта информация дала мне чуть больше уверенности в повторной сдаче экзамена. Так или иначе, с каждой новой попыткой сдачи экзамена или решения новой машины на Hack The Box, ты обрастаешь новыми знаниями и становишься чуть более опытным.
К тому же надо понять философию всего курса - “Try Harder”. Изучить материалы и применить что-то новое - это “Try Harder”. Расширять свой кругозор, искать и отфильтровывать кучу информации в интернете - это “Try Harder”. Научиться работать в стрессовой ситуации и в сжатые сроки — это тоже “Try Harder”. Да даже писать дурацкие отчёты, которые никому не нравятся - это тоже “Try Harder”. Вылезая за границы известного и комфортного, мы растём как специалисты, и всё это можно свести к простой фразе - “Try Harder”.
P.S. Я хочу пожелать терпения и сил сдать этот экзамен всем, кто решился и встал на путь к OSCP. В сложные моменты вспомните, почему вы этим начали заниматься, и не позволяйте возникшим сложностям взять над вами верх!
Вложения
Последнее редактирование: