Белый хакер: анализ файлов в Linux

Научитесь анализировать подозрительные файлы в Linux: определять истинный тип, находить скрытые данные, извлекать вшитые программы, перехватывать пароли и отслеживать вредоносное поведение. Все на реальных кейсах с поиском флагов.

Этот курс является базой для дальнейшего изучения реверс-инжиниринга, анализа…
Начальный уровень
3

Чему вы научитесь

  • Распознавать истинный тип подозрительного файла, используя file и анализ магических чисел, чтобы не пропустить замаскированный исполняемый файл.
  • Обнаруживать скрытые IP-адреса, домены и подозрительные строки в бинарном файле с помощью strings с разными опциями.
  • Читать hex-дамп файла и идентифицировать по первым байтам его формат (ELF, PDF, PNG), чтобы вручную подтвердить или опровергнуть выводы утилиты file.
  • Находить и извлекать программы, вшитые внутрь других (например, ELF внутри PNG), комбинируя xxd для поиска сигнатур, dd для вырезания и diff/cmp для сравнения.
  • Восстанавливать заголовки испорченных файлов, проанализировав его hex-дамп и сверив с эталонной сигнатурой.
  • Определять точную точку входа программы, проанализировав ELF-заголовок (с учётом порядка байт).
  • Вычислять точный размер вшитого файла внутри другого файла, используя readelf для анализа сегментов и секций.
  • Находить функцию main в stripped-бинарнике (с удалёнными символами), проанализировав дизассемблированный код в objdump.
  • Запускать извлечённую программу и диагностировать причину скрытой ошибки запуска.
  • Прослеживать системные вызовы подозрительных программ с помощью strace, для обнаружения скрытой файловой активности, создания процессов или сетевых подключений.
  • Перехватывать вызовы библиотечных функций через ltrace.
  • Выявлять подозрительное поведение программ (самокопирование, запуск в фоне, сетевые запросы), комбинируя strace и ltrace.
  • Объяснять, почему программа не может найти адрес функции до запуска, и демонстрировать работу механизма релокаций и PLT на примере.

О курсе

Цели курса

Научить вас самостоятельно проводить базовый статический и динамический анализ подозрительных бинарных файлов в Linux, используя те же инструменты и методы, что применяются в реальных расследованиях инцидентов информационной безопасности.

Проще говоря, вы получите готовую методологию: с чего начать, какие инструменты использовать и как интерпретировать результаты.

Почему стоит выбрать именно этот курс?

  1. Упор на практику. Никаких лекций ради лекций: все инструменты изучаются в контексте решения реальных задач.
  2. Детективный сюжет. Теорию и практику пронизывает один детективный сюжет про сисадмина Алексея, который нашёл на сервере подозрительный процесс.
  3. Проблемно-ориентированный подход. В курсе сначала столкнётесь с проблемой, а затем через призму теории сами найдете ее решение. Вас никто не будет заставлять читать скучную теорию – у вас самих появится это желание.
  4. Реалистичные кейсы. Вы не будете решать абстрактные и далекие от реальности задачи. В курсе вы столкнетесь с реальными сигнатурами, вшитыми ELF-файлами, stripped-бинарниками и динамическими библиотеками.
  5. Плавный переход от простого к сложному. Вы начнете с базового анализа файлов с помощью file и strings, затем перейдете к более низкоуровневым xxd и dd. После чего глубоко погрузитесь в структуру формата ELF и статический анализ с помощью readelf и objdump. И только в конце курса вы познакомитесь с динамическим анализом подозрительных исполняемых файлов в Linux.

Что приобретете после освоения курса?

После освоения курса вы сможете:

  • Распознавать истинный тип любого файла, даже если он замаскирован под картинку или лог.
  • Вытаскивать скрытые IP-адреса, домены, пароли, команды и другую информацию из бинарных файлов.
  • Находить и извлекать исполняемые программы, вшитые внутрь изображений.
  • Восстанавливать испорченные заголовки файлов.
  • Читать ELF-заголовок и находить точку входа даже в stripped-бинарниках.
  • Отслеживать системные вызовы и библиотечные функции, чтобы увидеть, что программа делает на самом деле.
  • Проводить полный анализ подозрительного файла: от первичного осмотра и до динамической трассировки.

Что нужно будет делать

В курсе вы будете:

  • Исследовать подозрительные файлы с помощью инструментов командной строки Linux.
  • Извлекать вшитые данные из различных файлов с целью дальнейшего анализа.
  • Анализировать структуру ELF-файлов: заголовки, секции, символы, релокации.
  • Дизассемблировать программы и сравнивать ассемблерный код.
  • Выполнять трассировку выполнения программ для поиска скрытой логики.
  • Находить скрытые пароли, флаги и вредоносную активность.
  • Восстанавливать испорченные файлы вручную.

Разделы курса

Модуль 1. Знакомство с курсом

