Главные новости

Рекомендую почитать Здравствуйте! Вообще такой заголовок я хотел сделать в виде отельной странице в блоге, чтобы туда дописывать...

Читать далее

Русский узел А вот то, что должен прочесть каждый. Автор - Митрополит Иоанн (Снычев). Поехали: РОССИЯ - во мгле. В хаосе лжи и...

Читать далее

Слово о человеке Очень ценный труд, оставленный Игнатием Брянчаниновым нам в назидание - "Слово о человеке". Сначала я хотел сюда...

Читать далее

Поэма Русский крест Вашему вниманию представляю поэму Николая Мельникова "Русский крест". 24 мая 2006г. в г.Козельске был убит пронзительный...

Читать далее

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

Читать далее

  • Prev
  • Next

Pre-hackquest PHDays 2012, как это было

Опубликовано: 28.05.2012 в 11:32 | Автор: Rebz | В рубрике: IT, Античат

3

Всем привет.
Хакквест в преддверии форума PHDays 2012 завершился, делимся нашими впечатлениями по квесту (по порядку прохождения уровней):

1. http://hackquest.phdays.com/shukhov.php
Открываем файл radiostream.mp3 любым аудиоредактором и видим хорошо заметные длинные и короткие сигналы с зашумленными двумя-тремя символами. Пользуясь онлайн трансляторами морзе получаем: 9ad8f48e267d27d2d ??? be02526a9ce7. Поигравшись с фильтрацией шума получаем оставшиеся символы.

2. http://hackquest.phdays.com/belorus.php
В тексте результата возвращается XML закодированный в base64. Стандартные методики подстановки XXE – не проходят. При подстановке «левых» значений происходит ошибка валидации. Создаем собственную ошибку валидации через передачу заведомо невозможного аттрибута:

«><!ATTLIST ticket seccode (uot|nouot) «uot»><!ENTITY abc »
И в ошибке получаем флаг.

3. http://hackquest.phdays.com/msu.php
Совершенно непонятно, что от нас хотят. Текст задания порождает больше вопросов, чем ответов. После подсказки, что текст где-то на публичной странице – возникает несколько вариантов: сайты positive technology, slideshare.net, википедия. Ну а раз в задании звучит «для студентов» – идем на википедию, причем английскую, конкурс-то интернациональный. Начинаем искать по наиболее популярным вариантам: XSS, CSRF. Естественно там ничего нет, иначе было бы слишком просто. Ничего, не гордые – пройдем по ссылкам в статьях и при переходе CSRF -> Session fixation находим хеш (он же флаг), добавленный d0znpp.

4. http://hackquest.phdays.com/luzhniki.php
После просмотра дампа – на границе памяти вспоминается способ получения координат точек доступа по мак адресу. Правда, сразу возникает сложность – старые способы (гугловский сбор данных о точках доступа и SkyHook Wireless) – не работают. Ищем аналогичные сервисы и натыкаемся на http://wigle.net, что приводит нас в Нюрнберг, где нас поджидает первая неприятность квеста – немецкие названия улиц и скрипт phdays, который их не понимает. Ну не понимает и не понимает – сбрутим все варианты написания – подходит один из первых и задание пройдено.

5. http://hackquest.phdays.com/tretyakovskaya.php
Неприятное задание, вроде бы и очевидно, что надо делать (обойти фильтр getimagesize), но какой файл ожидают – неясно. Ну и второй неприятный момент квеста – задание постоянно меняется. Вначале сообщение об ошибке getimagesize + путь похожий на мак ось (это оказалось важно), потом абсолютно неинформативные ответы ввиде «No!» и «No…», потом снова ошибка getimagesize, но уже по относительному пути. Ладно, имеем то, что имеем. Подстановка врапперов потоков? Мимо. Локальные файлы уже доступные из веб? Мимо, но интересный результат при подстановке tretyakov.jpeg в скрипт, ломаем голову, но результата нет. Смотрим исходники файла и видим интересный формат XBM, который позволяет в общем случае пропихнуть сишный исходник, но и это не работает. Ладно, качаем мак ось, получаем список файлов и начиная с папкие /etc – брутим какой из файлов подойдет, не надеясь на успех. Но результат появляется – подошел файл aliases.db, где и хранится флаг.

6. http://hackquest.phdays.com/luzhniki.php
И тут нас подводит ожидание неповторяющихся заданий – пытаемся идти от другого метода, чем в первых лужниках – пытаемся найти хакера по айпи адресам, но быстро понимаем, что путь неправильный. Судя по дампу – хакер ехал полчаса, плюс время прибытия каждого фрейма Wi-Fi отмечается системой, например – «Arrival Time: May 16, 2012 23:48:38.024730000″.
На всем пути расположены точки доступа с SSID равным «ICE Telekom», гугл подсказывает, что это InterCity Express, ближе к концу дампа находим точку доступа с известными координатами Зигбурга – подстановка города в скрипт – подтверждает предположение. Из списка городов объединенных сетью поездов с этой страницы – http://en.wikipedia.org/wiki/List_of_Intercity-Express_railway_stations – получаем только те, через которые можно добраться до Зигбурга. А из них отбрасываем слишком удаленные или слишком близкие. Оставшиеся подставляем в скрипт, что дает нам в точку отправления в городе Лимбург. Ну а время нам уже известно.

