Как стать настоящим хакером или Capture The Flag

0
20301
Добавить в избранное

Рассказ об опыте участия в CTF (Capture The Flag — захват флага), которым поделилась аналитик информационной безопасности из компании Principal Financial Group.

Я посетила BSides Iowa, небольшую конференцию по безопасности, которая проходила в Де-Мойне, и участвовала в своем первом Capture the Flag как профессионал. До того, как вы начнете думать о больших площадках на открытом воздухе и физической нагрузке, соревнования Capture the Flag — это игры для специалистов по нарушению безопасности, которых большинство бы назвало хакерами (красная команда) и профессионалов в области информационной безопасности (синяя команда), а также всех остальных. Во время CTF игроки соревнуются друг с другом, решая задачи на своих компьютерах.

Существуют различные типы соревнований CTF, защитный стиль игры — это игровое поле и защита от атак (красная команда против синей) с активно атакующими и защищающими сетевую инфраструктуру игроками. Я сосредоточусь на защитном стиле CTF.

Как правило, этот стиль CTF делится на подкатегории (они различаются в зависимости от того, кто ведет, но есть несколько констант, таких как криптография и анализ пакетов) и каждая подкатегория содержит набор задач, которые пользователь должен решить, чтобы найти флаг. Флаг обычно представляет собой строку текста, которую пользователь вводит в игровое поле, чтобы получить свои очки. Чем больше очков стоит задача, тем труднее ее решить.

7,5 часов, тарелка картошки, 2 ломтика пиццы и две таблетки аспирина, после чего я выключила свой компьютер, получив 3,250 очков и 6-е место. Я решила держаться категории, для которой у меня было достаточно навыков. Я закончила решение всех 7 задач по Network Forensics, 2 из 8 задач, связанных с Host Forensics, и 3 из 6 задач Crypto. Многие из этих задач я решила первой, либо была в первой тройке. Не так плохо для первого CTF.

Это был хороший старт для новичка, он помог мне почувствовать свою принадлежность к сфере. Временами, особенно в технической специальности, легко стать жертвой синдрома самозванца. Этот CTF развеял все сомнения на счет моих навыков. Я знаю, что мне еще многое предстоит узнать, но я также знаю, что не притворяюсь. Также это было хорошей тренировкой для ума и помогло мне расширить мои знания по информационной безопасности. Несмотря на то, что мои фундаментальные знания увеличились незначительно, я все равно многому научилась, решая задачи, о которых не знала раньше или знала, но не знала, как их решить. Чтобы изучить новые технологии, разработчики создают приложения, с этой же целью специалисты по безопасности конкурируют друг с другом и занимаются взломами.

Настоящее удовольствие от CTF вы получаете, когда используете реальные навыки и тактики, чтобы найти флаг, и они действительно помогают (вы что-то взламываете). CTF — это ваш шанс взломать что-то легально (поскольку несанкционированный взлом крайне незаконен, и вы, вероятно, попадете в тюрьму, если вас поймают). Давайте рассмотрим несколько задач, которые были на BSides Iowa SecDSM CTF

Crypto

Одной из наиболее интересных криптографических задач была проблема стеганографии. Стеганография — это скрытие секретного сообщения в другом файле (например, изображении). Это довольно распространенная задача, встречающаяся в соревнованиях CTF. В сети доступно множество инструментов для обнаружения сообщения, скрытого в файле изображения, а также инструментов для извлечения этих сообщений.

Стеганографическая задача

Эта картинка выглядит абсолютно обычной? Но если мы посмотрим на командную строку:

Ничего особенного… давайте попробуем hexdump:

Оно возвращает кучу вывода, который я не буду вставлять сюда, но вот соответствующие биты:

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

Теперь у нас есть подсказка для пароля. Если мы попробуем использовать «wordshavepower» (слова на изображении):

Потрясающе! Давайте посмотрим с чем этот файл:

Cipher Challenge

Еще одна из задач — челлендж по шифрованию для декодирования:

