Привет! Я специалист по тестированию на проникновение (пентестер) в компании «Ти Хантер». Недавно я сдал экзамен на международную сертификацию HTB Certified Penetration Testing Specialist (CPTS) и перед этим прошёл связанный с сертификацией курс Penetration Tester на платформе Hack The Box Academy. Хочу поделиться своими впечатлениями о курсе и экзамене, дать несколько советов, связанных с подготовкой к экзамену, и немного (совсем немного) рассказать о своём опыте становления пентестером.
This article reflects solely the opinion of its author. The decision to complete the course and take the exam was entirely the author's own.
Данная статья выражает исключительно личное мнение её автора. Решение о прохождении курса и сдаче экзамена было принято автором самостоятельно

Курс и сертификация были выбраны мною, во-первых, потому что я уже проходил бесплатные (Tier 0) модули на HackTheBox, и это был отличный теоретический материал с крутыми лабораторными работами (подробнее о них чуть позже), и, во-вторых, хотелось попробовать что-то менее мейнстримное, чем OSCP. Как оказалось, не зря!
О курсе Penetration Tester и платформе Hack The Box Academy
Hack The Box – платформа с лабораторными средами по кибербезопасности, которая включает элементы «геймификации», такие как рейтинг, сезоны и уровни. Несколько лет назад появилась её «дочерняя» платформа Hack The Box Academy, позволяющая обучаться отдельным аспектам кибербезопасности. Каждой теме на платформе посвящён отдельный модуль, а набор модулей на платформе называется Path (я буду называть это «курсом»). Прежде чем сдавать экзамен CPTS, необходимо пройти все модули в курсе Penetration Tester.
Курс Penetration Tester состоит из модулей:
-
о самом процессе тестирования на проникновение,
-
о разведке отдельных сетевых узлов, больших сетей и веб-приложений,
-
об атаках на веб-приложения вручную и при помощи автоматизированных инструментов,
-
об атаках на сетевые сервисы и доменную инфраструктуру,
-
о повышении привилегий в Linux и Windows (даже про то, как «сбегать» из ограниченных «шеллов» и Citrix).
Также, в курсе есть отдельные большие модули о передаче файлов в сетях и pivoting-е (продвинутом туннелировании, позволяющем имитировать нахождение злоумышленника в сети, к которой доступ есть лишь опосредованно – через иную сеть).
Полный список модулей
Бесплатные:
-
Setting Up
-
Introduction to Networking
-
Web Requests
-
Introduction to Web Applications
-
Linux Fundamentals
-
Windows Fundamentals
-
Introduction To Active Directory
-
File Transfers
-
Attacking Web Applications with Ffuf
-
File Inclusion
-
SQL Injection Fundamentals
-
Getting Started
В составе подписки:
-
Penetration Testing Process
-
Network Enumeration with Nmap
-
Footprinting
-
Information Gathering - Web Edition
-
Vulnerability Assessment
-
Shells & Payloads
-
Using the Metasploit Framework
-
Password Attacks
-
Attacking Common Services
-
Pivoting, Tunneling, and Port Forwarding
-
Active Directory Enumeration & Attacks
-
Using Web Proxies
-
Login Brute Forcing
-
SQLMap Essentials
-
Cross-Site Scripting (XSS)
-
File Upload Attacks
-
Command Injections
-
Web Attacks
-
Attacking Common Applications
-
Linux Privilege Escalation
-
Windows Privilege Escalation
-
Documentation & Reporting
-
Attacking Enterprise Networks

Купив подписку, дающую доступ к экзамену и курсу, вы не ограничены только одним курсом: вы всегда сможете пройти модули из других курсов, например, на специалиста SOC, который обеспечивает информационную безопасность организации в реальном времени, или модули вне курсов, например, связанные с Purple Team, использующей методы как атаки, так и защиты для обеспечения безопасности организации.
Cтоимость подписки зависит от того, какой экзамен вы хотите сдать и к каким модулям хотите получить доступ. Для курса Penetration Tester и экзамена CPTS достаточно 410 €/год. За 1055 €/год вы просто получите доступ к большему количеству модулей с «продвинутыми» темами. В течение года вы в любой момент сможете повторно проходить лабораторные работы и читать доступный теоретический материал. Сетевые узлы для практики разворачиваются индивидуального для каждого обучающегося и могут быть запущены бесконечное количество раз до тех пор, пока действует подписка.

