[ 1day_1chall ] :: [ Day 1 – Mathroshka ]

Home / Wiki / [ 1day_1chall ] :: [ Day 1 – Mathroshka ]

[ 1day_1chall ] :: [ Day 1 – Mathroshka ]

Revision for “[ 1day_1chall ] :: [ Day 1 – Mathroshka ]” created on 2 de fevereiro de 2016 às 12:50:05

Título
[ 1day_1chall ] :: [ Day 1 - Mathroshka ]
Conteúdo
<blockquote><em><strong>Descrição: </strong>D1v1r74-53 c0m 4 Matroshka! (use wget se tiver dificuldades para baixar o arquivo)</em> <strong>Link: </strong><a href="http://game.ctf-br.org/challenges/Day1-Matroshka.zip">http://game.ctf-br.org/challenges/Day1-Matroshka.zip</a></blockquote> Utilizamos o comando “<strong><em>file</em></strong>” para saber realmente qual o tipo de arquivo apresentado neste desafio: <pre class="top-margin:5 bottom-margin:5 inline-margin:2 lang:sh decode:true">[root:...BR/CPBR2016/DAY_01/write-up]# file Day1-Matroshka.zip Day1-Matroshka.zip: Zip archive data, at least v1.0 to extract</pre> Rodamos o comando “<strong><em>unzip</em></strong>” para descompacta-lo e (<del>para nossa surpresa</del>) nos deparamos com um mais um zip... <pre class="lang:sh decode:true ">[root:...BR/CPBR2016/DAY_01/write-up]# unzip Day1-Matroshka.zip Archive:  Day1-Matroshka.zip extracting: zip.zip [root:...BR/CPBR2016/DAY_01/write-up]# file zip.zip zip.zip: Zip archive data, at least v1.0 to extract</pre> Conforme o nome do <em>challenge</em> estamos realmente lidando com uma <strong><a href="https://pt.wikipedia.org/wiki/Matriosca" target="_blank">Mathroshka</a></strong> que no final nos recompensará com a primeira <em>flag</em> do <strong>1day_1chall</strong>! o/ Pensamos em deixar nosso estagiário rodando o comando “<strong><em>unzip</em></strong>” na mão, porém a idéia de perder o primeiro dia da #CPBR9 não lhe agradou muito e ele resolveu este desafio com uma <del>elegante</del> gambiarra: um <em>shellscript</em> (<strong>solve.sh</strong>) para descompactar sucessivamente todas as camadas da <em>mathroshka</em> e ao final chamando um <em>script</em> em <em>python</em> (<strong>bin2ascii.py</strong>) para conversão da <em>flag</em>. Conteúdo do <strong>bin2ascii.py</strong>: <pre class="lang:python decode:true">#!/usr/bin/env python import binascii import sys binario_in = str(sys.argv[1]) x = "0b%s" % binario_in n = int(x,2) result = binascii.unhexlify('%x' % n) print '[*] Binario --&gt; %s \n[*] Flag --&gt; %s ' % (binario_in, result) </pre> Conteúdo do <strong>solve.sh</strong>: <pre class="lang:sh decode:true">#!/bin/bash i=0 # Descompacta a Matroshka até encontrar um # tipo de arquivo que não seja compactado. while true; do ARQ=$(ls -1 | grep -vE "solve.sh|bin2ascii.py") TYP=$(file $ARQ | cut -d" " -f2) if [ $TYP != "Zip" ]; then echo -ne "\e[33;5m[*] FOUND --&gt; $ARQ \n" break fi echo "[ $i ] $ARQ " WORK="work.zip" mv $ARQ $WORK 7z x $WORK rm $WORK let i++ done # Lê e converte a flag codificada... FLAGBIN=$(cat flag.bin) ./bin2ascii.py $FLAGBIN </pre> Executando o <strong>solve.sh</strong> temos o seguinte resultado: <img class="alignnone size-full wp-image-1880" src="https://ctf-br.org/wp-content/uploads/2016/02/Day01_flag.png" alt="Day01_Mathroshka_Flag" width="389" height="288" /> <h2>FLAG</h2> m4tr0shk4fr4ct4l <h3>CRIADO POR</h3> RTFM - Red Team Freakin' Maniacs
Resumo


OldNewDate CreatedAuthorActions
2 de fevereiro de 2016 às 12:50:05 ChOkO
2 de fevereiro de 2016 às 12:25:18 ChOkO
2 de fevereiro de 2016 às 12:24:15 ChOkO
2 de fevereiro de 2016 às 12:23:08 ChOkO
2 de fevereiro de 2016 às 12:21:51 ChOkO
2 de fevereiro de 2016 às 12:13:25 ChOkO
2 de fevereiro de 2016 às 12:12:50 ChOkO
2 de fevereiro de 2016 às 12:11:18 ChOkO
2 de fevereiro de 2016 às 12:10:01 ChOkO
2 de fevereiro de 2016 às 12:09:17 ChOkO
2 de fevereiro de 2016 às 12:08:27 ChOkO
2 de fevereiro de 2016 às 12:07:39 ChOkO
2 de fevereiro de 2016 às 12:05:56 ChOkO
2 de fevereiro de 2016 às 12:04:47 ChOkO
2 de fevereiro de 2016 às 11:49:39 ChOkO
ChOkO
ChOkO
Rafael "ChOkO" possui 10 anos de experiência como consultor de Segurança da Informação dos quais atuou em diversos projetos, dentre as principais atividades desempenhadas destacam-se: (i) análise de requisitos de segurança tecnológica de projetos, (ii) análise de riscos, (iii) análise de malware, (iv) gestão de vulnerabilidades, (v) planejamento e execução de análises de vulnerabilidades e testes de intrusão. É co-fundador do RTFM, onde obteve experiência participando de campeonatos nacionais e internacionais, bem como, organizando competições e palestrando pelo projeto CTF-BR sobre este modelo de competição.
Recent Posts