Введение в пентест 0:01 Пентест — это тестирование на проникновение, при котором специалист эмулирует деятельность злоумышленника. Цель — найти уязвимости в системе или приложении и сообщить о них заказчику.
Преимущества работы в пентесте 0:52 Официальная работа с зарплатой, карьерным ростом и пенсионными отчислениями. Возможность стать ведущим специалистом в компании или перейти в другую. Популярность среди коллег при обнаружении значимых уязвимостей.
Выбор направления работы 2:07 Инхаус: работа в компании над безопасностью продуктовой системы. Консалтинг: помощь клиентам в решении проблем с безопасностью. Разнообразие вакансий: от пентестера до инфо-секьюрити.
Виды пентеста 3:07 Внешний пентест: доступ к внешним частям системы. Внутренний пентест: работа внутри сети с доступом к VPN. Пентест веб-приложений, мобильных приложений и комплексов всей компании. Использование физических методов, например, распространение флешек с вирусом.
Этапы пентеста 5:04 Планирование и разведка: сбор информации о компании. Сканирование: использование сканеров для автоматизации процесса. Получение первичного доступа и поиск уязвимостей. Установка постоянства доступа для предотвращения повторных атак.
Внутренний пентест 6:48 Начало с поиска доступной информации с текущих прав. Попытка повышения прав и продвижения по сети. Реализация недопустимых событий для выявления проблем в защитных действиях компании.
Сбор информации с помощью Google Dorks 7:52 Google Dorks позволяет конкретизировать поиск в интернете с помощью фильтров. Фильтры: сайт, интекст, файл, дата создания. Пример запроса: поиск информации на поддоменах мифи.ру с ключевым словом «спраш».
Использование Shodan и Censys 9:51 Shodan и Censys собирают информацию об открытых сервисах и IP-адресах. Можно указать IP-адрес, домен и фильтры для получения информации. Пример использования: поиск IP-адресов с открытым портом 52102.
Сканирование с помощью Nmap 11:34 Nmap — основная утилита для сканирования портов и проверки уязвимостей. Возможность указания диапазонов IP-адресов и портов. Опции: -p для сканирования всех портов, -sC для использования скриптов, -t для настройки частоты запросов.
Сканирование с помощью Dirch и аналогов 15:01 Dirch и его аналоги собирают информацию о файлах, генерируемых фреймворками. Преимущества Dirch: возможность указания расширений и рекурсивный поиск. Пример команды: указание URL и WD-листа для поиска файлов.
Безопасность при использовании утилит 16:51 Важно внимательно проверять флаги утилит, чтобы избежать утечки информации. Необходимо учитывать возможные последствия использования определённых флагов. Особенно осторожно следует использовать утилиты на рабочих серверах.
Введение в Google Dorks 17:37 Обсуждение использования Google Dorks для поиска информации на поддоменах. Пример запроса: поиск PDF-файлов на поддоменах МИФИ.
Регистрация на X-Box 18:37 Описание процесса регистрации на платформе X-Box. Рекомендация самостоятельно решить задачу для получения доступа.
Работа с машинами на X-Box 19:09 Выбор машины по сложности. Запуск машины «Кози Хостинг» на Linux. Подключение через VPN.
Сканирование портов 21:35 Использование утилиты MAP для сканирования портов. Анализ открытых портов, включая порт 22 для SSH.
Анализ веб-сайта 24:10 Посещение домена «Кози Хостинг.htb». Отсутствие возможности регистрации на сайте. Совет использовать Burp Suite для анализа запросов.
Использование DirSearch 25:24 Запуск DirSearch с параметрами для перебора директорий. Применение Wordlists для поиска уязвимостей.
Поиск уязвимостей в Spring Boot 27:03 Нахождение уязвимостей в Spring Boot Actuator. Использование специализированных Wordlists для Spring Boot.
Обнаружение уязвимости с куки 29:31 Обнаружение соответствия хэша и строки в куки. Возможность угона сессии через куки. Переход в FireFox для анализа сессии.
Вход в админ-панель 30:40 Неудачная попытка логина приводит к отображению Джей. Подстановка числового значения в Джей позволяет войти в админ-панель. Попадание на информационный стенд для админа сайта.
Анализ админ-панели 31:39 Обзор последних продаж и информации о пачинге. Упоминание о саш-ключах и автопачи косов. Начало тестирования формы ввода данных.
Попытка подключения 32:37 Отправка POST-запроса с параметрами хост и юзернейм. Ошибка подключения из-за тайм-аута. Попытка подключения к стандартному хосту.
Работа с саш-ключами 33:19 Подключение с известными ключами на указанный хост. Ошибка при пустом юзернейме. Использование консольной команды для подключения.
Коммент-инжекция 33:59 Применение точки с запятой для разделения команд. Выполнение команд внутри юзернейма. Проверка работы с пробелами.
Реверс-шелл 36:41 Использование сайта refshell.com для генерации пилота. Запуск лицинера на 777 порту. Подключение к серверу с помощью команды wget.
Декомпиляция JAR-файла 44:11 Декомпиляция JAR-файла с помощью утилиты jd-gui. Обнаружение структуры Spring Framework. Поиск информации о базе данных PostgreSQL.
Работа с PostgreSQL 45:06 Подключение к локальной базе данных PostgreSQL. Ввод пароля и проверка доступа. Ошибка при попытке поиска данных из-за отсутствия указания базы данных.
Анализ таблиц и хэшированных паролей 46:55 Просмотр таблиц «хост» и «юзерс». Обнаружение хэшированных паролей в таблице «юзерс». Копирование хэша для локального анализа.
Использование утилиты John для перебора хэшей 47:48 Создание файла для перебора хэшей с помощью утилиты John. Перебор паролей из Word-листа и проверка совпадений с хэшем. Использование стандартного словаря паролей Rockyou для ускорения процесса.
Результаты перебора и анализ пароля 49:43 Нахождение пароля «Манчестер Юнайтед» для хэша. Предпочтение неопытными пользователями одного пароля для нескольких учётных записей.
Вход под пользователем «Джордж» 50:36 Проверка наличия пользователей на машине с помощью команды cat /etc/passwd. Вход под пользователем «Джордж» с паролем «Манчестер Юнайтед».
Получение флага пользователя и рута 51:49 Цель: получить флаг пользователя и флаг рута. Использование скрипта Linux-privilege-escalation для поиска путей к руту.
Запуск Linux-privilege-escalation 52:52 Передача скрипта на машину и его запуск. Анализ результатов скрипта, поиск потенциальных путей к руту.
Использование MissConfig для получения рута 59:03 Проверка доступных команд от имени рута с помощью команды sudo. Поиск MissConfig на сайте GTFO Binnes и его использование для байпаса ограничений. Запуск интерактивного shell с помощью прокси-команд.
Успешное получение рута 1:00:29 Копирование и редактирование команды для запуска от имени рута. Успешное получение файла «рут.txt» и завершение задачи.
Восстановление системы 1:01:47 Удаление файла «рут.txt» для предотвращения сдачи рута. Возможность перезапуска машины при повреждении.
Начало собеседования 1:02:24 Обсуждение рангов на HackerRank и их значения для резюме. Упоминание о важности практического опыта в решении задач.
Поиск работы 1:03:29 Использование сайтов HeadHunter и SuperJob для размещения резюме. Преимущества телеграм-каналов с вакансиями. Возможность поиска работы через каналы университетов.
Обучающие программы 1:04:20 Обучение в школах информационной безопасности крупных компаний. Перспективы трудоустройства после завершения обучения.
Самостоятельный поиск 1:05:23 Отправка резюме на сайты компаний и в Telegram. Участие в массовых наборах, например, SafeBoard от Касперского.
Структура резюме 1:06:16 Резюме должно быть коротким и содержательным, максимум 1–2 страницы. Обязательные элементы: образование, опыт работы, график, достижения, умения. Избегание ненужной информации, например, психологических знаний для позиции пентестера.
Примеры резюме 1:08:03 Указание ФИО, возраста, контактов, готовности к работе в определённом формате. Примеры релевантных навыков: веб-разработка, лабораторные работы, понимание базовых уязвимостей.
Достижения и навыки 1:09:55 Упоминание достижений на конкурсах и стеках. Важность честности в описании навыков и опыта.
Разговор с HR 1:11:48 Возможные вопросы от HR по резюме. Подготовка к возможным тестам от команды работодателя. Рекомендация быть честным на собеседовании.
Формат собеседований с командой 1:13:28 Собеседования могут быть устными или с предварительным тестовым заданием. Иногда проводится несколько собеседований подряд: устное, затем тестовое задание, затем общение с командой. Во время собеседования могут неожиданно дать тестовое задание, например, на анализ кода.
Подготовка к собеседованию 1:14:29 Если требуется включить экран или использовать веб-камеру, нужно заранее узнать об этом. Рекомендуется практиковаться перед веб-камерой, например, в Discord. Для стажёров обычно достаточно одного-двух этапов собеседований.
Общие вопросы на собеседовании 1:15:18 Стандартный вопрос: «Расскажи о себе». Вопрос о языках программирования: можно добавить информацию, не указанную в резюме, например, о изучении PHP. Вопрос о мотивации: важно избегать социально нежелательных ответов, таких как «хочу много денег».
Источники информации по ИБ 1:16:32 Важно показать, что вы следите за новостями и материалами по ИБ. Примеры источников: телеграм-каналы, YouTube, журналы. Это выделяет вас как начитанного и целеустремлённого кандидата.
Стадии пентеста 1:17:54 Пример ответа: разведка, сканирование, получение доступов, закрепление в системе, удаление следов, подготовка отчёта.
Утилиты для поиска уязвимостей 1:18:45 Примеры утилит: Nmap, Burp Suite, Nuke, Discerp. Nuke позволяет создавать собственные темплейты для поиска уязвимостей.
Проверка выключения сервера 1:19:45 Пинга недостаточно, нужно использовать Nmap для проверки отсутствия запущенных сервисов.
Анализ портов 1:20:29 Вопрос о портах: 21, 80, 443, 8080, 53, 25. Примеры уязвимостей: анонимные учётные записи, файлы конфигурации, базы данных.
Загрузка файлов на сервер 1:23:45 Проверка расширения и сигнатуры файлов. Проверка размеров файлов. Проверка имён файлов на возможные уязвимости. Определение способа хранения файлов и настройка доступа.
Различия между пентестом и АСЕК 1:25:08 Пентестеры работают без исходных кодов, используя метод блэк-бокса. АСЕК-специалисты анализируют исходные коды и приложение, пытаясь найти уязвимости. Грей-бокс предполагает работу с привилегированной учётной записью в закрытом сервисе.
Рекомендации АСЕК и цели пентестеров 1:26:05 АСЕК даёт рекомендации по исправлению кода, иногда требуется знание программирования. АСЕК-специалисты ищут уязвимости на периметрах, а пентестеры стремятся к более глубоким целям, таким как получение доступа к админ-панели или финансовым операциям.
Примеры уязвимостей в коде 1:27:02 Уязвимость в коде: использование «точка стрип» в функции регистрации пользователя может привести к попытке входа как администратора. Рекомендации по улучшению кода: использование «рендер-темплейт» вместо «рендер-темплейт стринг». Уязвимость «дебак тру»: в режиме дебага выводится дополнительная информация, которая не должна быть на продуктовом стенде.
Уязвимость «ток-то» 1:29:20 Проверка файла на символьную ссылку и последующее изменение файла во время «сна» приложения. Нарушение логики разработчика из-за зазора в две секунды, позволяющего изменить файл.
Уязвимости в PHP 1:31:26 Приведение типов в PHP может привести к уязвимости «мэджик хэшес» или «тайп-джаглинг». Пример уязвимости: сравнение хэшей, начинающихся на «0e», может привести к ложным положительным результатам.
Общие вопросы на собеседованиях 1:32:47 Вопросы о СОП, КОРС, КСП и уязвимостях. Важность подготовки к собеседованию, включая знание менее известных уязвимостей. Примеры вопросов: защита от уязвимостей на этапах разработки, настройка сканеров, использование форматных строк.
Подготовка к собеседованиям 1:35:33 Практический совет: ходить на собеседования в разные компании для формирования пула вопросов. Получение фидбека после собеседований для улучшения знаний и подготовки к будущим собеседованиям.
Заключение 1:36:28 Пожелания успеха в поиске работы и хорошего отдыха на новогодних каникулах. Благодарность участникам и прощание.