Темы, которые НЕ подходят по объему под префикс “Статья”
Здраствуйте коллеги, искренне рад что вам понравились мои статьи. Извините за кривое изложение мной очень интересной темы, я только учусь излагать свои действия и мысли на цифровой бумаге. В общем хватит прелюдий продолжаем искать флаги.
CTF-площадка Codeby Game
Площадка для специалистов в сфере информационной безопасности и программистов, которая содержит задания по кибербезопасности на захват флага (CTF)
game.codeby.school
Предыдущие мной написаны мной можно найти здесь, здесь и здесь
Переходим на
Ссылка скрыта от гостей
от нас требуется The password for the next level is stored in a hidden file in the inhere directory. Если на русском, нужный нам флаг хранится в скрытом файле в домашней директории inhere.
На сайте присутствует подсказка в виде команд, которые вам могут понадобиться для решения этой задачи ls, cd, cat, file, du, find
Запускаем ssh bandit.labs.overthewire.org port 2220
Логин bandit3 пароль флаг из level2
Мы на сервере, пишем команду для просмотра содержимого директории ls
Вводим команду pwd
для понимания директории где мы находимся
/home/bandit3
Наша задача перейти в директорию inhere
пишем команду
cd /home/bandit3/inhere/
Нам по прежнему требуется найти скрытый файл пишем команду
ls -a
Необходимый нам скрытый файл имеет имя .hidden
Для его открытия используем команду cat .hidden
Отлично нам удалось найти флаг для прохождения level4 и подключения к bandit4
До новых встреч!
- guest-1675977874
- 29.12.2022
- CTF Zone
Рассказ об опыте участия в 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. В сети доступно множество инструментов для обнаружения сообщения, скрытого в файле изображения, а также инструментов для извлечения этих сообщений.
Стеганографическая задача
Эта картинка выглядит абсолютно обычной? Но если мы посмотрим на командную строку:
$ file Words-Have-Power.jpg
Words-Have-Power.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, progressive, precision 8, 849x578, frames 3
Ничего особенного… давайте попробуем hexdump:
$ hexdump -C Words-Have-Power.jpg
Оно возвращает кучу вывода, который я не буду вставлять сюда, но вот соответствующие биты:
0000a580 00 00 00 1e 00 00 00 08 00 00 00 66 6c 61 67 2e |...........flag.|
0000a590 74 78 74 7d fa c9 4c 8f fb d4 5e 8d 43 86 1f 63 |txt}..L...^.C..c|
0000a5a0 f9 f5 dd 12 d0 9d c7 e1 1d 50 5b 26 a5 32 7e ad |.........P[&.2~.|
0000a5b0 94 04 3e a1 27 3b d4 e5 7f a4 f6 45 43 50 4b 01 |..>.';.....ECPK.|
0000a5c0 02 3f 03 14 03 01 00 00 00 bc 0c 94 4a 21 ff 41 |.?..........J!.A|
0000a5d0 1a 2a 00 00 00 1e 00 00 00 08 00 24 00 00 00 00 |.*.........$....|
0000a5e0 00 00 00 20 80 a4 81 00 00 00 00 66 6c 61 67 2e |... .......flag.|
0000a5f0 74 78 74 0a 00 20 00 00 00 00 00 01 00 18 00 80 |txt.. ..........|
0000a600 63 53 a4 a0 b9 d2 01 80 70 f5 17 a1 b9 d2 01 80 |cS......p.......|
0000a610 63 53 a4 a0 b9 d2 01 50 4b 05 06 00 00 00 00 01 |cS.....PK.......|
0000a620 00 01 00 5a 00 00 00 50 00 00 00 00 00 |...Z...P.....|
Теперь мы знаем, что флаг находится в текстовом файле и по последней строке мы можем сказать, что в jpg есть скрытый файл.
Если мы попытаемся распаковать его:
$ unzip Words-Have-Power.jpg
Archive: Words-Have-Power.jpg
warning [Words-Have-Power.jpg]: 42349 extra bytes at beginning or within zipfile
(attempting to process anyway)
[Words-Have-Power.jpg] flag.txt password:
Теперь у нас есть подсказка для пароля. Если мы попробуем использовать «wordshavepower» (слова на изображении):
$ unzip Words-Have-Power.jpg
Archive: Words-Have-Power.jpg
warning [Words-Have-Power.jpg]: 42349 extra bytes at beginning or within zipfile
(attempting to process anyway)
[Words-Have-Power.jpg] flag.txt password:
extracting: flag.txt
Потрясающе! Давайте посмотрим с чем этот файл:
$ cat flag.txt
flag{not_stego_not_even_once}
Cipher Challenge
Еще одна из задач – челлендж по шифрованию для декодирования:
pcyv {mvac_flt_bg_kdzja_xoksvp_iaof_u4}
Сперва, я подумала, что это может быть шифр Цезаря, но нет. Следующий самый популярный шифр – это шифр Виженера. Гуглим и:
Другие задачи в этой категории требовали перевода из двоичной системы, Base64, Base32 или Base16 в ascii или дешифрирования файла, зашифрованного с помощью AES.
Host Forensics
Для решения задач, нужно было, чтобы игрок загрузил дамп MS Host и проанализировал его, а затем узнал имя запущенного вредоносного ПО и адрес, и порт C2 (Command & Control).
Эта конкретная категория была самой близкой мне. Я никогда не занималась экспертизой на компьютере под управлением Windows, но Google – друг каждого. Я обнаружила, что могу использовать инструмент командной строки, называемый Volatility, для анализа дампа и поиска флагов.
После загрузки файла я запустила команду file
, чтобы лучше понять то, что я искала, потому что, если вы попытаетесь просто cat
файл, вы получите кучу мусора.
$ file memory.dmp
memory.dmp: MS Windows 64bit crash dump, full dump, 2097152 pages
Я никогда не работала с аварийной дамп, но поиск в Google привел меня к Volatility и командам, которые мне нужно было запускать. (еще я нашла запись с другого CTF с похожим заданием).
Я начала с просмотра сетевых подключений в дампе. Так я знала, что, возможно, смогу определить соединение для ботнета C2.
Я заметила, что серверу был предоставлен странный внешний IP-адрес с несколькими исходящими соединениями. Я отфильтровала этот IP и начала искать подключения к нестандартному порту (в этом случае не к порту 80 или 433, потому что это веб-порты и обычно не используются для управления бот-сетью).
$ volatility -f memory.dmp --profile=Win7SP1x64 netscan | grep 10.0.10.103
Volatility Foundation Volatility Framework 2.5
0x23d43aec0 UDPv4 10.0.10.103:138 *:* 4 System 2017-04-21 19:18:49 UTC+0000
0x23d472ec0 UDPv4 10.0.10.103:137 *:* 4 System 2017-04-21 19:18:49 UTC+0000
0x23da11b40 UDPv4 10.0.10.103:1900 *:* 2292 svchost.exe 2017-04-21 19:20:47 UTC+0000
0x23f434690 UDPv4 10.0.10.103:68 *:* 904 svchost.exe 2017-04-21 19:35:12 UTC+0000
0x23f21f880 TCPv4 10.0.10.103:49662 174.127.99.252:4576 CLOSED -1
0x23f471010 TCPv4 10.0.10.103:49682 98.139.199.205:443 CLOSED -1
0x23fdbe3b0 TCPv4 10.0.10.103:139 0.0.0.0:0 LISTENING 4 System
0x23f91c010 TCPv4 10.0.10.103:49665 165.254.114.16:80 CLOSED -1
0x23faa0cd0 TCPv4 10.0.10.103:49698 63.250.200.63:443 CLOSED -1
Единственный вариант – 174.127.99.252:4576
, и он оказался верным.
Следующей задачей было точно определить вредоносное ПО, заразившее систему. Я использовала strings
для поиска по дампу и отфильтровала IP адреса для C2, потому что знала, что IP-адрес определенно привязан к вредоносному ПО.
$ strings -d memory.dmp | grep '174.127.99.252' | more -5
{"NETWORK":[{"PORT":4576,"DNS":"174.127.99.252"}],"INSTALL":true,"MODULE_PATH":"Ns/k/Erc.R","PLUGIN_FOLDER":"fDNTvmjCywD","JRE_FOLDER":"KRBDYF","JAR_FOLDER":"
HfItRcGAvMp","JAR_EXTENSION":"JFKuuO","ENCRYPT_KEY":"mZWoFgfReBJIoLFLZKsOOIaqn","DELAY_INSTALL":2,"NICKNAME":"User","VMWARE":true,"PLUGIN_EXTENSION":"TvEXt","
WEBSITE_PROJECT":"https://jrat.io","JAR_NAME":"kpjCTotwwxd","SECURITY":[{"REG":[{"VALUE":""SaveZoneInformation"=dword:00000001rn","KEY":"[HKEY_CURRENT_USE
R\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments]"},{"VALUE":""LowRiskFileTypes"=".avi;.bat;.com;.cmd;.exe;.htm;.html;.lnk;.mpg;.mpeg
;.mov;.mp3;.msi;.m3u;.rar;.reg;.txt;.vbs;.wav;.zip;.jar;"rn","KEY":"[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Association
Из этого я поняла, что вредоносное ПО называется jrat.io
и что это также флаг. Я начала работать в этой категории чуть позже в тот же день. Хотелось бы, чтобы у меня было больше времени, чтобы попытаться решить другие задачи, потому что я думаю, что смогла бы их решить. Две вышеперечисленные задачи стоили больше всего очков в категории Host Forensics.
Network Forensics
Эта категория, где я чувствовала себя как дома. Пакетный анализ – основная часть моей повседневной жизни. Задачи в этой категории были связаны с тремя основными темами: фишинг, вымогательство и heartbleed. Чтобы решить задачи в этой категории, игроку нужны: Wireshark и знание анализа пакетов и сетей.
Я покажу сложную задачу. Нам пришлось загрузить файл pcap и единственным словом в его описании было «сломан».
Heartbleed
Глядя на pcap в Wireshark, я знала, что это будет атака с heartbleed из-за запросов и ответов, похожих на сердечный ритм. Я посмотрела, как работает heartbleed, и мне стало понятно, где искать. (Посмотрите графическое объяснение, которое я нашла)
Если вы посмотрите heartbleed вывод и скопируете Payload как текст, то в итоге обнаружите:
SC[r+H9
w3f
"!985
32ED/A I
42
#ge: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Length: 28
Pragma: no-cache
Cache-Control: no-cache
bsides={heartbleed_for_life}kYV<V4
и bsides = {heartbleed_for_life}
– это флаг.
Попробуйте
Если вы дошли до этого момента, и я не потеряла вас где-нибудь в дампе Microsoft, возможно, вам нужно поучаствовать в Capture the Flag. Существует много CTF для начинающих. Также есть много CTF, специально для веб-разработчиков. Знание способа защиты приложения от внешних угроз для разработчика – бесценно. Если вы заинтересованы этой темой, но не хотите соревноваться, ознакомьтесь с некоторыми из этих сайтов:
- CTFLearn
- HackThisSite
- Список сайтов для практики
- Инструменты и источники для подготовки к CTF от института Infosec
Интересны утилиты командной строки, которые я использовала?
- cat
- file
- more
- strings
- unzip
- Volatility
Я выполнила большинство задач на Ubuntu 16.04 Digital Ocean Droplet.
Если вам особенно интересна разработка веб-приложений, то предлагаю попробовать WebGoat. Я использовала его, чтобы продемонстрировать атаки SQL Injection для презентации группе студентов, и его было довольно легко настроить и использовать.
Другие стать по теме
6 книг, которые рассказывают об этичном хакинге
10 лучших инструментов для хакинга в 2017 году
В самом начале, когда только зарождалось понятие “хакер” люди связывали это слово с преступлениями и чем-то противозаконным. Сейчас же за любую дыру в системе компании готовы платить огромные деньги. Поиск уязвимостей стал сложнее, а компаний все больше. В пример можно привести площадку HackerOne. Но прежде чем на ней работать, потребуются определенные знания и тренировки. Где их искать? Все очень просто. Требуется всего лишь прохождение CTF. Что это такое и как с этим работать я расскажу в этой статье.
План работы
Перед этим давай я посвящу вас в наши планы. Расписывать много не стану. Весь план статьи вы можете увидеть ниже.
- Что такое CTF?
- Термин CTF и его описание
- Алгоритмы работы
- OSINT: Как правильно искать информацию
- Термин OSINT и его описание
- Цель разведки
- Немного Google Dorks
- Сайты для поиска информации
- Стеганография: Что скрывают от глаз пользователей?
- Термин Стеганография и его описание
- Работа с HEX редактором
- Учимся скрывать и находить информацию в картинке
- Работа с аудиофайлами
- Реверс-инженерия: Как работать с файлами
- Wireshark и перехват пакетов
- Пятиуровневый стек
- Работа с фильтрами и их операторами
- Коротко о видах анализа и программах
По плану я описал всю работу, которую нам предстоит провести, поэтому можем приступать к реализации.
Что такое CTF?
Начнем с того, что означает такое слово. Гугл трактует его так:
CTF (Capture The Flag, Захват флага) – соревнования по спортивному хакингу или командная игра, главной целью которой является захват «флага» у соперника. Участники делятся на команды и соревнуются в выполнении разнообразных задач. Их цели зависят от формата соревнования.
Слово “команда” пока что нас не касается, так как наша основная цель освоить базовые знания для решения CTF задач. В дальнейшем я заменю слово задача на таску (от английского слова task).
Итак, представим ситуацию. Тебе дали компьютер, точнее информацию о нем (IP адрес или логин/пароль к учетке) и сказали взломать. В реальных условиях такого рода таски встречаются достаточно часто. И чтобы со всем этим справиться я расписал алгоритм решения, который состоит из трех пунктов. По нему вам будет проще ориентировать и не будет ступора дальше.
- Гуглится все. Представим у нас есть код на Python и при его запуске выходит ошибка. Ранее такой не было и что делать в таком случае? Самое логичное решение это загуглить. Та же система работает и в решении CTF. Рекомендуется использовать англоязычные сайты, чтобы найти больше решений и ответов.
- Подбор слов. Никто не сомневается в том, что интернет дает огромное количество решений на поставленные задачи. Но бывают исключения из правил, когда пользователь неправильно создает запрос. Допустим мы получили такую ошибку из нашей программы: UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x84 in position 0: invalid start byte. Прежде всего не нужно копировать и вставлять все, что указано. Требуется выделить главную информацию, а именно первое слово, которое говорит о том, какого характера идет ошибка. Таким образом, шансы на решения проблемы при правильном составлении запроса увеличиваются в несколько раз.
- Метод кубиков. Проще всего объяснить такое правило будет на достаточно простом примере. Каждый персональный компьютер обрабатывает огромный поток информации за несколько секунд. На языке ассемблер создаются запросы к оперативной памяти: чтение, запись и удаление. Таким образом, из таких простых действий мы видим картинку на экране нашего монитора. По аналогии с таким примером следует выполнять последовательное решение задач. Сначала сбор информации, потом ее анализ и реализация.
Итак, мы разобрались с тем, как правильно нужно работать с CTF, теперь стоит перейти к их видам, а точнее таскам, которые встретятся на вашем пути. Далее я опишу несколько главных аспектов для работы и продемонстрирую их возможности. Потренироваться в решении вы сможете на отдельных площадках.
OSINT: Как правильно искать информацию
Итак, прежде всего следует определится с тем, что такое OSINT. Так как основная аудитория этой статьи это начинающие игроки, то я постараюсь объяснять каждый новый и непонятный термин, начиная с этого.
OSINT (Open-Source Intelligence, разведка на основе открытых данных) — сбор информации о человеке или организации из открытых источников и ее последующий анализ.
Основной целью такой разведки становятся персональные данные. Любая информация, которая связана с человеком. Геолокация мест, фамилия, имя или отчество, а также дата рождения или имя домашнего питомца. Я думаю вы поняли о чем я говорю. Но чтобы найти все это порой мало одного лишь запроса в гугле. Так как алгоритмы поиска основаны на релевантности, то есть дают максимально близкие вам запросы. Поэтому мы не всегда получаем нужную нам информацию. Чтобы это исправить следует ограничить круг поиска при помощи операторов, специальных конструкций запросов. Ниже я создал небольшую таблицу с такими конструкциями.
Оператор |
Описание |
Пример |
site |
ищет информацию на определенном сайте |
site:codeby.net CTF Zone |
link |
Страницы содержащие ссылку на сайт |
link:codeby.net |
cache |
Позволяет увидеть актуальный кэш страницы |
cache:codeby.net |
related |
Ищет сайты с похожим контентом |
related:codeby.net |
source |
Выдает информацию из новостной ленты Google News |
source:codeby.net |
map |
Ищет нужную информацию на картах |
map:codeby.net |
Также предлагаю рассмотреть поиск информации по одному названию. Для этого стоит обратится к сайту Namechk, он покажет занятые домены. Таким образом это поможет найти нужный сайт или его клоны. Если дело касается никнеймов людей, то здесь будет все гораздо проще. Большинство пользователей используют один и тот же никнейм в различных социальных сетях. Воспользуемся этим и при помощи образов ссылок найдем нужный нам аккаунт.
На примере социальной сети Telegram, мы можем найти канал Codeby, для этого воспользуемся шаблоном ссылок t.me. Финальный результат будет выглядеть следующим образом: https://t.me/codeby_sec. Но хочу заметить, что сработает такой поиск только в том случае если канал является открытым. Для пользователей это равноценно тому, что используется номер телефона для поиска или человек после регистрации еще не придумал юзернейм, который мы обычно видим в профиле после спецсимвола @.
Более подробную информацию о личности можно найти при помощи слитых баз данных. Такой способ эффективен, но очень затратный по времени так как найти нужную БД не так просто. Чаще всего приходится искать на форумах, сайтах и других интернет ресурсах. Из доступных и бесплатных вариантов можно привести в пример Wayback Machine, для любителей испытать удачу.
В случае если наша жертва параноик или просто информации очень и очень мало можно прибегнуть к анализу фотографий и видеофайлов. Чаще всего в них скрывается огромное количество метаданных, они то и помогут вам найти зацепку. Найти их вы можете во вкладке свойств, которая содержится в абсолютно любом файле.
Если же дело касается сайта, что чаще всего встречается в CTF, то здесь мы можем воспользоваться таким понятием как WHOIS. Это сетевой протокол, который стоит рядом с TCP и используется для установки владельца домена и подробной информации о нем. Также в решении таск может помочь сервис Censys. С регистрацией может быть доступна демо-версия, но для старта этого достаточно. Для работы с DNS серверами прекрасно подходит DNS Dumpster с его функционалом и графическим представлением всей информации. Чтобы не терять важные ссылки следует обратится к онлайн фреймворку OSINT Framework. Там вы найдете множество полезной информации и никогда не останетесь у разбитого корыта.
Стеганография: Что скрывают от глаз пользователей?
У большинства людей при виде этого слова возникает ассоциация с картинкой в которой вшита какая-либо информация. Это самый примитивный пример реализации стеганографии. В Windows создать такое можно при помощи подручных средств. Некоторые таким образом скрывают свои тайны в обычных JPEG фотографиях. Только мы с тобой будет выжимать из таких изображений все содержимое. Перед этим ознакомимся с термином стеганография.
Цифровая стеганография – это направленное сокрытие каких-либо данных в цифровых объектах (картинках, видеофайлах или звуковых дорожках).
Теперь попробуем взять какое-либо изображения из интернета и просто поменяем ему формат. Допустим у меня есть исходный файл с названием cat.jpg. При открытии операционная система использует встроенные редакторы изображений. Если я поменяю формат файла с JPG на MP3 или тот же WAV откроется уже плеер и система сообщит о том, что файл поврежден и его невозможно прочитать. Хотя на самом деле если по прежнему открыть файл с таким форматом через редактор изображений никаких проблем не возникнет. Как это происходит?
Каждый файл состоит из определенной последовательности байт. Обычно такая последовательность представлена в шестнадцатеричной системе счисления. Простым языком все картинки имеют определенную структуру, по которой система их распознает. Чтобы найти эту структуру воспользуемся HEX редактором. Каким именно вы можете выбрать сами. Также скачаем любую картинку из гугла в формате JPG. Я для работы использую такую фотографию:
Откроем ее при помощи редактора и посмотрим на последовательность байтов. Все должно выглядеть примерно так:
Я выделил первые три байта в памяти поскольку для JPG формата они никогда не меняются. Справа у нас кот в шестнадцатеричной системе, а слева тот же кот но в кодировке ASCII. Именно поэтому вы видите набор смайликов и непонятных символов. Неизменную последовательность байтов (в нашем случаи это FF D8 FF) принято называть сигнатурой. С ней мы подробнее познакомимся в разделе реверса, а сейчас я могу сказать, что сигнатура это подобие вашей подписи, которую вы оставляете в документе и других деловых бумажках. Кроме одинакового конца файлы имеют и отдельный конец после которого программа не будет ничего читать. В рамках нашей работы я не стану объяснять как ручным способом найти склейку файлов, потому что сейчас существует огромное количество утилит заточенных под это. Предлагаю протестировать все в реальных условиях. Берем нашу картинку и перемещаем на рабочий стол. Склейку я проведу на Windows 10, а искать скрытые данные буду при помощи Linux. После перемещения создаем архив в формате RAR и помещаем туда то, что мы хотим спрятать от посторонних глаз. После этого тут же создаем файл в формате BAT и записываем в него следующие строки: copy /b название_картинки.jpg + название_архива.zip crack_me.jpg
Сохраняем результат и запускаем. В результате таких манипуляций мы получим файл с названием crack_me.jpg. Чтобы убедиться, что он имеет скрытую информацию делаем щелчек правой кнопкой мыши по файлу и выбираем пункт открыть с помощью WinRAR. Таким образом перед нами появится темная сторона нашего файла. Чтобы эти данные обнаружить и изъять мы воспользуемся утилитой binwalk. Плавно перетекаем из Windows в Linux и пробуем наши силы. Чтобы извлечь всю информацию в терминале требуется напечатать такую команду: binwalk -e crack_me.jpg. После этого вы увидите примерно такую картину:
Все прошло успешно и рядом с файлом была создана папка, в нее поместили все вшитые файлы и теперь их можно с легкостью посмотреть и изучить.
Также порой в изображениях можно найти геолокации. Обычно они прячутся в метаданных и достать их оттуда не составляет труда. Утилита exiv2 помогает просматривать всю информацию о изображениях, чтобы увидеть их требуется запустить программу с флагом -pa, а для комментариев используется -pc. Также вы можете столкнуться с таким понятием как сжатие. При помощи него тоже можно скрывать нужную информацию, в этом случае вас спасет программа stegsolve.
Что касается аудиофайлов. Здесь все значительно проще. Вам не придется делать, что-либо вручную поскольку самые простые таски вы сможете решать при помощи редактора аудио Audacity. Для примера я взял еще одно фото и попытался скрыть его в аудио дорожке. Само изображение вы видите ниже.
Итак, в результате преобразования JPG картинки в формат WAV получился довольно непонятный звук. Я загрузил его в наш редактор. Далее вам требуется сделать по тише аудиофайл и включит режим спектрограммы. Таким образом получится результат. Если же изображения не появилось следует поэкспериментировать с частотой файла. Увеличивая или уменьшая ее вы добьетесь нужного результата. Еще порой встречаются таски на логику, где дается одна аудиодорожка и никакого изображения или текста в ней нету. Здесь стоит включать логику и вероятнее всего решение скрыто в громкости файла. Самый высокий тон можно принять за единицу, а самый низкий соответственно за ноль. Таким образом можно составить закодированный в двоичную систему текст и в дальнейшем при декодировании получить флаг.
Сигнатуры для всех известных и часто используемых файлов я предоставил ниже.
Расширение |
Шестнадцатеричный вид |
ASCII формат |
JPG |
ff d8 ff e0 00 10 4a 46 49 46 00 01 |
……JFIF.. |
PNG |
89 50 4e 47 0d 0a 1a 0a 00 00 00 0d |
.PNG…….. |
ZIP |
450 4b 03 04 14 00 00 00 08 00 06 93 |
PK………. |
MP3 |
49 44 33 03 00 00 00 0f 6d 4b 54 41 |
ID3…..mKTA |
|
25 50 44 46 2d 31 2e 35 0a 25 d0 d4 |
%PDF-1.5.%.. |
EXE |
4d 5a 90 00 03 00 00 00 04 00 00 00 |
MZ………. |
GIF |
47 49 46 38 39 61 96 00 53 00 87 00 |
GIF89a..S… |
Итак, теперь пробежимся по итогам. В этом разделе для новичков больше преобладает умение использовать софт, чем знания. По сути основная цель это просканировать файл, доказать, что в нем, что-то есть и вытащить всю информацию при помощи подручных средств. Вручную вас никто не просит этого делать. Вы можете открыть файл в формате HEX, если в обычном режиме чтения система сообщает о повреждениях. С помощью 16-тиричной системе можно установить первоначальное расширение файла и поменять его обратно. Такого типа таски могут встречаться на вашем пути, их основная цель запутать игрока и вызвать панику при помощи крайне простой ошибки.
Реверс-инженерия: Как работать с файлами
Итак, здесь прошу быть очень внимательным, поскольку информацию о реверс-инженерии каждый трактует по своему. Прежде чем погружаться в паутину двоичных систем я предлагаю ознакомится с тем, как работает передача информации. Ведь любое подключение к компьютеру происходит прежде всего благодаря протоколам.
Протокол – это набор правил, которые созданы для регулирования обмена данных между системами.
Для наглядности давай возьмем самый примитивный пример. Мы ежедневно общаемся с огромным количеством людей и перед тем как начать какой-либо диалог мы должны поприветствовать собеседника. А в конце нашего разговора не забыть попрощаться. Аналогично работает все в системе. Браузер, когда желает узнать IP-адрес сервера использует протокол системных доменных имен, он же DNS. После сервер отвечает нашей системе и передает ей нужные данные.
Также стоит помнить, что при общении мы придерживаемся определенных правил. К примеру, после приветствия у нас следует имя собеседника. Та же система применяется к интернет-протоколам. Только вместо имени используется конкретизация информации в заголовке пакета. Под этим словом понимается номер порта источника и приемника. Само же понятие порт пришло к нам для облегчения работы системы. Через них мы можем передавать больше информации чем обычно. К примеру по 21 порту мы можем скачать файл, а по 443 подключится к серверу и посмотреть что-либо. Еще стоит напомнить о таком термине как пакет. Если говорить коротко, то это файл с информацией который передается на другое устройство. Своеобразное подобие посылки, но достаточно необычной. В реальной жизни мы отправляет посылку целиком, а в интернете мы разбиваем ее на пакеты и отправляем по частям.
Также в работе интернета есть одно важное понятие уровней. Вся информация передается на определенных этапах. Чтобы не загружать мозг я коротко представил все в виде таблицы. По другому это все называется пятиуровневым стеком интернет-протоколов.
Что передается |
Тип уровня |
Между кем передается |
Данные |
Прикладной уровень |
Между браузером и сервером |
TCP/UDP заголовки |
Транспортный уровень |
Между операционными системами |
IP/TCP/UDP заголовки |
Сетевой уровень |
Между маршрутизаторами |
MAC/IP/TCP/UDP заголовки |
Канальный уровень |
Между сетевыми картами |
Двоичный код |
Физический уровень |
Между кабелями |
Для дальнейшей работы нам потребуется Wireshark. Я на примере своих вирусов покажу как перехватывать нужную информацию из пакета и правильно ее обрабатывать. Если вы являетесь внимательным читателем моих статей, то могли заметить, что такую работу я проводил в одной из своих статей.
В работе с перехватом трафика требуется владеть навыками поиска и обработки информации. Вы должны знать как правильно составлять запрос для фильтрации данных. а также знать, что нужно искать.
Чтобы продемонстрировать весь процесс работы я использовал стиллер Predator. Подробнее о его исследовании вы можете ознакомиться здесь. Приступим к разбору.
Первым делом запускаем нашу акулу. Перед вами высветится окно такого формата.
Здесь потребуется выбрать наиболее активный трафик. Если у вас нету под рукой виртуальной машины, то список будет немного короче. После выбора сразу же начинается перехват трафика. В этот момент следует запустить вирус предварительно отключив антивирус и убедившись в том, что он не унесет ваши данные за горизонт локальной сети. Так как я настроил передачу данных при помощи почты, то следовательно всю информацию вирус будет отправлять по протоколу SMTP. Но перед этим предлагаю взглянуть на результаты перехвата.
Первым делом взгляд падает на ярко-красные строки. Их рассматривать смысла никакого нет поскольку это неудачное подключение к серверу. Первым делом всегда стоит обращать внимания на зеленую подсветку, которая свидетельствует об успешной передачи пакетов. Чтобы отсеять все необходимое по ним кликаем правой кнопкой мыши по пакету, далее выбираем пункт следовать и протокол TCP. Таким образом мы попадаем на окно с информацией, которую наше устройство передавало.
В самом пакете стоит обратить внимания прежде всего на локацию, в нашем случаи это сайт, который устанавливает внешний IP машины. В CTF обычно он будет вести на другой сайт с зацепкой. Теперь попробуем применить собственные фильтры и отсеять все пакеты с флагом SYN. В них нет ничего интересного поскольку их основная цель это подготовка и завершение подключения с сервером. Для этого в верхней строке вводим такой текст: tcp.flags.syn==1
Вы могли уже заметить, что большая часть пакетов, если не вся полностью окрашена в серый цвет, что предупреждает нас о том, что пакет является пустышкой. Но если мы хотим найти что-то ценное придется поменять тактику. Из анализа GET запроса мы узнали IP адреса получателя и отправителя. Теперь попробуем отследить полное общение устройств при помощи фильтров. В примере указан мой локальный адрес, поэтому в вашем случае он будет отличатся. Для слежки создадим такого типа запрос:
ip.dst == 192.168.10.10 && ip.src == 104.16.155.36
И теперь перед нами есть полная картина общения, по которой можно найти всю нужную информацию. Кроме этого наш вирус передавал информацию на почту и я предлагаю найти ее. Чтобы не запутаться создадим также фильтр состоящий из одного слова: smtp
Теперь перед нашими глазами информация о подключении к серверу и размере передаваемого сообщения. Для просмотра такого добра переходим во вкладку следования и изучаем пакет. Если в условии таски вам дадут порт для подключения то потребуется применить такой фильтр: tcp.port == номер_порта.
Для более понятной ориентации ниже я составил таблицу со всеми операторами и их описанием.
Оператор |
Описание |
== |
Присвоение, оно же равно |
!= |
Отрицание, не равно |
< |
Меньше |
> |
Больше |
>= |
Больше или равно |
<= |
Меньше или равно |
&& |
Логическая операция И, выполняются когда истины два условия |
|| |
Логическая операция ИЛИ, выполняется когда истинно одно из условий |
!() |
Логическая операция НЕ, выполняется когда нет совпадений со значениями в скобках |
Также я предоставил ниже аналогичную таблицу, но связанную с такими операторами как dst/src и тд.
Оператор |
Описание |
ip.addr |
Выдает пакеты где заданный IP используется как источник или приемник |
ip.src |
Выдает пакеты где заданный IP используется как источник |
ip.dst |
Выдает пакеты где заданный IP используется как приемник |
tcp.port |
Выдает пакеты, источником или портом назначения которого является определенный порт |
tcp.flags |
Выдает пакеты, в которых присутствует определенный флаг |
tcp.stream eq |
Следует по потоку с определенным номером |
tcp.seq |
Фильтрует по номеру потока |
Итак, на этом этапе работу с перехваченным трафиком можно закончить. Теперь перейдем к основным моментом анализа бинарных файлов. Если таска состоит в том, чтобы заглянуть в исходный код программы, то здесь потребуются немного другие базовые знания.
Прежде всего вы должны понимать, что реверс подразделяется на 2 большие группы анализа.
- Статический анализ (он делится на: базовый, продвинутый)
- Динамический анализ (он делится на: базовый, продвинутый)
Разберемся с тем, в чем их отличие.
- Статический анализ – он подразумевает анализ файла в обход его запуска. При помощи подручных утилит позволяет вытянуть таблицу импорта/экспорта, а также показывает строки и сигнатуры файла.
- Динамический анализ – заставляет вас открывать файл и анализировать его поведения. Как раз работа, которую мы проводили в Wireshark становится частью динамического анализа PE-файла.
На этом уровне подготовки я не стану рассказывать о упаковщиках, крипторах и деобфускаторов, чтобы случайно не взорвать ваш мозг. Поэтому ниже я предоставил список, который поможет в анализе файла и поиска зацепок для решения CTF. В следующих статьях я более подробно расскажу об устройстве файла и его составе, а пока что рекомендую использовать такой набор тулкит:
Статический анализ: Detected It Easy, FileAlyzer, Import REConstructor, Explorer Suite.
Динамический анализ: dnSpy, dotPeek, ExtremeDump, ProcessExplorer. Regshot.
Теперь можно официально заявить, что посвящение в юные CTF-игроки завершено и можно переползать за черту завершения.
Заключение
Итак, в рамках этой статьи я поверхностно ознакомил вас с основными моментами в работе с CTF, дал небольшую базу знаний, хотя в большей степени новичку требуется уметь правильно обращаться с программой, ну а в дальнейшем уже накапливать и применять знания в сфере информационной безопасности.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Ez ez </title> <meta content="width=device-width, initial-scale=1.0" name="viewport"> <meta content="" name="keywords"> <meta content="" name="description"> <!-- Favicons --> <link href="img/favicon.ico" rel="icon"> <link href="img/favicon-32x32.png" rel="apple-touch-icon"> <!-- Bootstrap CSS File --> <link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <!-- Libraries CSS Files --> <link href="lib/font-awesome/css/font-awesome.min.css" rel="stylesheet"> <link href="lib/animate/animate.min.css" rel="stylesheet"> <link href="lib/ionicons/css/ionicons.min.css" rel="stylesheet"> <link href="lib/owlcarousel/assets/owl.carousel.min.css" rel="stylesheet"> <link href="lib/lightbox/css/lightbox.min.css" rel="stylesheet"> <!-- Main Stylesheet File --> <link href="css/style.css" rel="stylesheet"> </head> <body id="page-top"> <!--/ Nav Star /--> <nav class="navbar navbar-b navbar-trans navbar-expand-md fixed-top" id="mainNav"> <div class="container"> <a class="navbar-brand js-scroll" href="#page-top">Ez brah</a> <button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#navbarDefault" aria-controls="navbarDefault" aria-expanded="false" aria-label="Toggle navigation"> <span></span> <span></span> <span></span> </button> <div class="navbar-collapse collapse justify-content-end" id="navbarDefault"> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link js-scroll active" href="#home">Home</a> </li> <li class="nav-item"> <a class="nav-link js-scroll" href="#about">About</a> </li> <li class="nav-item"> <a class="nav-link js-scroll" href="#service">Services</a> </li> <li class="nav-item"> <a class="nav-link js-scroll" href="#contact">Contact</a> </li> </ul> </div> </div> </nav> <!--/ Nav End /--> <!--/ Intro Skew Star /--> <div id="home" class="intro route bg-image" style="background-image: url(data:image/jpeg;base64,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)"> <div class="overlay-itro"></div> <div class="intro-content display-table"> <div class="table-cell"> <div class="container"> <!--<p class="display-6 color-d">Hello, world!</p>--> <h1 class="intro-title mb-4">I am student</h1> <p class="intro-subtitle"><span class="text-slider-items">Rick and Morty fan,Love Linux,Love beer,This is not flag,Pervak,{,T,h,i,s, ,i,s, ,n,o,t, ,f,l,a,g,!,}</span><strong class="text-slider"></strong></p> <!-- <p class="pt-3"><a class="btn btn-primary btn js-scroll px-4" href="#about" role="button">Learn More</a></p> --> </div> </div> </div> </div> <!--/ Intro Skew End /--> <section id="about" class="about-mf sect-pt4 route"> <div class="container"> <div class="row"> <div class="col-sm-12"> <div class="box-shadow-full"> <div class="row"> <div class="col-md-6"> <div class="row"> <div class="col-sm-6 col-md-5"> <div class="about-img"> <img src="img/testimonial-2.jpg" class="img-fluid rounded b-shadow-a" alt=""> </div> </div> <div class="col-sm-6 col-md-7"> <div class="about-info"> <p><span class="title-s">Name: </span> <span>aaveR lliriK</span></p> <p><span class="title-s">Profile: </span> <span>Hack you!</span></p> <p><span class="title-s">Telegram: </span> <span>@KirillRevaa</span></p> <p><span class="title-s">Phone: </span> <span>1337</span></p> </div> </div> </div> <div class="skill-mf"> <p class="title-s">Skill</p> <span>Drink beer</span> <span class="pull-right">85%</span> <div class="progress"> <div class="progress-bar" role="progressbar" style="width: 85%;" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100"></div> </div> <span>To get education</span> <span class="pull-right">85%</span> <div class="progress"> <div class="progress-bar" role="progressbar" style="width: 85%" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100"></div> </div> <span>Admin</span> <span class="pull-right">10%</span> <div class="progress"> <div class="progress-bar" role="progressbar" style="width: 10%" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100"></div> </div> <span>Smoke cigarettes</span> <span class="pull-right">90%</span> <div class="progress"> <div class="progress-bar" role="progressbar" style="width: 90%" aria-valuenow="90" aria-valuemin="0" aria-valuemax="100"></div> </div> </div> </div> <div class="col-md-6"> <div class="about-me pt-4 pt-md-0"> <div class="title-box-2"> <h5 class="title-left"> About me </h5> </div> <p class="lead"> Did I really just forget that melody? Nah, da da dadadada nananana Alright, da da dadadada When I popped off than your girl gave me just a little bit of lockjaw Baby so cold he from the north, he from the Canada </p> <p class="lead"> Bankroll so low, I got nothing else that I can withdraw Ran out the door I shine my wrist it go like chachasha, chashasha I got your bitch singing me lalala, lalala I shine my wrist it go like chachacha, chachacha I got your bitch singing that lalala, lalala How I stride like that? </p> <p class="lead"> Amex, no cap, 800 score They wonder how, how I guap like that I rap my lyrics when I perform They wonder how, how I stride like that Married to the grind, I bought my ring I'm corny, but your girlie want that **** Modest with my jewels but check the bank Finally got that money say my thanks </p> </div> </div> </div> </div> </div> </div> </div> </section> <div class="section-counter paralax-mf bg-image" style="background-image: url(img/counters-bg.jpg)"> <div class="overlay-mf"></div> <div class="container"> <div class="row"> <div class="col-sm-3 col-lg-3"> <div class="counter-box counter-box pt-4 pt-md-0"> <div class="counter-ico"> <span class="ico-circle"><i class="ion-checkmark-round"></i></span> </div> <div class="counter-num"> <p class="counter">450</p> <span class="counter-text">SKIP COUPLES</span> </div> </div> </div> <div class="col-sm-3 col-lg-3"> <div class="counter-box pt-4 pt-md-0"> <div class="counter-ico"> <span class="ico-circle"><i class="ion-ios-calendar-outline"></i></span> </div> <div class="counter-num"> <p class="counter">15</p> <span class="counter-text">EXAMS PASSED</span> </div> </div> </div> <div class="col-sm-3 col-lg-3"> <div class="counter-box pt-4 pt-md-0"> <div class="counter-ico"> <span class="ico-circle"><i class="ion-ios-people"></i></span> </div> <div class="counter-num"> <p class="counter">550</p> <span class="counter-text">LITER OF BEER DRUNK</span> </div> </div> </div> <div class="col-sm-3 col-lg-3"> <div class="counter-box pt-4 pt-md-0"> <div class="counter-ico"> <span class="ico-circle"><i class="ion-ribbon-a"></i></span> </div> <div class="counter-num"> <p class="counter">36</p> <span class="counter-text">TOLERANCES RECEIVED</span> </div> </div> </div> </div> </div> </div> <a href="#" class="back-to-top"><i class="fa fa-chevron-up"></i></a> <div id="preloader"></div> <!-- JavaScript Libraries --> <script src="lib/jquery/jquery.min.js"></script> <script src="lib/jquery/jquery-migrate.min.js"></script> <script src="lib/popper/popper.min.js"></script> <script src="lib/bootstrap/js/bootstrap.min.js"></script> <script src="lib/easing/easing.min.js"></script> <script src="lib/counterup/jquery.waypoints.min.js"></script> <script src="lib/counterup/jquery.counterup.js"></script> <script src="lib/owlcarousel/owl.carousel.min.js"></script> <script src="lib/lightbox/js/lightbox.min.js"></script> <script src="lib/typed/typed.min.js"></script> <!-- Contact Form JavaScript File --> <script src="contactform/contactform.js"></script> <!-- Template Main Javascript File --> <script src="js/main.js"></script> </body> </html> |
Что такое CTF?
Capture the flag, что на русском — захват флага. Всё очень просто. У тебя есть задание, в ходе которого
нужно найти флаг, являющийся обычной строкой вида flag{…}.
Все флаги, как правило, хорошо спрятаны и часто приходится что-то взламывать или обходить разные системы
защиты, чтобы получить желанный флаг.
У меня нет навыков программирования и тем более нет умения что-либо взламывать
Не переживай, турнир рассчитан на новичков, которые только-только знакомятся с миром IT. Главная задача
этого турнира — заинтересовать тебя и показать, что в IT самом деле всё не очень сложно.
Как играть?
Перед тобой будет выбор из нескольких заданий. Выбирай любое, нажимай на кнопку “Подробнее” и попробуй его
выполнить.
Как найдёшь флаг, возвращайся на главную страницу, вставляй в соответствующее поле и нажимай на кнопку
“Сдать”.
Как понять, что я нашел(ла) флаг?
Флаг имеет вид строки текста flag{…}, такое точно не пропустишь мимо.
Для нас важнее всего содержимое флага, то есть то, что находится вместо многоточия. К примеру, если бы тебе
попался флаг flag{ya_super_hacker}, то ответом на задание являлось бы ya_super_hacker.
Важно! В некоторых заданиях не стоит искать флаг вида flag{…}, ты накнёшься на странную строчку
текста, которая сразу даст понять, что это и есть ответ на задание.
Что ещё мне нужно знать?
Ни в коем случае не перезагружай и не закрывай страницу с заданиями, иначе весь прогресс сбросится. На всякий
случай, перед началом турнира, тебе ещё раз об этом напомнят.
Пожалуйста, не выкрикивай ответы на задания другим участникам турнира, пусть они попробуют сами, иначе
потеряется весь интерес.
Если вдруг что-то не получается, не расстраивайся, просто попробуй ещё раз, а возможно к заданию стоит
подойти совсем с другой стороны.