Автор темы
На третьем техническом собеседовании тимлид открыл мой GitHub, нашёл writeup по retired-машине с HTB и спросил, почему я выбрал Kerberoasting вместо очевидного SMB relay. Пятнадцать минут мы разбирали один writeup - и стандартное тестовое задание отменили. Это был мой первый оффер на junior-пентестера: три опубликованных разбора перевесили и диплом, и сертификат. Ниже - конкретный план, как превратить writeup HTB для резюме пентестера в работающее конкурентное преимущество.
Что рекрутер и техлид реально оценивают в writeup'е
Рекрутер в ИБ-компании тратит на первичный просмотр резюме от 30 секунд до двух минут. Ссылки на CTF-площадки - маркер, по которому он решает, передавать ли резюме дальше. Показательный эксперимент провела лид рекрутинга компании «Бастион» (Habr, 2024): фейковое резюме пентестера со ссылками на Bug Bounty, CTFtime, TryHackMe и Hack The Box за две недели получило 123 просмотра от 51 компании и 25 откликов. Ни один рекрутер не спросил про конкретные кейсы - хотя в резюме было прямо указано «готов рассказать по запросу». Ссылки сработали как сигнал: человек практикуется, а не просто «интересуется ИБ». Подробнее - в нашем руководстве по карьера в кибербезопасности.Когда резюме доходит до техлида - критерии другие. Его интересует не количество решённых машин, а ход мысли:
- Методология - есть ли системный подход (recon → enumeration → exploitation → post-exploitation → reporting), или кандидат тыкается наугад
- Обоснование решений - почему выбран этот вектор, а не альтернативный
- Качество документирования - сможет ли человек написать отчёт, понятный клиенту без технического бэкграунда
- Глубина понимания - знает ли кандидат, почему exploit сработал, а не просто воспроизводит чужие команды
Где публиковать writeup HTB и TryHackMe
GitHub портфолио для пентестера: минимальная структура
GitHub-профиль - первое место, куда техлид идёт после прочтения резюме. В примерах резюме от HTB ссылка на GitHub стоит в шапке наравне с email, а в образце entry-level резюме для аналитика указываются конкретные цифры: «HTB machine completions include 14 retired boxes».Минимальная структура репозитория:
Код:
pentesting-writeups/
├── README.md # Оглавление с кратким описанием
├── HTB/
│ ├── machine-name-1/
│ │ ├── writeup.md
│ │ └── screenshots/
│ └── machine-name-2/
├── TryHackMe/
│ └── room-name-1/
└── tools/
└── custom-enum.sh # Самописные скрипты
- README.md с навигацией - рекрутер не будет копаться в папках. Таблица: название машины, ОС, сложность, ссылка на writeup
- Дата и сложность в каждом writeup'е - показывает прогрессию от Easy к Hard
- Скриншоты рядом с текстом, а не на внешнем хостинге, который через полгода отвалится
- Самописные скрипты в отдельной папке - даже простой bash для автоматизации enumeration показывает навык, который ценят работодатели
Блог по кибербезопасности для резюме: площадки и выбор
GitHub хранит writeup'ы, но не продвигает их. Для видимости нужна площадка с аудиторией.Habr - главная техническая площадка рунета. Индексация в поиске, комментарии от практиков с реальным опытом, возможность попасть в корпоративный блог ИБ-компании. Из минусов: порог входа по качеству текста, негативная карма демотивирует (но закаляет). Для русскоязычного портфолио пентестера - наиболее весомая площадка.
Medium - английскоязычная аудитория, теги InfoSec и CyberSecurity с десятками тысяч подписчиков. Международная видимость, если целитесь в вакансии за рубежом. Минус: paywall отпугивает часть читателей.
Личный блог на Hugo или Jekyll с хостингом на GitHub Pages. Полный контроль и демонстрация навыков работы с git и CI/CD. Минус - нет встроенной аудитории, продвигать придётся самому.
Telegram-канал - специфика рунета, работает как дополнительный канал дистрибуции. Ссылку стоит указывать в резюме, если в канале есть хотя бы 10-15 постов с техническим разбором, а не репосты новостей.
Оптимальная комбинация: GitHub как хранилище всех writeup'ов + одна блог-площадка для публикации лучших. По roadmap-гайду Total Cyber Academy, минимальное портфолио для junior-роли включает 8-12 writeup'ов по разным классам уязвимостей и 3 якорных проекта: полный аудит веб-приложения, разбор внутренней сети и самописный инструмент автоматизации.
Как писать writeup HTB, который работает на резюме
Структура writeup от разведки до рекомендаций
Каждый writeup TryHackMe или HTB должен зеркалить структуру реального пентест-отчёта. Работодатель через writeup оценивает, сможет ли кандидат писать отчёты для клиентов. Чек-лист по разделам:
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Пример сильной фразы в writeup'е: «Нашёл writable crontab, задание запускается от root каждые 5 минут. Вместо стандартного reverse shell через Metasploit написал однострочник на bash - в реальном проекте это снизило бы вероятность срабатывания EDR, а клиенту показало бы, что детект зависит не от конкретного инструмента».
Плохой writeup vs хороший - конкретные примеры
Плохой writeup (так делают большинство новичков):- «Запустил nmap. Нашёл порт 80. Открыл сайт. Нашёл SQLi. Использовал sqlmap. Получил shell. Забрал флаг»
- Один скриншот - финальный флаг
- Команды без пояснений
- Нет раздела с рекомендациями
Хороший writeup:
- Каждый шаг объяснён: «Выбрал ручную эксплуатацию SQL-инъекции вместо sqlmap, чтобы показать понимание UNION-based injection (OWASP A03:2021 - Injection)»
- Скриншоты ключевых этапов с аннотациями (не скриншот терминала на весь экран, а обрезанный фрагмент с выделением важного)
- Описаны тупиковые ветки: «Попробовал X, не сработало по причине Y - переключился на Z»
- Раздел Remediation с ссылками на OWASP, MITRE ATT&CK, конкретные CWE
- Ссылки на официальную документацию инструментов, а не на рандомный пост в интернете
Сколько writeup'ов нужно для портфолио пентестера
Конкретные ориентиры на основе рекомендаций для junior-пентестеров:- 8-12 writeup'ов с разными классами уязвимостей - не 10 машин с одинаковым SQLi
- 3 якорных проекта: полный аудит веб-приложения, упражнение по внутренней сети, самописный инструмент
- Покрытие OWASP Top 10: хотя бы по одному writeup'у на Injection (A03:2021), Broken Access Control (A01:2021), Security Misconfiguration (A05:2021)
| Категория | Что это даёт работодателю | Инструменты для writeup |
|---|---|---|
| Web (SQLi, XSS, SSRF) | Понимание OWASP Top 10 | Burp Suite, sqlmap, manual testing |
| Active Directory | Навыки внутреннего пентеста | BloodHound, Impacket, Rubeus |
| Linux PrivEsc | Системное мышление | LinPEAS, GTFOBins, ручной анализ |
| Windows PrivEsc | Работа с PowerShell и WinPEAS | WinPEAS, PowerUp, SharpUp |
| PWN / Binary | Базовые навыки reversing | Ghidra, pwntools, GDB |
Такой набор закрывается за 3-4 месяца при практике 3-5 часов в неделю. На резюме это отражается конкретными цифрами - как в примере entry-level резюме: «Completed 180+ TryHackMe rooms (Top 5% globally). HTB machine completions include 14 retired boxes».
Ошибки в CTF writeup публикации, которые убивают портфолио
Публикация флагов и credentials. Не просто нарушение правил площадки. Техлид, увидевший root-флаг в writeup'е, делает однозначный вывод: кандидат не понимает базовый OPSEC. В MITRE ATT&CK техника T1593.003 (Code Repositories, reconnaissance) описывает целенаправленный поиск злоумышленниками чувствительных данных в публичных репозиториях. Writeup с реальными хешами, API-ключами или скриншотами credentials - прямой вектор для атакующего. Замените флаги на[REDACTED], хеши обрезайте. Для тех кто в танке: если вы показываете флаг HTB в публичном репо - вы буквально демонстрируете утечку данных в своём портфолио пентестера.Copy-paste из чужих writeup'ов. Техлид проверит - поиск находит совпадения за секунды. Один обнаруженный плагиат ставит под вопрос всё портфолио. Если использовали чужой разбор как подсказку - упомяните честно: «Застрял на этапе X, подсмотрел подход у автора Y, адаптировал под свою ситуацию». Честность здесь работает лучше, чем попытка казаться умнее.
Список команд без контекста. Сухая последовательность
nmap → gobuster → searchsploit → exploit без объяснений показывает, что кандидат умеет копировать из терминала, но не понимает, что происходит. Одно предложение перед каждым ключевым шагом: зачем именно это действие.Неработающие ссылки и битые скриншоты. Проверяйте каждую ссылку перед отправкой резюме. Битая ссылка на GitHub Pages - аналог помятого бумажного резюме. Я перед каждым откликом прохожу по всем ссылкам в портфолио - занимает пять минут, экономит нервы.
Отсутствие README. Репозиторий с десятком папок без оглавления - не портфолио пентестера, а файлопомойка. README.md - первый файл, который открывает рекрутер.
Отдельный момент для тех, кто целится в международные компании: writeup'ы стоит писать на английском. Если работаете на российский рынок - русский язык допустим, но техническая терминология (SQL injection, privilege escalation, lateral movement) остаётся на английском. Так устроена профессиональная лексика и поисковая выдача.
Резюме в ИБ с нуля без ссылки на портфолио в 2025 году - как резюме разработчика без GitHub. Даже фейковое резюме с правильными ссылками на CTF-площадки получило 25 откликов за две недели. Но ссылка работает только если за ней стоит реальный контент: writeup - самый доступный формат, который не требует ни коммерческого опыта, ни сертификата, ни разрешения работодателя.
Вижу одну повторяющуюся проблему: люди пишут 15-20 одинаковых writeup'ов по Easy-машинам и считают, что количество компенсирует глубину. Не компенсирует. Техлид после третьего однотипного разбора закрывает вкладку и переходит к следующему кандидату. Шесть разных writeup'ов - web, AD, Linux privesc, Windows privesc, binary exploitation через Ghidra, самописный скрипт автоматизации - дают в разы больше, чем двадцать вариаций на тему
nmap → gobuster → exploit-db → root.txt. Покажите, что умеете думать, а не повторять.Второе наблюдение: writeup без раздела remediation - это CTF-отчёт, а не пентест-артефакт. На собеседовании обязательно спросят: «А что вы порекомендуете клиенту?» Если в голове только exploitation - разговор заканчивается быстро. Привычка писать рекомендации к каждой найденной уязвимости (даже учебной) формирует мышление пентестера, а не CTF-игрока. Именно это видит техлид, когда листает ваш GitHub.
И последнее: не ждите момента, когда writeup'ов станет «достаточно». Публикуйте первый после решения первой Medium-машины. Он будет несовершенным - и это нормально. Git-история покажет рост, а это ценнее безупречного текста, написанного разом. Если параллельно идёте к OSCP и нужна системная подготовка по веб-части - на WAPT эту цепочку проходят в первых модулях с лабами.
- AI-выжимка (тезисы)
- Что рекрутер и техлид реально оценивают в writeup'е :: Фейковое резюме со ссылками на CTFtime, TryHackMe и Hack The Box получило 123 просмотра от 51 компании и 25 откликов за две недели, при этом ни один рекрутер не спросил о конкретных кейсах.
GitHub портфолио для пентестера: минимальная структура :: В образце entry-level резюме от HTB указывают конкретные цифры вроде «14 retired boxes», а GitHub с нулём коммитов и единственным форком хуже отсутствия ссылки.
Блог по кибербезопасности для резюме: площадки и выбор :: Оптимальная схема — GitHub как хранилище плюс одна блог-площадка; минимум для junior-роли: 8-12 writeup'ов по разным классам уязвимостей и 3 якорных проекта.
Структура writeup от разведки до рекомендаций :: Раздел Remediation с рекомендациями по закрытию уязвимостей — именно то, что отличает CTF-решателя от пентестера в глазах работодателя.
Плохой writeup vs хороший - конкретные примеры :: Один хорошо описанный тупиковый ветка стоит двух успешных эксплойтов: описания «попробовал X, не сработало по причине Y» показывают работу с неопределённостью.
Сколько writeup'ов нужно для портфолио пентестера :: Нужно 8-12 writeup'ов с разными классами уязвимостей и покрытие OWASP Top 10; публикуйте только retired-машины HTB, иначе нарушаете правила платформы.
Ошибки в CTF writeup публикации, которые убивают портфолио :: Публикация флагов и credentials в writeup'е сигнализирует техлиду о незнании OPSEC и демонстрирует утечку данных — флаги заменяйте на [REDACTED].