Веб-безопасность №4. Пентест и собеседования | Кружок CTF МИФИ&BI.ZONE

YOUTUBE · 28.11.2025 06:56

Ключевые темы и таймкоды

Введение в пентест

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
  • Пожелания успеха в поиске работы и хорошего отдыха на новогодних каникулах.
  • Благодарность участникам и прощание.