gx6060
Staff member
- Nov 10, 2019
- 259
- 313
Про сертификат OSCP не слышал, наверное, только человек далекий от инфосека. К этому экзамену долго готовятся, сдают его целые сутки, а потом пишут райтапы. Те, кто еще не сдавал, задают о нем много вопросов — в твиттере, на «Реддите», форумах, в чатах. У меня тоже была масса вопросов, когда я начинал готовиться, и я попробую здесь ответить на основные из них.
OSCP (Offensive Security Certified Professional) — сертификат, который выдает организация Offensive Security. Интересна эта сертификация в первую очередь тем, что требует практических навыков, а значит, нас ждет море радости и фана, а иногда боли и бессонных ночей (это уж как пойдет). В любом случае такой сертификат будет отличным пунктом в резюме: экзамен организован так, что подставному лицу сдать его очень трудно, то есть он подтверждает именно твои навыки.
Чтобы получить право сдавать экзамен, нужно заплатить минимум 999 долларов. За эту сумму ты получишь материалы курса PWK (Penetration testing with Kali), в который входит 30 дней доступа к лабе для отработки практических навыков, комплект видео и толстая книжка (точнее, PDF) на 853 страницы. Все материалы, естественно, на английском, но изложено доступно, и уровня B1 будет более чем достаточно.
Подготовка
Огромная доля вопросов касается подготовки. Что смотреть, что качать (ну кроме очередного гоблина-мага в WoW), где практиковаться? В общем, неопределенность полная, как и во многих жизненных вопросах.
Перед лабой
Перед тем как покупать PWK и проходить лабу, можно многому научиться самостоятельно (что вообще характерно для профессии: саморазвиваться, самообучаться и искать информацию нужно будет всегда).
Что тебе пригодится? Во-первых, и обучение, и экзамен будут проходить на Kali Linux, и было бы неплохо в нем разобраться. Если вдруг не сталкивался с ним, не пугайся: это просто дистрибутив на основе Debian с кучей всевозможного хакерского софта, который может пригодиться в работе. Не все работает из коробки, не все оптимизировано, но это популярный выбор, который помогает быстро получить доступ к необходимым инструментам. Работа с этим дистрибутивом мало чем отличается от работы с любым другим сортом Debian (вроде Ubuntu), поэтому описывать ее подробно не имеет смысла. Если ты уже имел дело с Linux, то, несомненно, разберешься. Если нет, то стоит начать с азов Linux.
Что нужно еще? (Если ты уже отличаешь LFI от LPE, то можно не читать этот список.)
- Иметь хотя бы базовые знания о том, как работает компьютер: как взаимодействуют процессор и память, IO, буфер, куча и так далее.
- Иметь представление об устройстве ОС (Linux и Windows) и ориентироваться в них, быть знакомым с их командной оболочкой.
- Уметь программировать, опять же хотя бы на уровне простых скриптов.
- Уметь пользоваться основными инструментами: Nmap, netcat, tcpdump (Wireshark), Metasploit, SearchSploit, gobuster (wfuzz, fuff) и прочими.
- Знать, какие бывают атаки, уязвимости и способы их эксплуатации.
- Знать, как повышать привилегии на атакованной и взломанной машине (LPE, privesc).
Первое место, где можно получить практические навыки, приближенные к боевым, — это сервис Hack The Box. Сервис предоставляет набор машин с уязвимостями и позволяет отточить полученные в теории навыки. Есть платная и бесплатная версии. На этом сервисе много разных машин, но в сети товарищ TJnull составил и пополняет список OSCP-like-машин.
Еще одна платформа для практики — VulnHub. Сервис предоставляет виртуальные машины с набором уязвимостей. Их можно развернуть у себя и развлекаться сколько угодно. В документе, который кто-то добрый выложил в Google Drive, есть набор машин в стиле OSCP из этого сервиса. Некоторые машины старые, но и сам OSCP использует далеко не новые уязвимости.
INFO
Статья «Где учиться пентесту» подробнее рассказывает о площадках Hack The Box, Root Me и VulnHub.
Вносит неоценимый вклад в обучение еще один житель сети — IppSec. По всем машинам из HTB он записывает подробное видео, где демонстрирует разные техники: recon, enumeration, privesc и прочие. Его главное преимущество для меня в том, что он предлагает несколько вариантов добиться одного и того же результата. Например: можно просканировать порты при помощи Nmap или быстро написать свой скрипт на Bash или Python, для перечисления на вебе использовать не только привычный dirb, но и альтернативные тулзы — gobuster, fuff, wfuzz — или написать быстро свою.
Есть еще масса других сервисов: root-me, Web Security Academy разработчиков Burp, Hack this site и другие, их можно найти в поисковике.
Общая рекомендация: читай райтапы, смотри, как делают другие, учись и практикуйся, практикуйся, практикуйся. И пробуй все машины ломать без использования «Метасплоита». Ищи эксплоиты, правь, разбирайся, что, как и почему именно так работает.
Когда поломаешь все машины из списка и почувствуешь себя настоящим надмозгом, настанет пора покупать PWK.
Во время лабы
Есть три версии курса, отличаются они только длительностью доступа к лаборатории. Мне кажется, если ты уже решил машины TJnull, то оптимальный вариант — это 60 дней. Можно выбрать 30 или, если чувствуешь, что дело затянется, 90 — здесь решай сам в зависимости от уверенности в себе и финансов.
В назначенный день (точнее, ночь) тебе дадут возможность скачать материалы: книгу и видео. Все материалы содержат «водяной знак» с именем, фамилией и адресом проживания (указываются при регистрации и нужны для выдачи и получения сертификата), поэтому заливать материалы на торрент не стоит!
Видео от книги не отличается, диктор просто читает то, что написано в книге, и воспроизводит на виртуалке. Причем читает слово в слово (отличная практика для изучающих английский). Поэтому выбирай то, что удобнее для восприятия.
В этом году курс обновили, существенно расширили и доработали. Добавлены модули Active Directory, PowerShell, Introduction to Buffer Overflow, Bash scripting, расширен список машин для практики. В разной степени обновлены все модули. Сам экзамен остался без изменений (пока).
Работать с лабораторией ты будешь через VPN. Понадобится обычный клиент OpenVPN и конфиг к нему с логином и паролем. В лабе машин 50–60, к части из них можно получить доступ, только взломав предыдущую. Нет какой-то пошаговой инструкции, что за чем ломать, и каждый выбирает свой способ. Машины очень разные по сложности, какие-то решаются быстро и просто, какие-то — боль (привет, Pain). В общем, все будет зависеть от багажа знаний, с которым ты придешь.
Сама сеть живая: пользователи переписываются, ходят на сайты и так далее. В общем, это отличное место как для получения фана, так и для обучения.
В аннотации к курсу сказано, что не требуется специальных знаний. С одной стороны, это так, курс подробно рассказывает о базовых скиллах, необходимых для экзамена и лабораторных работ, но по факту (и это тоже упоминается) большую часть знаний нужно будет получать самостоятельно. Поэтому важно не просто прослушать курс, а выполнить все задания и решить если не все, то большую часть лабораторных машин. В общем-то, в этом прелесть курса — большую часть времени ты что-то изучаешь, экспериментируешь, думаешь, развиваешься.
Весь процесс лучше сразу документировать, заодно научишься это делать. На экзамене это совершенно точно потребуется. И если по лабораторным работам написать отчет, то за это могут дать дополнительные баллы.
Делай скриншоты действий, файловой системы, выводов ipconfig, ifconfig или ip addr, вывод cat proof-файлов и так далее.
Для этих целей я использую две программы: либо CherryTree, либо Joplin. В сети существуют удобные шаблоны (TJ-JPT и CTF_Template) для документирования экзамена в этих программах. В шаблонах есть справка и примеры использования основных инструментов, а также удобная древовидная структура, чтобы в информации было легко ориентироваться. Но, естественно, никто не запрещает тебе использовать то, к чему ты привык.
Автоматизируй себе все рутинные задачи, даже если они короткие. Запуск веб-сервера для аплоада шелла на машину, генерацию шеллов под разные задачи и так далее, чтобы не гуглить и не набирать вручную по памяти длинные команды и не тратить на это драгоценное время.
Рано или поздно лаборатория кончится и настанет время назначить дату экзамена. Эта дата тоже будет ограничена интервалом (нельзя взять и через год назначить себе экзамен).
Экзамен
По специальной ссылке, присланной вместе с материалами лабы, назначается дата и время экзамена. С этого времени у тебя будет 23 часа и 45 минут, чтобы получить proof-файлы из нужного количества машин и набрать минимум 70 баллов, необходимых для успешной сдачи экзамена (всего возможно 100 баллов плюс 5 баллов за отчет по лабе). Все машины имеют вес 10, 20 или 25 баллов и различаются по сложности.
Затем тебе дадут еще 24 часа, чтобы написать отчет по экзамену. После этого в течение десяти рабочих дней придет ответ: сдал или не сдал. Тебе понадобится удостоверение личности, понятное для экзаменатора (загранпаспорт, например). В интернете попадаются кейсы, когда экзамен не засчитывали из-за того, что в документе не было данных на английском. Насколько им можно доверять, решай сам.
Экзамен теперь очный, то есть будет присутствовать представитель OS, который через камеру наблюдает за процессом. И иногда просит покрутить камеру вокруг себя. В комнате, где проходит экзамен, никого быть не должно.
На экзамене запрещено использовать:
- Коммерческие тулзы вроде Burp Pro, Nessus Pro, MSF Pro;
- Инструменты для автоматизации эксплуатации (например, sqlmap, browser_autopwn);
- Сканеры уязвимостей (все тот же Nessus даже в его essentials-версии, OpenVAS и так далее);
- Различные виды спуфинга (IP, ARP и так далее).
Что касается Metasploit. Им можно воспользоваться один раз за экзамен, на одной из машин по твоему выбору, и попытка всего одна, даже если она окажется неудачной.
При этом доступны без ограничений:
- exploit/multi/handler;
- pattern_create.rb;
- MSFvenom;
- pattern_offset.rb.
В остальном экзамен не отличается от лабы. Главное — не паниковать, даже если ты не сдашь. Самое страшное, что тебя ждет, — придется оплатить еще одну попытку. Поэтому работай с удовольствием, не нервничай, и все получится.
Ну и самый главный совет, который не только помог мне с OSCP, но и вообще пригождается: никогда не сдавайся! Да, банально, да, избито, но ничего лучше пока не придумали.
Заключение
Я думаю, этот экзамен стоит сдать каждому, кто имеет отношение к практической информационной безопасности. Он не научит всему (это невозможно, да и не ставит такой цели), но даст главное: умение добиваться поставленной цели и учиться самостоятельно. Заодно ты получишь опыт последовательно разбираться в проблеме, работать в стрессовой ситуации и в условиях серьезных ограничений.
Это не просто тест, где ты тыкаешь в ответ, если хорошо зазубрил теорию. Без навыков и фундаментальных знаний ты просто его не сдашь, а посадить вместо себя еще кого-то тоже не выйдет. Так что этот экзамен станет отличным подтверждением твоих скиллов, а понимающие работодатели это ценят.
Поверь, ничего ужасного и очень уж сложного в OSCP нет — при условии, что ты хорошо готовился. Все необходимое тебе доступно, и остается только вопрос времени и желания. Сам я считаю, что это был отличный опыт.
Источник: тыц