![]() |
Всем привет!
https://forum.antichat.xyz/attachmen...269f2b4227.png Решил поделиться своим опытом получения сертификата OSWE в 2024 году. У меня уже есть опыт сдачи сертификаций, участия в Standoff, да и мои рабочие задачи напрямую связаны с поиском уязвимостей, однако полноценного опыта работы в AppSec или опыта программирования у меня не было. Поэтому я не могу сказать, что для меня это было легкой прогулкой. В отзыве я не имею права раскрывать детали экзамена, но часть моих советов однозначно может пригодиться. Praemonitus, praemunitus Мои предыдущие статьи по сертификациям OSCP, WAPT, SQLIM, PNPT вы можете найти по соответствующим ссылкам. Общая информация про курс WEB300 и сертификацию OSWE OSWE – это сертификация от Offensive Security. Этот сертификат показывает, что вы умеете в AppSec, что-то понимаете в синтаксисе PHP, Python, Java, Node.js, а также ковырялись в разными СУБД. В отличие от OSWA, античат WAPT или HTP CBBH в этой сертификации вам придётся столкнуться с исходным кодом веб-приложений и проанализировать его на конкретные уязвимости. Вишенкой на торте будет написание полноценного эксплоита, который при выполнении выдаст вам реверс шелл на атакуемом хосте. Да, отправленные флаги — это не гарантия сдачи экзамена. Для сдачи экзамена вы обязаны:
В случае успешной сдачи OSWE + OSEP + OSED вы получаете статус OSCE3. Это серьезное достижение, которое демонстрирует ваши всесторонние навыки в атакующей сфере инфобеза. Данная ачивка уже покорилась нашему коллеге @undefo. Я же пока к этому только двигаюсь – медленно, но верно. Подготовка В середине 2023 я смог убедить начальство проспонсировать сдачу OSWE. Правда, мне предложили не просто купить курс, но и вернуть затраченные средства в случае успешной сдачи экзамена. Это, кстати, ещё давало мне +190к к мотивации))) В начале декабря 2023 года я с помощью друга и его иностранной карточки купил подписку Learn One за 1999 баксов. При наличии иностранной банковской карты вы не столкнётесь ни с какими проблемами при покупке и последующей сдаче экзамена. Кстати, Offensive Security уже который год делают скидки на данный вид подписки с конца ноября по конец декабря (черная пятница). Эта подписка даёт доступ на 1 год к учебным материалам выбранной сертификации и к 2-м попыткам сдачи экзамена, а также доступ и 1 попытка сдачи сертификатов OSWP и KLCP. Насколько я помню, там был ещё доступ к каким-то учебным модулям, но я ими так и не воспользовался. Всех, кто приобретает подписку Learn One, хочу предупредить! Вы должны использовать попытки сдачи экзамена в течение работы подписки. Если ваш срок подписки закончился, а у вас остались попытки на сдачу экзамена, вам их не вернут и не дадут возможность ими воспользоваться (об этом на моём примере будет в разделе “экзамен”). Начало подготовки я наметил себе на январь 2024 года, но жизнь внесла свои коррективы и на работе меня перебросили на проекты по анализу Android-приложений. Из-за чего я спешно прошёл курс "Анализ защищённости приложений Андроид" от нашей Академии античат . Возможно, про этот курс я напишу отзыв чуть позже (я слышал он нескольких человек, что после этого курса можно спокойно покупать попытку сдачи международной сертификации eMAPT от eLearSecurity и без особых усилий её сдать). В итоге, к обучению я смог приступить только в конце августа 2024 года. Лучше так, конечно, не делать, поскольку времени у меня было довольно мало. Благо, после лета на работе мне начали давать проекты по анализу кода, так что я совмещал учебу и работу в одной области, что, несомненно, помогло мне в подготовке. Читатели могут задаться вопросом, почему 3 месяца до конца подписки — это мало? Потому что в случае неудачной попытки сдачи экзамена вы должны ожидать минимум 4 недели перед второй попыткой, а, значит, у меня уже было не 3 месяца, а 2. Плюс была запланирована командировка в Китай, что тоже внесло свои коррективы в обучение. Врать не буду, пришлось сильно попотеть, материалов много, если у вас нет опыта анализа кода руками, без SAST, то будет непросто. Но всё возможно, как обычно говорят: try harder! Учёба Сам формат учёбы стандартный для OffSec. Дали методичку (можно скачать, а можно читать онлайн), дали видео и учебные стенды. Читай методичку, смотри видео, повторяй увиденное на стенде. На 2024 год я обнаружил 3 новых модуля, для которых ещё нет видео-уроков. В методичке есть дополнительные задания к каждому модулю, которые также будет полезно выполнить. Есть Extra Miles - 3 машины, которые нужно решить полностью без подсказок или методических материалов. Так сказать, практика перед экзаменом. Их я, конечно, не решал) За вашим прогрессом выполнения заданий никто не следит, тут вы сами вольны выбирать темп обучения. Можно вообще ничего не решать и сразу записаться на экзамен. Доступ ко всем машинам осуществляется через сервис на три буквы, о котором теперь нельзя лишний раз писать. Напрямую этот сервис с моим оператором "Ростелеком Москва" работать не захотел, соединение устанавливалось, но доступа к лаборатории не было. Для решения этой проблемы я использовал свой персональный VDS сервис как промежуточный шлюз. Хоть OffSec и не рекомендуют такую схему, других вариантов у меня не было. Схема, кстати, работала стабильно как во время учёбы, так и во время экзамена. Во время учебы вас познакомят с инструментарием и методами поиска уязвимого кода, однако мне не очень нравилось, как преподносится материал. В большинстве случаев вам просто напрямую показывают строку кода и объясняют, что тут за уязвимость. А хотелось получить базовое понимания анализа кода, запомнить какие-то паттерны или просто научиться правильно смотреть код в целом, а не построчно. Для этого пришлось подключать дополнительные ресурсы, в этом, как обычно, помогают гугл и ютуб. На ютубе было отсмотрено много роликов, посвященных Appsec, Code review или сдаче OSWE. Это хоть и не дало прямых ответов, но картина начинала вырисовываться. Поняв принцип Sinks & Sources (поиск мест с входящими данными от пользователей и их дальнейшая обработка + вывод), стало немного проще начинать анализ кода. Кстати, вы можете найти на github несколько стендов, которые студенты OSWE готовили для себя, в качестве дополнительных практических заданий. Также можно найти список OSWE-like машин на HackTheBox, TryHackMe или Vulnhub, но я из-за загруженности посмотрел максимум 2 или 3 машины из списка. (GitHub - ajdumanhug/oswe-practice: OSWE-like machines) Ещё я видел много комментариев с рекомендациями о практике на Master Web Hacking and Security Code Review!, но он платный и я так и не нашёл способа его оплатить. Моё мнение - всё решает практика и насмотренность, когда вы не просто вчитываетесь в каждую строчку кода (это бесполезно!), а изучаете приложение и глобально начинаете себе представлять, как оно работает, после этого изучаете функции, которые потенциально могут содержать в себе уязвимости. А после нахождения таких функций уже помогает опыт эксплуатации SQLi, SSTi, XXS, XXE и прочих уязвимостей. Во время обучения почти в каждой теме затрагивалась тема по обходу WAF, что тоже добавило в копилку знаний пару интересных методов. Плюс студентам доступен дискорд сервер, в котором можно попросить помощи у таких же студентов. Чаще всего вы там не получите готовый ответ, но намёк на нужный вектор вам дадут. Во время прохождения практических уроков я крайне рекомендую набивать опыт в написании эксплоитов. Выберите для себя удобный язык программирования и практикуйтесь в нём. На экзамене вы вполне можете выдергивать части кода из предыдущих эксплоитов. Я использовал python, но также знаю, что некоторые студенты писали эксплоиты на GO. Тут каждый выбирает для себя удобный инструмент. Для большинства рассмотренных в лаборатории примеров уже существуют готовые эксплоиты, но поскольку во время экзамена вам нужно будет писать эксплоит для ранее не известного сервиса, вам крайне необходимо отточить этот навык. Для себя во время обучения я заранее подготовил несколько скриптов для работы с SQLi, нашёл удобный плагин для Burpsuite под названием Copy As Python-Requests и морально подготовился к новой задаче. Сразу отмечу, что никто не будет проверять, насколько элегантно написан ваш эксплоит, главное, чтобы он работал) (я вот свои никому не покажу, потому что они состоят из одних костылей)))) Вот в этот репозиторий во время учебы я тоже часто изучал: GitHub - rizemon/exploit-writing-for-oswe: Tips on how to write exploit scripts (faster!) Общая информация по экзамену OSWE На сдачу OSWE даётся 48 часов + 24 часа на написание отчёта. У вас будет доступ к 5 машинам:
При получении админской учётки у вас будет возможность прочитать флаг - local.txt (он так называется, хотя файл никакой искать не нужно, флаг будет лежать на странице админа). После получения RCE нужно будет получить флаг из proof.txt (обычно он лежит где-то в веб-директории или рядом). На экзамене запрещено использовать статические анализаторы кода, автоматические средства эксплуатации (sqlmap и прочее), автоматические средства сканирования хостов (acunetix и тп). Не уверен, что сканеры типа nuclei запрещены, но смысла в них нет. Сервисы на экзамене самописные, уязвимости также сделаны специально в определенных местах, так что найти их можно только руками. Также, во время экзамена вам запрещено пользоваться любыми сервисами с AI. Так что достаём с антресоли и сдуваем пыль с навыков активного поиска информации в гугле) Однако вам никто не запрещает пользоваться фаззерами, генераторами payload'ов или шелов. Burpsuite можно использовать, но только бесплатную community версию. Во время экзамена вы подключаетесь к лабораторной сети и получаете доступ к машинам с исходным кодом приложения. На этих машинах уже находится необходимый инструментарий (VSCode с плагинами и вспомогательное ПО) для проведения анализа. Код выкачивать категорически запрещено. На машину вы подключаетесь по RDP, поэтому вы должны понимать, что много удовольствия от такого взаимодействия вы не получите - придётся потерпеть. Но, несмотря на то, что код выкачивать нельзя, можно делать скриншоты кода (вам же нужно писать отчёт о выявленных уязвимостях ). Экзамен (1 попытка) Морально к экзаменам от оффсеков я уже был готов. Я понимал, что будет сложно, что нужно правильно регулировать время и силы. Как многие говорят: OSWE это не спринт, как OSCP, а марафон. Но нервы всё равно давали о себе знать, так как больше всего пугала неизвестность. Собравшись с духом, я приступил к экзамену в 11 утра по МСК. Первые сутки я работал по расписанию, делал перерывы каждые 2-3 часа и ушёл на 7-часовой сон примерно в 2 часа ночи. За первый день я смог найти обход авторизации, и у меня были идеи по выполнению RCE на этой машине. Однако с уменьшением времени на экзамен мои результаты не становились лучше, поэтому вторые сутки я уже провёл практически без перерывов и сна. К сожалению, это не помогло, и первую попытку я провалил. В итоге, за первую попытку мне удалось обойти авторизацию и найти потенциальную RCE на одной машине, но вот на второй машине мне никак не поддавался обход авторизации. И даже несмотря на то, что под конец второго дня у меня уже было полноценное понимание, как написать эксплоит к одной машине, на второй я только понимал, как выполнить RCE. А без авторизации как админ это была бесполезная информация. В итоге после 48-часового марафона я ушёл побежденный, но не сломленный (ага, не сломленный он... ) Мой косяк и как мне повезло Перед первой попыткой я понимал, что мне нужно её использовать с расчётом на то, что при неудаче мне нужно будет ждать 4 недели перед повторной попыткой. Я обсудил данный вопрос с техподдержкой и мне сказали, что я могу посчитать дни и начать свою вторую попытку в последний день подписки. Вот только я не учёл, что на последний день мой подписки может просто не быть свободных слотов для экзамена (особенно если он выпадает на выходной, а он на выходной и попадал)! В итоге, это осознание мне пришло на следующий день после проваленного экзамена, и я судорожно начал писать бота, который проверял каждые 15 минут доступность слотов на мой последний день. Параллельно с этим написал в техподдержку вопрос, что же мне делать. Ночью я проснулся от сообщения, которое прислал мне бот, с информацией о свободных слотах. Я, не раздумывая, записался на последнее доступное время и провалился в сон, поскольку мне уже было всё равно, какое это будет время старта - главное записаться! Но оказалось, что поддержка пошла мне навстречу, в письме мне сообщили, что возможности записать меня в ручном режиме нет, и они мне сократили время ожидания перед повторной попыткой с 4 до 3-х недель, таким образом я смог записаться в свободный слот, которого я до этого не видел. Тут могу только повторно выразить свой респект техподдержке оффсеков, что не бросили меня с этой проблемой, а пошли навстречу. НО ОСТАЛЬНЫМ Я КРАЙНЕ НЕ РЕКОМЕНДУЮ ТАК РИСКОВАТЬ! В свободное время между попытками я потратил неделю на подготовку и сдачу сертификата OSWP, так что я теперь умею не просто ломать WIFI точки, а делать это профессионально) Остальное время я потратил на изучение оставшихся скриншотов кода, что я сделал в первой попытке, и просто анализом кода известных CVE. Экзамен (2 попытка) Ко второй попытке моя семья хорошенько зарядила меня на успех и помогла мне морально настроиться, да и я понимал, что меня может ждать, поэтому мандража уже было меньше. В итоге, вторая попытка прошла действительно легче. Я смог в течении первых суток найти все уязвимости, а оставшиеся сутки я смог посвятить спокойному написанию эксплоитов и отчёта. Что интересно, я переоценил свои силы в написании полностью автономных эксплоитов и вместо заложенных 2-3 часов на каждый эксплоит я потратил примерно 4 и 3 часа соответственно. Так что, вспоминая первую попытку, я понимаю, что даже если бы я в конце второго дня нашёл нужный вектор, то мне просто не хватило бы времени на написание скриптов. На написание отчёта я потратил ещё примерно 4-5 часов, но тут у меня уже был большой рабочий опыт и мне не составляло труда расписывать полные цепочки, с подсвечиванием и объяснением проблемных мест в коде. Советы Курс
В заключении хочу сказать, что, несмотря на то, что год был тяжелый - сертификация сильно давила на меня как морально, так и потенциальными финансовыми потерями – мне она понравилась. Опыта и знаний сертификация даёт много, и она очень полезная. Новые навыки я успешно применяю в рабочих задачах, новая строчка в LinkedIn греет душу и привлекает HR-ов к моему профилю. Да и просто понимание, что ты взял очередную высоту, которая раньше казалась недостижимой, повышает уверенность в своих силах. Когда я сдавал OSCP, я считал, что никогда не смогу сдать OSWE. Когда я сдавал (прости Господи) CEH, я считал, что я точно не смогу сдать OSCP. Однако результаты показывают обратное. Сейчас я также с волнением смотрю на OSEP, и тем более на OSED. Но дрожи в коленках ощущается меньше, да и дрожь эта уже скорее не из-за страха или неуверенности, а от предвкушения покорения новых вершин. Не сомневайтесь в себе, только преодолевая трудности и выходя из зоны комфорта мы становимся лучше, увереннее и смелее! Вам всё по плечу, нужно только поверить в себя, стиснуть зубы и двигаться к цели несмотря ни на что! P.S. Ну и для истории я решил записать вторую попытку сдачи экзамена на таймлапс Ваш браузер не может отобразить это видео. |
Хорошь мужик, от души поздравляю тебя с новой высотой)
Спасибо за материалы, так получилось, что этот год я решил посвятить именно белому ящику и пограммированию. В целом пишу эксплоиты к таскам которые решаю. К OSWE я не готовлюсь, больше для себя. Еще, я правда вник в дебаг. Именно связку vscode + debugger + Docker. Иногда возникает необходимость поднять исходник в контейнере и продебажить. Еще раз поздравляю, всех благ) |
Цитата:
Удачи в опытах) |
Красавчик! Поздравляю с покорением очередной вершины!!! Слухи ходили, что могут отозвать серт, если платишь не со своей карты, надеюсь это просто слухи)
|
Цитата:
|
| Время: 09:31 |