7. http://hackquest.phdays.com/ostankino.php
Задание Останкино было доступно почти с самого начала, но очевидно зашифрованный файл открыть было нечем, мы его и не трогали. Однако после подсказки 4CRPHP стало понятно куда копать и вскоре шифрование ARC4 пало. Внутри – запись новостей с канала ОРТ. Все вроде бы хорошо, но сурдопереводчица двигает руками как-то слишком медленно. Читая жесты – получаем 23 символа флага – не хватает еще 9. Смотрим файл по кадрам и находим оставшиеся 9 символов. Но неожиданно оказывается, что хеш не подходит – любые комбинации и перестановки символов закодированных в кадрах и сурдопереводе – не подходят. Пишем организатору и получаем совершенно другой флаг, нежели в файле.

8. Kremlin
В задании надо было сфотографировать девушку в красном ливчике с листком бумаги, на котором написано имя команды. Недолго думая, мы создали тему на форуме Античата и в течение часа нужная фотография была опубликована и отправлена организатору. +200, спасибо пользователям форума Античат ;)

9. Circus
Социалка по выманиванию средств у «доверчивого» пользователя. Общеизвестный вектор в виде «мам, отправь денег» – естественно не подошел. Пробуем «Для отключения рассылки рекламы на телефон, введите бесплатную команду: *145*@@@@@@@@@@*1#вызов и подтвердите:*145*Код подтверждения#» По словам организатора – близко, но все равно мимо. Тогда упрощаем смску, и отправляем такое с подменой отправителя – «С вашего телефона был осуществлен перевод средств на счет абонента +7@@@@@@@@@@ на сумму 100 руб. Чтобы заблокировать перевод введите команду *145*@@@@@@@@@@*100#вызов. Внимательно следуйте инструкциям, которые вы будете получать в ответных сообщениях.». Бинго, а в подсказке говорилось, что потребуется больше двух смс, но мы обошлись одной. К тому же, мы подделали отправителя смс (BeeTransfer), что, в общем, логично :)

10. http://hackquest.phdays.com/whitehouse.php
Самое противоречивое, по нашему мнению, задание. Сам домен был найден почти сразу в crossdomain.xml, но попытки пробиться через basic авторизацию – ни к чему не привели. Однако поиск сриптов привел нас в папку /debug/, в которой обнаружилось выполнение произвольных системных команд. Дальше стандартно – ищем уязвимости ядра, SUID/GUID файлы и находим sg_dd с guid битом и удачной группой, которая позволяет читать из /dev/vdc. Пишем небольшой скрипт и вот у нас готов дамп диска – флаг находится в корневом файле /mnt/secret.

Но в задании есть еще пункт Hack host machine. И тут нас, как и в случае с лужниками, подводит ожидание неповторяющихся заданий, а также постоянное изменение условий на сервере. /proc закрыт для чтения, /proc открыт для чтения, снова закрыт, появляется папка /mnt/java с томкэтом, исчезает файл /tmp/example, меняется версия ядра линукса, какой-то юзер постоянно сидит подключенный к машине – и это только то, что успели заметить.

Находим следующую заметку о поведении виртуальных машин kvm и sg_dd – http://www.opennet.ru/opennews/art.shtml?num=32703 . Но вместо загрузочного сектора в нулевом смещении – возвращаются нулл байты, и то же самое происходит для сдвига чтения. C флагом verbose=4 команда sg_dd в имени устройства возвращает мусор, что интерпретируется нами как ошибка и данное направление больше не рассматривается. Уже ближе к концу, а точнее даже после конца CTF – ставим скрипт на дамп этих нуллбайтов по максимальной длине диска и получаем флаг на 100 очков (почему мы этого не сделали раньше?!). Второй флаг видимо чуть глубже по диску, но время уже давно вышло.

11. http://hackquest.phdays.com/savelovsky.php
Иммется некая программа для подключения к серверу. На всякий случай сканируем порты сервера заданий и находим открытый порт 31337. Задание в целом похоже на belorus.php учитывая подсказку error-based XXE, но с использованием xsd для валидации. Вспоминаем про /mnt/java в задании про белый дом и действительно – это наш сервер савеловского. Записываем схемы в /tmp/file.xsd и подключаем их в скрипте.

В простейшем случае для одного поля (одно поле позволяет нам читать и содержимое папок, кстати говоря) выглядит так:
<?xml version=»1.0″ encoding=»utf-8″?><xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»><xs:element name=»heck»/></xs:schema>

А сам XML так:
<?xml version=»1.0″ encoding=»utf-8″ standalone=»no»?><!DOCTYPE toor[<!ENTITY writer SYSTEM "/">]><heck xmlns:xs=»http://www.w3.org/2001/XMLSchema-instance» xs:noNamespaceSchemaLocation=»/tmp/file.xsd»>&writer;</heck>

С помощью этой схемы читаем файл /home/java/flag.txt и.. он не подходит, внутри файла какая-то длинная строка (оказалось, косяк организатора, но ошибка была оперативно поправлена и мы получили флаг). Ладно, ищем дальше – смотрим файл tomcat-users.xml, в интернетах находим схему под этот файл и изменением типа аттрибута – получаем нужный флаг из пароля пользователя. Аналогично достаем флаг из tomcat-log.xml

В сухом остатке:
Плюсы:
- Интересные задания
- Минимум реверсинга
- Форензика
- Соревновательный дух даже до последних секунд квеста

Минусы:
- Мельтешение заданий
- Задачи без явного решения (белый дом)
- Падение телнета на задании с савеловским

Но в любом случае, было классно. С вами была команда Antichat.

Комментариев (3)

угу было круто, были 2 дня в первых позициях топа, но в конце квеста изза лагаов не успели все полученные флаги валидировать =\

На Chaos Construction 2012 едете ?

BigBear, привет!

Да там вроде хакквестов не должно быть, не видел в программе.

PS фототчет по форуму PHDays 2012

Написать комментарий

WP-SpamFree by Pole Position Marketing