Если не хватает теоретических знаний из IT, не связанных с наступательной безопасностью, то прежде, чем покупать подписку, можно пройти бесплатные модули, которые доступны любому зарегистрировавшемуся на платформе (Tier 0 модули). Перед тем как проходить тот или иной модуль из курса, обращайте внимание на рекомендуемые к ознакомлению другие модули. Если не знакомы с TCP/IP, потоком HTTP или вообще Linux-ом, то вам точно стоит обратить внимание выделенный ниже последний абзац из описания модулей (кстати, именно благодаря бесплатному модулю по Linux я, ещё будучи студентом второго курса, перестал бояться командной строки Linux).

К сожалению, модуль по программированию Python доступен только по подписке, и пока у меня её не было, я сам учил этот языку, писал проекты для локальных игровых сообществ и инструменты для тестирования на проникновение, поэтому за модуль по Python на самой платформе ничего сказать не могу; остальные же Tier 0 модули – это отлично написанный теоретический материал с закрепляющими теорию практическими работами.
Для доступа к экзамену необходимо получить доступ более чем к 400 сетевым узлам и решить примерно 600 заданий! Несмотря на то, что у меня был опыт тестирования на проникновение и необходимые для наступательной безопасности знания, я всё равно узнал много новых тактик и попробовал много новых инструментов. Курс помог мне уверенно чувствовать себя в больших сетях на реальных проектах, потому что все получаемые на курсе навыки, начиная от вспомогательных, таких как pivoting и передача файлов, и заканчивая конкретными техниками, такими как веб-фаззинг, остаются в голове ввиду отличного практического материала.


Теоретический материал не отстаёт от практического: в тексте встречается огромное количество ссылок на дополнительную литературу, а материал буквально «разжёван» до простейших понятий. По мере прохождения курса рекомендую вести несколько конспектов: один конспект – это шпаргалка с готовыми для вставки в консоль командами по каждой теме, где каждый элемент прокомментирован (не полагайтесь на «потом вспомню»), а второй – переработанный для собственного понимания теоретический материал. Все конспекты я вёл в бесплатном Obsidian.

Есть модули, которые потребуют нескольких часов, а есть те, которые потребуют нескольких недель. Для прохождения курса мне потребовался почти год, с учётом того, что первую половину года я готовил магистерскую диссертацию, а вторую – ездил по командировкам в другие города c тестированием на проникновением Wi-Fi сетей и участвовал в иных проектах компании, в которой работаю. Приходилось выпрашивать у начальства часы на прохождение курса: я не представляю, как его можно пройти в «свободное время», которое у пентестера обычно и так уходит на разработку инструментов, чтение и написание статей.

Многие рекомендуют проходить последний, «предэкзаменационный» модуль Attacking Enterprise Networks «вслепую», чтобы подготовиться к настоящему экзамену, и я полностью с этим согласен. Несмотря на то, что этот модуль проще экзамена, в нём вы сможете испытать полученную в ходе прохождения курса методологию на прочность. Также не забудьте написать отчёт по проделанной работе. Шаблон отчёта для экзамена можно найти в Discord-сообществе HackTheBox. После того, как напишите отчёт, не забудьте перепроверить его согласно критериям, указанным в модуле Documentation & Reporting.