Справа, я подумала, что это может быть шифр Цезаря, но нет. Следующий самый популярный шифр — это шифр Виженера. Гуглим и:

Другие задачи в этой категории требовали перевода из двоичной системы, Base64, Base32 или Base16 в ascii или дешифрирования файла, зашифрованного с помощью AES.

Host Forensics

Для решения задач, нужно было, чтобы игрок загрузил дамп MS Host и проанализировал его, а затем узнал имя запущенного вредоносного ПО и адрес, и порт C2 (Command & Control).

Эта конкретная категория была самой близкой мне. Я никогда не занималась экспертизой на компьютере под управлением Windows, но Google — друг каждого. Я обнаружила, что могу использовать инструмент командной строки, называемый Volatility, для анализа дампа и поиска флагов.

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

Я никогда не работала с аварийной дамп, но поиск в Google привел меня к Volatility и командам, которые мне нужно было запускать. (еще я нашла запись с другого CTF с похожим заданием).

Я начала с просмотра сетевых подключений в дампе. Так я знала, что, возможно, смогу определить соединение для ботнета C2.

Я заметила, что серверу был предоставлен странный внешний IP-адрес с несколькими исходящими соединениями. Я отфильтровала этот IP и начала искать подключения к нестандартному порту (в этом случае не к порту 80 или 433, потому что это веб-порты и обычно не используются для управления бот-сетью).

Единственный вариант — 174.127.99.252:4576, и он оказался верным.
Следующей задачей было точно определить вредоносное ПО, заразившее систему. Я использовала strings для поиска по дампу и отфильтровала IP адреса для C2, потому что знала, что IP-адрес определенно привязан к вредоносному ПО.

Из этого я поняла, что вредоносное ПО называется jrat.io и что это также флаг. Я начала работать в этой категории чуть позже в тот же день. Хотелось бы, чтобы у меня было больше времени, чтобы попытаться решить другие задачи, потому что я думаю, что смогла бы их решить. Две вышеперечисленные задачи стоили больше всего очков в категории Host Forensics.

Network Forensics

Эта категория, где я чувствовала себя как дома. Пакетный анализ — основная часть моей повседневной жизни. Задачи в этой категории были связаны с тремя основными темами: фишинг, вымогательство и heartbleed. Чтобы решить задачи в этой категории, игроку нужны: Wireshark и знание анализа пакетов и сетей.

Я покажу сложную задачу. Нам пришлось загрузить файл pcap и единственным словом в его описании было «сломан».

Heartbleed

Глядя на pcap в Wireshark, я знала, что это будет атака с heartbleed из-за запросов и ответов, похожих на сердечный ритм. Я посмотрела, как работает heartbleed, и мне стало понятно, где искать. (Посмотрите графическое объяснение, которое я нашла)

Если вы посмотрите heartbleed вывод и скопируете Payload как текст, то в итоге обнаружите:

и bsides = {heartbleed_for_life} — это флаг.

Попробуйте

Если вы дошли до этого момента, и я не потеряла вас где-нибудь в дампе Microsoft, возможно, вам нужно поучаствовать в Capture the Flag. Существует много CTF для начинающих. Также есть много CTF, специально для веб-разработчиков. Знание способа защиты приложения от внешних угроз для разработчика — бесценно. Если вы заинтересованы этой темой, но не хотите соревноваться, ознакомьтесь с некоторыми из этих сайтов:

Интересны утилиты командной строки, которые я использовала?

Я выполнила большинство задач на Ubuntu 16.04 Digital Ocean Droplet.
Если вам особенно интересна разработка веб-приложений, то предлагаю попробовать WebGoat. Я использовала его, чтобы продемонстрировать атаки SQL Injection для презентации группе студентов, и его было довольно легко настроить и использовать.

Другие стать по теме

6 книг, которые рассказывают об этичном хакинге

10 лучших инструментов для хакинга в 2017 году

Интересуетесь хакингом?

Подпишитесь на нашу рассылку, чтобы получать больше интересных материалов:

И не беспокойтесь, мы тоже не любим спам. Отписаться можно в любое время.




Добавить комментарий