R0 CREW

LabyREnth 2016

Челендж ориентированный на РЕ в формате похожем на FireEye FLARE.
Решил задание получи следующее в каждой из категорий.
Продолжительность до 14.08.2016.
Призовой фонд 16к $.
6 категорий каждая из которых может решаться параллельно.
Для старта нужно сдать соответствующий флаг:
PAN{WINDOWS_START}
PAN{UNIX_START}
PAN{THREAT_START}
PAN{MOBILE_START}
PAN{DOCS_START}
PAN{RANDOM_START}
http://labyrenth.com/

трек Windows, второе задание
у кого-то возникли трудности со сдачей флага? вроде вот он, а не подходит…

У меня возникли трудности. Причем я вообще не понимаю, что там нужно сделать. Пиано это не мое :slight_smile:

Windows, второе задание
Попробуйте 5O_LOUD

Надо сыграть мелодию из 8 нот, но это не обязательно :).

MarcusLarrson, странно… я точно пробовал вчера этот вариант… кажется…
Прошло, спасибо

random, 3 задание
кто-то может намекнуть по поводу порядка склеивания *.bin? там же не брутфорс с эвристикой надо делать? файликов многовато

Поделитесь пож-ст 3 заданием.

Авторы выкинули немного подсказок по начальным челленжам веток:
http://researchcenter.paloaltonetworks.com/2016/08/labyrenth-capture-the-flag-ctf-hints/

Остается примерно 2 дня до завершения. Если кто-то серьезно застрял на каком-нибудь задании, отписывайте в теме.
Пишите что делали и что не получается, подскажу куда копать.

writeups
Вся ветка PAN{WINDOWS_START} и PAN{THREAT_START}

в райтапе по таску threat1 (DopeFish) автор немного не докурил. Его скрипт получает флаг исходя из того, что символы флага отличны из символов набора и расположены в строках слева на право. На самом деле имена файлов PHP, извлекаемые из PCAP, являются индексами для сортировки строк. И тогда не отбрасывая символы можно получить ascii-art картинку DopeFish с флагом внутри.
Для получения оной изменим скрипт:

import re, dpkt, base64

f = open('dopefish_labyrinth.pcap' , 'rb')
pcap = dpkt.pcap.Reader(f)
list =['']*40

for ts, buf in pcap:
    result = re.search('GET(.*)HTTP/1.1', buf)
    if result != None:
        query = result.group(1) # just extract some different fields
        index = re.search('\/(.*)\.php', query).group(1)
        index = int(base64.b64decode(index))
        upper = re.search('php\?(.*)&', query).group(1)
        lower = re.search('[0-9]\?(.*)-', query).group(1)
        list[index] = base64.b64decode((upper+lower)[::-1]).replace('317','')

for i in range(10,40):
  print list[i][:-1]

и получим картинку

WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW..;;;;;.WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWW.;;;;;;;WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWW;;;;;;;;;WWWWWWWWWWWWWWWWWWWWWW..WWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWW.;;;;;;;;.WWWWWWWWWWWWWWWWWWWWWWW..;;.WWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWW...;;;.......;;..WWWWWWWWWWWWWWWWWWWWWWWW.;;..WWWWWWWWW
WWWWWWWWWWWWWWWW...;;;;;P;;;;;;;;;;;;;;;;..WWWWWWWWWWWWWWWWWWWW.;;;.WWWWWWWW
WWWWWWWWWWWWWW.;;;;;;;;;;A;;;;;;;;;;;;;;;;;;..WWWWWWWWWWWWWWWWW.;;;;..WWWWWW
WWWWWWWWWWW;;;;;;;;;;;;;;;N;;;;;;;;;;;;;;;;;;;;;.WWWWWWWWWWWWWW.;;;;;..WWWWW
WWWWWWWWW.;;;;;;;;;;;;;;;;;{;;;;;;;;;;;;;;;;;;;;;;.WWWWWWWWWWWW.;;;;;;..WWWW
WWWWWWW....;;;;;;;;;;;;;;;;;t;;;;;;;;;;;;;;;;;;;;;;.WWWWWWWWWW.;;;;;;;;..WWW
WWWWW.WWW..WWWWV..;;;;;;;;;;;h;;;;;;;;;;;;;;;;;;;;;+..WWWWWWW.;;;;;;;;;..WWW
WWW.WWWWWWWWWWWWWWWW;;;;;;;;;;3;;;;;;;;;;;;;;;;;;;;;;..WWWW.;;;;;;;;;;;..WWW
WW.VW......WWWWWWWWW.;;;;;;;;;;D;;;;;;;;;;;;;;;;;;;;;;;....;;;;;;;;;;;..WWWW
WW.WW......WWWWWWWWWW.;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWWW
WW..WWW.....WWWWWWWWV.;;;;;;...;;p;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWWWWWW
WW.;.W.WWWWWWWWWWWWW.;;;;;;;;..;;;3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.WWWWWWWW
WW...;.VW..WWWWWWWW.;..;;;;;;..;;;;f;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWWWW
WWW......;;;......;;;;;;..;;;..;;;;;s;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWWW
WWW.WW.VV...............;;;;;..;;;;;;h;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWW
WWW.WW.WWWWV.;;;;;;.;....;;;...;;;;;;;l;;;;;;;;;;;;;;;;....;;;;;;;;;;;..WWWW
WWW.WW.WWWWV....;;;;;;;..;;;..;;;;;;;;;1;;;;;;;;;;;;;..WWWW..;;;;;;;;;..WWWW
WWW.WW.WWWWV.;;;;;;.;;;;.;;;;;;;;;;;;;;;v;;;;;..;;....WWWWWW..;;;;;;;;..WWWW
WWW.WW.WWWWV.....;;;;;;;;;;;;;;;;;;;;;;;;3.;;;;....WWWWWWWWWWW.;;;;;;..WWWWW
WWW.WW.WWWWV.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;s;;.....WWWWWWWWWWWW.;;;;;;..WWWWW
WWW....WWWWV..;;;;;;;.;;;;;;;;;;;;;;;;;;;;.}....WWWWWWWWWWWWWW.;;;;;..WWWWWW
WWWWWWW...WV.WW......+;;;;;;;;;;;;;;;;;;;;;...WWWWWWWWWWWWWWW.;;;;;;.WWWWWWW
WWWWWWWWWWWWWWWWWWWWW..;;;;;;;;;;;;;;;;;...WWWWWWWWWWWWWWWWWW.;;;..WWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWW..;;;;;;;;;...WWWWWWWWWWWWWWWWWWWWWW.;;.WWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

Поздравляю нашего коллегу sysenter!
Один из 14 участников который выполнил все задания, во всех ветках (6е место).
DOCS - 52,sysenter,11 days 16:48:15
WINDOWS - 33,sysenter,8 days 16:43:27
UNIX - 13,sysenter,16 days 9:10:55
MOBILE - 20,sysenter,13 days 6:42:20
THREAD - 9,sysenter,19 days 13:31:41
RANDOM - 12,sysenter,13 days 15:40:09

ЗЫ: Себя и MarcusLarrson в стате почему-то не нашел.
ADD : MarcusLarrson замаскировался :), и тоже все прошел.

Грац)