Пройдя курс на 100%, вы откроете доступ к экзамену, но об этом позднее.
Недостатки курса
Курс мне очень понравился, и я смог выделить всего три недостатка. Возможно, мне просто не с чем сравнивать, потому что это мой первый опыт прохождения курса, связанного с «сертификацией».
Первой проблемой можно назвать то, что подсказки являются обязательными для выполнения некоторых заданий, поэтому перед выполнением задания всегда обращайте внимание на жёлтую кнопку с надписью «Hint» около поля ввода ответа.
Второй – в курсе не было ни слова о Ligolo-ng, несмотря на то, что это самый, на мой взгляд, простой инструмент pivoting-а. Для того, чтобы научиться им пользоваться достаточно один раз попробовать прокинуть туннель по README на Github (однако не полагайтесь только на один инструмент: на реальных проектах вы можете оказаться в очень ограниченной среде).
Третьей – итоговые задания в конце модулей чаще всего намного проще того, что даётся в модулях. Не ждите такой же пощады на экзамене.
Об экзамене
Во время экзамена необходимо искать особые подстроки (флаги), которые доказывают прохождение того или иного этапа экзамена (например, получения полного контроля над сервером; флаг при этом будет лежать на рабочем столе администратора). Для успешной сдачи экзамена необходимо найти 12 флагов из 14 возможных и написать полноценный отчёт о проделанной работе; при чём отчёт могут отклонить, если в нём найдут серьёзные недостатки. Не оставляйте написание отчёта на потом!
«Оставить отчёт на потом» можно в течение 10 суток (именно столько длится весь экзамен). По подписке даётся две попытки, и даже если вы не смогли заполучить 12 необходимых флагов, то отчёт всё равно должен быть загружен на платформу, иначе вторая попытка предоставлена не будет. Держите это в голове, чтобы не потерять её в случае неудачи (хотя, как отмечают в сообществе HackTheBox в Discord, некоторые загружают пустые листы или картинки с котиками, и имеют возможность пройти экзамен второй раз).
В отличие от OSCP здесь нет прокторинга, а также вы вольны использовать абсолютно любой инструментарий.
Отличная аналогия, связанная с экзаменом, была у CryptoCat: будучи автомехаником вы должны уметь полностью осмотреть автомобиль, чтобы узнать, в чём проблема, и суметь решить её. Лишь после этого можно будет переходить к другому автомобилю, где процесс поиска проблемы будет начат заново.
Теперь же хотелось бы поделиться личными ощущениями от экзамена – они противоречивые. Когда после сложной многоступенчатой атаки тебя просят сделать что-то простое несколько раз, то закрадываются мысли, а не специально ли растянут главный вектор? Отдельная боль – это уязвимости вне вектора, которые ты, как этичный хакер, просто обязан описать, но за которые тебе не заплатят («флагами»).
Советы, связанные с прохождением курса и сдачей экзамена
-
Не изменяйте структуру модулей в конспектах. В большинстве своём она сделана так, чтобы вы поверхностно могли пройтись по страницам в случае, если вы застряли на каком-либо из этапов прохождения курса или при выполнении экзамена. Также, рекомендую создать отдельный чек-лист на основе каждого модуля.
-
Не пытайтесь «пробежать» курс : такой подход практически гарантирует провал при сдаче экзамена. Помните, на экзамене будут только те техники, которые были в курсе, не считая эксплуатации общеизвестных уязвимостей.
-
Другие курсы или лабораторные работы могут навредить, добавив в чек-лист «лишние» шаги для проверки. Если что-то получается плохо или вы что-то не до конца поняли, то перепройдите связанные с темой лабораторные работы (конечно же, речь идёт именно о других курсах или Pro Labs с того же Hack The Box, а не отдельные статьи по теме, которые могут вас заинтересовать и которые приводятся авторами модулей в тексте).
-
Открывайте врайтапы только в крайнем случае и проходите курс в своём темпе – по подписке у вас есть целый год!
-
Научитесь пользоваться Ligolo-ng. Проксирование через два хоста при помощи RDP – это конечно весело, но на экзамене на этом можно потерять много драгоценного времени.
-
Обращайте внимание на каждую данную автором мысль из теоретического материала: если есть способ выполнить какое-либо действие несколькими способами, то поверьте, как на экзамене, так и в реальной жизни, некоторые инструменты или методы у вас просто «не отработают».
-
Для каждой связанной с атакой неправильной конфигурации или уязвимости записывайте:
-
CWE,
-
oтстранённое от лабораторной среды описание,
-
влияние на инфраструктуру и условный бизнес,
-
способ устранения,
-
ссылки на дополнительную литературу.
После прохождения курса у вас уже будет готовый банк карточек, которые можно и нужно будет вставлять в отчёт на экзамене.
-
-
Записывайте рядом с командами в заметках абсолютно любые сложности (повторяю, любые!), которые встретились при прохождении курса и которые удалось решить. Несколько минут не понимали, почему не запускается скрипт, а потом обратили внимание, что в новой версии используются другие названия аргументов? Запишите!
-
Освойте Python хотя бы на уровне понимания основных конструкций.
-
Освойте Word, чтобы, например, не тратить лишнее время на выделение текста определённым цветом, а сразу использовать стили.
-
Освойте Markdown, чтобы эффективно вести заметки.
Итог
Я очень доволен курсом и не очень доволен экзаменом. Начав своё путешествие в мире наступательной безопасности с программирования на Python, CTF-ов (соревнований по информационной безопасности), платформ TryHackMe и Hack The Box, я дополнил дополнил свои знания и улучшил собственную методологию. На мой взгляд, даже далёкий от IT человек может пройти курс, сдать экзамен и стать «этичным хакером-инфраструктурщиком» грейда Middle благодаря материалу и лабораторным работам, охватывающим как основы (работа с сетями, с виртуальными машинами, с операционными системами), так и профильные темы.
Спасибо за внимание!
P.S. Для доступа к курсу и экзамену могут потребоваться дополнительные настройки сетевого подключения ;-)
Автор: Canyon8