Вы познакомитесь с историей Алексея, узнаете, какие инструменты и навыки предстоит освоить, повторите базовые команды Linux и подготовите лабораторную среду: виртуальную машину с Ubuntu и всеми необходимыми инструментами.

Модуль 2. Первичный осмотр файла

Вы научитесь определять истинный тип файла (file), находить скрытые строки (strings), читать hex-дамп (xxd) и извлекать фрагменты файлов (dd).

Практикум: три загадочных файла, для которых нужно определить тип, найти флаг в нестандартной кодировке и восстановить испорченное изображение.

Модуль 3. Внутреннее устройство формата ELF

Вы глубже познакомитесь с форматом ELF: изучите заголовок (readelf), секции, дизассемблирование (objdump) и символы (nm). Научитесь находить функцию main даже в stripped-бинарниках.

Практикум: анализ неизвестного файла из сетевого дампа, извлечение вшитых ELF-файлов и поиск флага.

Модуль 4. Динамический анализ

Вы узнаете, как загружается ELF-файл в память, научитесь отслеживать системные вызовы (strace) и библиотечные функции (ltrace), разберётесь с релокациями, PLT и GOT.

Практикум: возвращение к программе из предыдущего модуля, поиск недостающей библиотеки и получение второго флага.

Модуль 5. Итоги курса

Вы повторите ключевые темы и пройдёте финальное тестирование, которое закрепит знания.

Для кого этот курс

Студенты технических специальностей. Вы учитесь на ИБ, разработке или системном администрировании. Прочитали тонны теории про форматы файлов и память Linux, но ни разу не применяли эти знания на практике. Курс даст прикладные навыки, которые можно показать на собеседовании. Начинающие SOC-аналитики (Blue Team) и специалисты по реагированию на инциденты. Вы устроились в SOC. Сработало детектирование: на сервере найден подозрительный файл. Это угроза или ложное срабатывание? Курс научит проводить быстрый анализ подозрительного файла. Системные администраторы Linux. Вы администрируете серверы. Мониторинг показал наличие неизвестных файлов. Вы не хотите запускать подозрительный файл на своём сервере. Что делать? Курс познакомит вас со статическим анализом – исследованием файла без его запуска. Участники CTF. Вы участвуете в CTF и там встречаются задания на реверс-инжиниринг. Может можно обойтись без Ghidra и IDA Pro? Курс даст базовые навыки быстрого анализа файла с помощью простых консольных команд. Разработчики С/С++ под Linux. Ваша программа странно себя ведет в продакшене, но в логах ничего нет. Или вы получили бинарник от подрядчика и хотите проверить, какие системные вызовы он делает? Курс даст навыки отладки программы без исходников, трассировки системных и библиотечных вызовов, а также глубокое понимание формата ELF и процесса загрузки программ в память.

Начальные требования

Для комфортного прохождения курса необходимо умение открывать терминал в Linux и запускать в нем команды. Желательно иметь базовое знакомство с командной строкой Linux (навигация по директориям, работа с файлами).

Всему остальному научитесь в процессе обучения. Курс не требует знаний ассемблера, опыта реверс-инжиниринга или владения сложными инструментами.

Наши преподаватели

Как проходит обучение

Курс состоит из 5 модулей, которые последовательно ведут вас от первичного осмотра файла до полного динамического анализа. Все уроки в текстовом формате.

В каждом модуле вас ждут:

  • Короткие теоретические шаги: только те, которые необходимы для практики.
  • Интерактивные задания: выбор ответа, сопоставление, ввод чисел, строк и команд.
  • Практикумы с флагами: вы будете анализировать реальные (но безопасные) файлы и искать флаги в формате FLAG{...}. Флаг – это доказательство, что вы всё сделали правильно.

В конце курса финальный тест, который проверяет понимание, а не запоминание.

Что нужно для прохождения:

  • Любой компьютер с выходом в интернет.
  • VirtualBox (бесплатно) для запуска Linux на домашнем компьютере (если вы работаете на Windows).
  • Желание разбираться, а не просто кликать «далее».

Никаких лекций на часы: вы сразу начнете решать задачи.

Программа курса

загружаем...

Что вы получаете

  • Инструментарий и осознанное использование file, strings, xxd, dd, diff, readelf, objdump, nm, strace и ltrace.
  • Аналитическое мышление – умение читать hex-дампы, находить сигнатуры, извлекать вшитые файлы, находить функции в stripped-бинарниках, поиск флагов в условиях неполной информации, формулирование гипотез и их проверка.
  • Методологию – понимание границ статического анализа и того, когда пора переходить к динамическому.
  • Пет-проект для портфолио – вы сможете показать работодателю: «Я анализировал такие-то файлы, находил такие-то артефакты, использовал такие-то инструменты и сделал такие-то выводы».
  • Фундамент для дальнейшего роста – после курса вы будете готовы к более глубокому изучению реверса, анализу сложных вредоносных программ и поиску уязвимостей в программном обеспечении.
Price: Бесплатно

Расскажите о курсе друзьям

Price: Бесплатно