Я не сохранил весь список заданий, но многие из них еще работают, восстанавливаю по памяти.
iPrism (mobile)
hack
this
secret
app
Скачиваем, находим приложение под iOS. Я не особо силен в реверсе, решил оставить на после. Но читая твиттер (полезно быть подписанным на организаторов), наткнулся на запись о сервисе hackapp.com
HackApp is web based service, for mobile apps static security analysis. It identifies critical and suspicious information in bundle, such as:
— Certificates and keys
— Authentication secrets
— License Control
— Compilation flaws
Сервис для поиска security багов в мобильных приложениях. Грузим наш файл, он генерит по нему отчет — hackapp.com/open#e55bece90691913812ef6e0da5c8278a, находим ключ
Affected files:
— b00067.app/Defaults.plist
Plain text authentication secrets seems to be saved in app bundleAuthTokenString:C_C_13_F_L_@_G:8204e7efa933e2521a69417c4ab2357e
Flag: 8204e7efa933e2521a69417c4ab2357e
Prismtestm (web)
Скажу сразу, что это задание я не решил. Решение спросил после у команды (Hardc0de). Переходим на сайт задания, видим вебсайт с формой, где можно заполнить адрес проверки сайта на «PRISM» (обязательно попадающий под регулярку (.*).com ). Сразу заподозрил тут SSRF (1 причина — организаторы ONSec, вторая — просто логически). Копал SSRF Bible, зарегал домен .com, натравил скрипт на свой сервер с включенным tshark — ничего, в общем, как только не бился. Решение — обходим регулярку через /?, т.е. в хост пишем
127.0.0.1:80/?.com
Заставляем скрипт коннектится к локалхосту (?.com просто вырезается в функции на сервере как URI), передаем так же &debug (который можно было увидеть в комментах html). Момент в том, что порт надо указывать обязательно, иначе ничего не заводилось. А через параметр debug нужно провести SSRF, примеры можно найти в разделе Smuggling examples (SSRF bible). И копаем.
listen2me (stegano)
To bypass PRISM guys sometime uses this technique
Flag is MD5(message_from_MP3)
Задание не решил никто. Качаем файл, определяем, что это не mp3 (по заголовкам), даем расширение архива, открываем — архив битый, внутри два файла — calc.exe и reverse_something.txt. Начинаем копать, внутри находятся заголовки JPEG задом наперед. Вытаскиваем картинку, в картинке тоже стегано. Вроде как и в ней — ключ.
Gener (web)
NSA produced high secure PRNG source
По ссылке — исходник
<?php
function reallySecureRandom(){
$seed = (double)microtime()*1000000;
$seed = $seed * (getmypid()>0?getmypid():1);
$seed = $seed * (getmygid()>0?getmygid():1);
$seed = $seed * (getmyinode()>0?getmyinode():1);
$seed = $seed * (getmyuid()>0?getmyuid():1);
$seed = $seed * (memory_get_usage()>0?memory_get_usage():1);
mt_srand($seed);
return mt_rand().mt_rand();
}
if($_COOKIE['token']===md5(reallySecureRandom())) echo file_get_contents('/tmp/flag.txt');
?>
Задача довольно ясная, нужно выставить себе куку по этому алгоритму. microtime — можем узнать через заголовок date, который отдает скрипт. pid/gid/uid — некоторые будут равны нулю, некоторые не такие большие, чтобы перебрать. memory_get_usage — запустить скрипт у себя, замерить расход памяти (при чем расход будет разный на x32 и x64). А вот с getmyinode было непонятно, так как значение действительно большое. В общем каким-то магическим образом задание решалось с $seed = 0. Т.е. код для генерации куки:
<?php
mt_srand(0);
echo md5(mt_rand().mt_rand());
Crackme (reverse)
NSA use this program to produce a secret key.
Flags is MD5(key)
.
Не решал, реверс под macos. Все, что попробовал — прогнать через strings :)
inveter
Reverse the 480120101078 with #chaosconstructions2013.
Hackmap around are Fibonacci numbers up to the 0x10.
Hint: 480132102026 and 481214218007 fit too.Flag is MD5(result)
Задание не решил никто. Были разные мысли, какие правильно — не уверен, так что писать ничего не буду)
CryptoMsg (reverse)
#i#<L4w1u0q)mT9Q — ????????
1evryyone lies6 — 44,~yteU<<*sZOe
1234567 — )Wj~5Kb
1234568 — *Wj~5Kc
2345678 — 1Ym$:Qi
abcdef — FX=#hP
abcdef1 — YY>$iQb
hackers — ]_D1vj_
1337hackers — |\o(pS8%j^S
hackers1337 — UcH5znct)<S
task for cryptoanalysis — !{p]]E6**ma\ND5vfI72'pe
you will never break this cipher! — q:11*saOO?&|cWW;/tWDD:$mbbG2$lSGHFlag is MD5(????????)
Download crypt3r: ./ccrypto.jar
Нужно расшифровать первое сообщение, имея тулзу. Качаем ccrypto.jar, распаковываем через java.decompiler.free.fr/, получаем исходник приложения.
void encrypt() {
int val = 0;
this.buff = new ArrayList();
for (int i = 0; i < this.input.length(); i++)
{
val = this.input.charAt(i);
val -= 32;
if (i > 0)
{
val += ((Integer)this.buff.get(i - 1)).intValue();
}
else
{
val += this.input.length() + 13;
}
if (val > 94)
{
val -= 94;
}
Integer Val = Integer.valueOf(val);
if (i == this.input.length() - 1)
{
int temp = 0;
temp = ((Integer)this.buff.get(0)).intValue() + val;
if (temp > 94)
{
temp -= 94;
}
this.buff.set(0, Integer.valueOf(temp));
}
this.buff.add(Val);
}
for (int i = 0; i < this.input.length(); i++)
this.output += String.valueOf((char)(((Integer)this.buff.get(i)).intValue() + 32));
}
}
Я решал уже во второй день этот таск, а так как я не ложился спать и остался в клубе (ночью решал другой таск), то меня просто уже не хватило на этот алгоритм) помог друг, сосчитал вручную. Обратный алгоритм не так тривиален, как кажется, попробуйте :)
WPA / WPS (WiFi)
Объединил два задания, так как похожи, WPA
You have router at CC2013, which wants to be hacked.
Tricky admin have hidden ESSID of it's AP.
Use all your skills to penetrate in it's networkFlag is MD5(key)
WPS
There is a white box which broadcast wifi somewhere in the hack zone. You need to penetrate into it's network.
BTW some people say it supports WPS and first 4 digits of pin were saved ;) happy hackyFlag is MD5(key)
Идем в хак-зону, грузимся с backtack и делаем все по гайдам. С WPA по стандартному словарю ключ находится за полсекунды.
Гайд по WPA — www.aircrack-ng.org/doku.php?id=cracking_wpa
На русском про WPS — habrahabr.ru/company/xakep/blog/143834/ (кстати, wps не сделал, не было времени. Там просто надо было ждать успешного брута).
onside
Таски прямо на месте. Подходим, спрашиваем, говорят — нужно найти камеры, около которых есть наклейки с надписями. Нужно прочитать, что на них и сообщать организаторам, при этом не попав на них лицом. Варианты решения — разные) Сообщают, что камер
И еще один был, trivia. 5 вопросов, среди которых есть один на который я убил очень много времени — «Назовите хакерскую атаку, название которой состоит только из hex символов». Всякие dd05 или fl00d не подходят, т.е. замена не сработает. Задание решено, у кого-нибудь есть идеи? :)
USBsticks
Get a USB stick from CC2013 to find a key
Подходим, лежит куча флешек. На одной из них был flag.txt, сдаем.
И два самых интересных таска, на мой взгляд.
androface (mobile)
Unlock Android device from CC2013 hack-zone
Подходим, дают планшет samsung с android 4.1, при тебе его лочат face-авторизацией под человека с конференции. Нужно разлочить, количество попыток — 5. Находим баг
Подходим к этому же человеку, фотаем его с открытыми глазами, с закрытыми и пробуем свое счастье. С трех попыток у меня не вышло. После я развернул фотографию на 90 градусов, выкрутил яркость на ноуте на максимум — и все окей :) девайс разлочился
VKmusic (reverse)
This task is top secret and came to you directly from Edward. Since he lives in Moscow now, he would like to feel the true spirit of Russia and listen to free music on VK.
However, his favorite song is currently banned. You need to find out the mechanism of detection and upload the song.
The initial analysis showed that it is enough to replace exactly three bytes to bypass «VKAF».
The answer to the task will be an MD5 hash of concatenated offsets in the file of those bytes.Note: replace the lower two bytes with zeroes for each offset before hash calculation (i.e. 12345 --> 12300)
song
Эта тема уже поднималась на Хабре
Загрузка заблокированных аудиозаписей в «ВКонтакте» — habrahabr.ru/post/183554/
Блокировка аудиозаписей Вконтакте. Восстанавливаем плейлист — habrahabr.ru/post/183470/
В т.ч. там в комментах есть упоминание на выступление, где рассказывается про проверку загруженных записей. Посмотрев видео становится понятно, что проверяются конкретные универсальные байты (т.к. фаззинг с подменой байт в центре, в конце ничего не дал) для всех типов файлов. Организаторы написали, что нужно найти 3 байта и от них взять хэш — и будет ключ. Но в ночь с 10 на 11 было найдено решение всего в 1 байт, которое, к сожалению, не могу здесь опубликовать :) но дать направление — байт чисто визуальный, все данные файла сохраняются.
Качаем трек с задания (который не загружается в ВК), меняем 1 байт — вуаля, все работает.
Утром показал решение — дали флаг вручную :)
Было занято первое место и дали вот такую крутую штуку. Вроде все, спасибо организаторам, было круто :)
Награждение
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html
Комментариев нет:
Отправить комментарий