RuCTF Quals 2011 обзор.pptx
- Количество слайдов: 34
Ru. CTF Правила игры. Константин Цепелев
Что это такое? И зачем оно нам нужно? Ru. CTF — это всероссийские межвузовские соревнования по защите информации. Ru. CTF – помогает сформировать навыки в определенной области ИБ. Их не так много об этом далее. . Константин Цепелев
Категории тасков на игре Admin (Администрирование) Crack-the-box + web (Взлом серверов и т. п. ) Stegano (Работа с изображениями) Forensics (Криминалистика или как-то так ; ) Joy (Фановые задания) PPC (Professional Programming and Coding) Historical (Исторические) Reverse (Декодирование) Константин Цепелев
Task - Admin VPN E—Mail Нейтрализовать приложение Web_site_is_down Константин Цепелев
Task – Admin. 1 Описание таска: Каждой команде выделяется приватный ip-адрес. Эти ip-адреса должны быть доступны между собой. Для этого команды должны настроить openvpn-тунель до сервера организаторов. Игрокам выдается полностью работающий конфиг, поэтому таск простой - достаточно просто скопировать конфиг куда нужно и запустить демон openvpn. Материалы для команд: Нам нужно сделать сеть. Так, чтобы каждая команда видела каждую. Для этого каждая команда должна установить тунель до нашего маршрутизатора. Ваша подсеть: 10. x. 0. 0/24. Будем использовать Open. VPN. Конфиг прилагается. Если вы пингуете 10. 0. 0. 1 значит тунель работает. Сделайте так, чтобы 10. x. 0. 2 и 10. x. 0. 3 отвечали на ping и жмите кнопку (в input напишите все что угодно : ) Константин Цепелев
Task – Admin. 2 Описание таска: Командам дается список логинов и паролей в каком—нибудь необычном формате. Им требутся настроить почту для этих аккаунтов (pop 3 и smtp). Каждой команде дается домен team_name. ructf для которого надо настроить почту. Корневой dns—сервер находится у организаторов. Дополнительная сложность состоит в том, что в корневом dns—сервере есть записи только типа NS, но нет записей типа A и MX. Листинг зоны ructf разрешен всем. О такой особенности ничего не сказано в условии. Таким образом, чтобы настроить почту, команды должны еще корректно настроить dns—сервер. Материалы для команд: Вам выдается список аккаунтов, для которых неободимо настроить почту (smtp и pop 3) в вашем домене. (team. XX. ructf, где XX — порядковый номер при регистрации) После выполнения задания, отправьте любую строку жюри для проверки. Константин Цепелев
Task – Admin. 3 Описание таска: Командам выдается образ виртуальной машины VMWare с установленной операционной системой Linux. На этой операционной системе запущено сетевое приложение (демон), которое необходимо нейтрализовать. Данный таск призван потренировать админов в обнаружении и нейтрализации (ибо на системе им придется нелегко). Материалы для команд: К нам за помощью обратилась компания, системному администратору которой кажется, что его сервер взломали. После многократных неудачных попыток войти в систему он попросил нас провести аудит этого сервера. Итак, если вы все же решитесь, то вам необходимо нейтрализовать то, что хакеры оставили в системе. Чтобы проверить задание, сообщите нам IP-адрес сервера (надеемся, что сеть на нем вы сконфигурируете без проблем). Мы понимаем как внешние ("белые") адреса, так и адреса внутри VPN. Константин Цепелев
Task – Admin. 4 Описание таска: Командам выдается образ VMWare с операционной системой Linux Debian (4. 0 -etch). На нем (образе) когда-то был запущен web-сервер (и web-сайт соответственно). Сайт содержал уязвимость. Была проведена атака на сервер, и, проникнув в систему, хакер с этого сервера атаковал еще один. После этого хакер выполнил команду 'rm -rf /'. Задачей команд является поиск и исследование log-файлов и ответ на вопрос: "Каков ipадрес злоумышленника и кого он атаковал после нас". Материалы для команд: Один наш знакомый администратор столкнулся с небольшой неприятностью: его машину атаковали. Проникнув в систему, злоумышленник с этого сервера атаковал другую машину. Вы не подскажете нам ip-адрес злоумышленника, ip-адрес машины, которая была атакована с сервера нашего знакомого администратора и MD 5 сумму программы, которую хакер использовал для нападения? Ответ укажите в формате IP_1 IP_2 MD 5_SUM: /(d{1, 3}. ){3}d{1, 3} [a-z 0 -9]{32}/ Константин Цепелев
О том что было сказано в таске Наиболее важные типы DNS-записей: Запись A (address record) или запись адреса связывает имя хоста с адресом IP. Например, запрос A-записи на имя referrals. icann. org вернет его IP адрес — 192. 0. 34. 164 Запись MX (mail exchange) или почтовый обменник указывает сервер(ы) обмена почтой для данного домена. Запись NS (name server) указывает на DNSсервер для данного домена. Константин Цепелев
Task - Crack-the-box + web WEB LQS Z Константин Цепелев
Task – Crack-the-box + web. 1 Описание таска: Командам выдается IP адрес сервера и порт, где работает HTTP сервер. В корневой директории HTTP сервера располагается файл message. secret, который невозможно прочитать путем обращения к серверу. Сервер сконфигурирован таким образом, что позволяет любому удаленному пользователю записать произвольный файл в корневую директорию методом PUT. Файлы с расширением. sh и. pl исполняются на стороне сервера. Команды должны записать файл с расширением. sh или. pl на сервер, затем выполнить его, путем обращения к нему методом GET и прочитать содержимое файла message. secret. Материалы для команд: Дается IP адрес сервера и больше ничего. Константин Цепелев
Task – Crack-the-box + web. 2 Описание таска: Веб-приложение. Несколько заданий на знание языка SQL и умение делать SQLинъекции Материалы для команд: Командам выдается URL Решение: Команде нужно последовательно пройти несколько заданий. В каждом задании предлагается некоторый SQL запрос, в определенное место которого команда может подставлять свои значения. Требуется получить ту или иную информацию из БД. Константин Цепелев
Task – Crack-the-box + web. 3 Описание таска: Командам выдается IP адрес сервера, где они должны самостоятельно найти и пройти (обойти) авторизацию. Материалы для команд: Командам выдается IP Решение: После сканирования всех TCP/UDP портов на сервере, команды обнаружат, что они все закрыты. Посмотрев, какие существуют протоколы транспортного уровня они обнаружат SCTP (алетрнатива TCP). Просканировав все SCTP порты обнаружат 1 открытый, где работает авторизация. После нескольких проб выяснится, что там нет переполнения буфера, кучи, уязвимости форматной строки и стандартные пароли не подходят. Остается перебор. Поняв, что пароль может состоять не только из печатных символов быстро приведет команду к решению. Константин Цепелев
Task - Stegano Птичий язык WM Warm Up Константин Цепелев
Task – Stegano. 1 Описание таска: Команде выдается серая картинка в png-формате, младшие биты картинки составляют отдельное изображение, в котором закодировано сообщение в QR-Code формате. . Материалы для команд: О чём он говорит? -> Решение Для выполнения таска команды должны выполнить следующую последовательность действий: 1. Нарисовать изображение из младших битов изображения 2. Увидеть в новом изображении QR-code 3. Декодировать QR и получить ответ "JURY LIKES VERY LITTLE PENGUINE DISTROS" Константин Цепелев
Task – Stegano. 2 Описание таска: Командам выдаётся изображение с внедрённым ЦВЗ (Цифровой Водяной Знак) и программа, которой было осуществлено его внедрение. Командам требуется узнать ключ, с которым был внедрен ЦВЗ. Материалы для команд: Круто, когда на серверах стоит хорошее железо - и поиграть можно, и поработать. Круто, когда фотки подписаны цифровым водяным знаком. И еще круче - если этот ЦВЗ стойкий. А каков на прочность тот ЦВЗ, которым мы подписали свою фотку? Программа прилагается, правда исходники, как всегда, случайно потерялись %) Ну да разве это проблема? Ваша задача - удалить внедренный ЦВЗ. Ну а в качестве подтверждения того, что вы научились это делать - пришлите нам сумму расширенных координат пикселей, в которых засел этот цифровой водяной знак. Под расширенной координатой мы понимаем Y * Width + X Решение: Для выполнения таска команды должны выполнить следующую последовательность действий: 1. Декомпилировать выданную программу (обратно в C#) и разобраться с алгоритмом, узнать константы a, c, m, k 2. Увидеть (постараться ; ) ) на однотонных белых кусках изображения шум и построить всю последовательность, благо одной точки для этого достаточно 3. Сложить все расширенные координаты получившейся последовательности точек и отправить сумму жюри на проверку, в качестве доказательства того, что команда узнала, где "зашит" ЦВЗ и легко может его убрать Константин Цепелев
Пример декомпиляции программы на C# Константин Цепелев
Task – Stegano. 3 Описание таска: Команде выдается бинарный файл. Если интерпретировать его как x 86 -код, первых символы ассемблерных мнемоник образуют скрытое послание. Материалы для команд: What is the name of the recipient of this message? Решение: Для выполнения таска команды должны выполнить следующую последовательность действий: 1. Догадаться, что выданный бинарник содержит машинный код. 2. Дизассемблировать его и выписать первые символы мнемоник. Нераспознанные IDE опкоды поискать в интернете. «мнемоника» (аналог пиктограммы) как обозначение визуализации в виде изображения, набора символов. Константин Цепелев
Task - Forensics thumbs. db tcpdump Television Константин Цепелев
Task – Forensics. 1 Описание таска: Команде даётся личный каталог пользователя с множеством разных файлов и в том числе с файлом thumbs. db содержащим пиктограммы изображений из этого каталога. В том числе в нём содержатся пиктограммы удалённых изображений. На изображение нанесена секретная информация. . Материалы для команд: Каталог файлов изображений с вложеными файлами thumbs Решение: Понять, что удалённые изображения могут оставаться в качестве пиктограмм в файлах thumbs. db, просмотреть эти файлы любым просмотрщиком, например Thumb. Viewer, и обнаружить удалённое расписание с надписью зоопарк. Константин Цепелев
Task – Forensics. 2 Описание таска: Команде выдается вывод tcpdump'a - полный хекс всех пакетов. Требуется, к примеру, выяснить название вируса, который был передан: т. е. нужно отследить все tcp соединения, вытащить из них данные в правильном порядке, а потом поискать среди них вирус, который мог например быть послан чанками через http, и который ascii-only. Предлагаю снимать дамп на машине, на которой крутится торрент-клиент : ). Материалы для команд: Один из провайдеров обнаружил, что кто то из клиентов распространяет вирусы. У провайдера сохранился дамп пакетов. Известно, что в это время вирус скачивали. Сообщите нам ip адрес поставщика вирусов и имя этого вируса в формате "ip: name“ Решение: Необходимо ведернуть из дампа все tcp стримы. Сохранить из них данные и подсунуть их антивирусу. TODO: Написать скрипт, который это делает. Константин Цепелев
Task – Forensics. 3 Описание таска: Команде выдается gif- или swf-файл, содержащий некоторое движущееся изображение, которое в каждом кадре пикселизируется. Команда должна восстановить исходное изображение и ответить на некоторый вопрос, связанный с ним. Материалы для команд: Не подскажете, как зовут владельца карточки? Решение: Для выполнения таска команды должны выполнить следующую последовательность действий: 1. Разделить анимированное изображение на отдельные кадры (например, с помощью редактора графики). 2. Выделить все отдельные области пикселизации. 3. Для каждой области пикселизации выделить кадры, необходимые для восстановления этой области и переупорядочить их таким образом, чтобы было удобно решать систему 4. Для каждой области убрать наложенные полупрозрачные картинки, если они есть 5. Для каждой области выделить палитру исходного изображения. 6. Для каждой области составить и решить систему. Константин Цепелев
Используемые понятия к таску Блок Квадрат со стороной n пикселей (размер блока), имеющий цвет, равный среднему арифметическому цветов пикселей, покрываемых им. Пикселизатор Прямоугольник, состоящий из x блоков по горизонтали и y блоков по вертикали. Пикселизация Применение пикселизатора к изображению. Пикселизатор не обязательно должен покрывать всё изображение. См. также: http: //en. wikipedia. org/wiki/Pixelization. Расширение порядка k Прямоугольник, имеющий размеры (x*n+k)*(y*n+k). Константин Цепелев
Материалы для таска Константин Цепелев
Task - Joy Team foto Команды должны послать жюри фотографию всей своей команды в рабочей обстановке. }{акерский клип Команды должны снять свой клип на любую хакерскую песню. Programmer's wife Команды должны экранизировать произвольный фрагмент из "Записок невесты программиста" длительностью не менее 30 секунд. Ad Командам предлагается снять 30 секундный рекламный ролик очного тура Ru. CTF. WPage Команды должны сделать одну вебстраницу о их команде, страница будет размещена на сайте ructf. org. Константин Цепелев
Task - PPC Meeting Need For Speed Константин Цепелев
Task – PPC. 1 Описание таска: На Ru. CTF приезжает N команд. Расписания прибытия на вокзал и аэропорт даны. Время в пути от Универа до вокзала t 1, до аэропорта - t 2. Команды нужно встретить. Для этого специальный человек отправляется из Универа на вокзал или аэропорт за время t 1 и t 2 соотв. Если между 2 поездами разница прибытия меньше k 1, то человек (вместе со встреченной командой) остается дожидаться следующий поезд (таким образом один человек может встретить хоть все N команд). Про аэропорт аналогично, только k 2. Встречающий не может бросить втреченные команды на полпути и поехать встречать новые, а должен доставить их до Универа. Поэтому, если происходит такая накладка, следующую команду встречает другой человек. Вопрос: сколько минимум человек надо, чтобы встретить все команды. Материалы для команд: На основные соревнования Ru. CTF приезжает N команд. Расписания прибытия их на вокзал и аэропорт даны в файлах v# и a# соответственно (из архива data#. zip). Время в пути от Университета до вокзала t 1, до аэропорта - t 2. Команды необходимо встретить. Если между 2 поездами разница прибытия меньше чем k 1, то встречающий остается ждать следующий поезд. Аналогичная ситуация с аэропортом, только время k 2. Встречающий не может бросить встреченные команды на полпути и поехать встречать новые, он должен доставить их до Университета. Если такая ситуация случается, то следующую команду встречает другой человек. Сколько минимум человек надо, чтобы встретить все команды ? Константы t 1, t 2, k 1, k 2 заданы в файле conf# (из архива data#. zip в формате "t 1 t 2 k 1 k 2"). Файлы с данными из архива действидельны только в течении трех минут, по истечении данного времени вам нужно заново взять этот таск. Константин Цепелев
Task – PPC. 2 Описание таска: Команде выдаётся исходный текст программы на языке Common Lisp и файл с данными для этой программы. Программа представляет собой переборный алгоритм вычисления минимального «остова» взвешенного графа без проверки связности «остова» (т. е. «остов» , выдаваемый в качестве ответа, может быть и не связным). Материалы для команд: * task. cl — исходный текст программы. * data — данные для обработки. Данный файл идёт вместе с файломj. ZXrj. I 7 Eptgfem 1 v. XLQ для жюри, который содержит соответствующее этому файлу решение. Оба файла могут быть перегенерированы с помощью gen. pl и sol. cl. Файлы в настоящей ревизии были сгенерированы с числом вершин 100 и числом рёбер 200. Файлы распространяются командам в zip-архиве nfs. zip. Решение: Команда должна понять, какой алгоритм закодирован в программе и какой используется формат входных и выходных данных. Используюя эту информацию, нужно написать свою программу, которая будет вычислять то же самое, но за меньшее время, т. к. после анализа исходного алгоритма нетрудно понять, что он является переборным и что на таком объёме входных данных нецелесообразно дожидаться ответа. 6. Для каждой области составить и решить систему. Константин Цепелев
Task - Historical ЭВМ Как называлась первая вычислительная машина в континентальной европе, чью архитектуру можно считать Неймановской. Parsing and NS Mc. Culloch и Pitts написали статью в которой впервые были описаны основной инструмент для разбора языков и основной инструмент искусственного интеллекта (в одной статье!) Как же называлась эта статья и в каком году она вышла? Формат ответа: Название, год (без кавычек и точек). Проверка звука Чей голос на этой аудиозаписи? Lovely girl Кто изображен на фотографии? Handsome guy Его имя? Константин Цепелев
Task - Reverse Crack me Dll Decompilation Константин Цепелев
Task – Reverse. 1 Описание таска: Команде выдается исполняемый файл exe, который просит ввести ключ. На правильный ключ выдается предложение отослать найденный ключ в качестве ответа. Требуется найти правильный ключ. Материалы для команд: Вот вам файл, пришлите нам правильный пароль. Решение: Командам необходимо либо догадаться какой алгоритм используется при проверке пароля и затем подобрать любое слово, удовлетворяющее этому алгоритму, либо подобрать пароль брутфорсом. Константин Цепелев
Task – Reverse. 2 Описание таска: Команде выдается dll и говорится, что она умеет шифровать данные. Требуется найти в ней соответствующую функцию (набор функций) и зашифровать приложенную в задании строку. Желательно, чтобы: 1. в dll было более одной функции : ) 2. по имени функции было непонятно, что она делает; 3. модель вызова функции была отлична от cdecl и stdcall. Материалы для команд: Вот вам dll-ка и ключ (hex): >>0408151623426 C 12<<. Скажите ответ. Решение: * 69 DA 2403 D 2416 D 3 C 8042625839 D 400 * E 963 CDA 3911 B 8000000 E 0 FE 12 Константин Цепелев
Task – Reverse. 3 Описание таска: Команде выдается бинарник, известно что он написан на C, но платформа и компилятор не указываются. Требуется восстановить исходник. Материалы для команд: Данная программа была написана на языке C и собрана с опциями /O 2 /Oi /MD. Восстановите исходный текст, который будет компилироваться в её точную копию. Решение: Для выполнения таска команды должны выполнить следующую последовательность действий: 1. Найти в исполняемом файле функцию main(); 2. Выделить глобальные переменные; 3. Распознать в машинных инструкциях конструкции языка C; 4. На основе пунктов 2 и 3 определить четкие типы переменных; 5. Повторять пункты 1 -4, пока исходник не станет похож на настоящий. Декомпиляторы: Hex. Rays, dcc, Boomerang. С этой программой они не должны справляться ; ). Константин Цепелев
Подготовка Но все-таки для первокурсников и совсем начинающих сначала для начала лучше просто поизучать программирование, архитектуру различных ОС и т. д. без привязки к ИБ. Для подготовки конкретно к Ru. CTF лучше всего смотреть разборы заданий от топовых команд, например, Leet More или Si. Bears: http: //leetmore. ctf. su/ http: //sibears. ru/ И по поводу книг, хотелось бы предостеречь начинающих от чтения сомнительных книг типа "библия хакера" и иже с ними. На самом деле есть немало довольно годной литературы, например: http: //www. ozon. ru/context/detail/id/4833854/ http: //www. ozon. ru/context/detail/id/4839451/ http: //www. ozon. ru/context/detail/id/5238324/ Константин Цепелев


