Desafios de recrutamento ao Mossad 2018 Parte 3
A terceira parte:
O desafio começa com um arquivo desconhecido baixado quando você pressiona alink.
Se abrirmos o arquivo, obteremos o software busybox, um software bem conhecido que contém um kit de ferramentas Linux comumente usado entre sistemas embedded.
Vamos rodar o arquivo e parece que ele diz que temos uma dica na pasta tmp, você pode ver que esta é uma versão editada do busybox.
Se rodarmos um Busybox real a partir de bibliotecas Linux, parece que esta linha de código não esta presente como padrão:
Portanto, provavelmente há algo especial na versão do busybox que baixamos, depois de executar todos os comandos, eles parecem ter modificado o comando ps:
Portanto, o objetivo é claro, precisamos chegar ao arquivo do processo 1337 para analisá-lo a fim de obter nossa próxima dica no desafio.
Então, precisamos começar o processo usando o busybox que baixamos, vamos tentar usar ls e ver todos os arquivos na pasta tmp:
Você pode ver que eles editaram o comando ls e ele adiciona 1 a cada caractere de acordo com seu índice na palavra, de modo que o primeiro caractere é adicionado 1 e o segundo caractere é adicionado 2 etc...
Escrevemos um programa para nos ajudar a usar o comando ls convenientemente.
Se usarmos o comando ls com a palavra skm, parece que podemos ver o conteúdo dos arquivos em nossa pasta tmp e até encontramos a dica.
Se for assim, devemos ser capazes de ler o conteúdo da dica usando os comandos cat com o caminho:
`` /skm/.l^Y[cZ`
Que obtivemos do script de a ajuda que escrevemos:
O resultado ficará assim:
Parece que para chegar ao caractere e deve-se usar o caractere ^ E os caracteres especiais não são afetados pela lógica do caractere + o índice do caractere.
Provavelmente temos um erro de código, então tentamos entender a lógica da seguinte maneira:
Você pode ver que há uma repetição de caracteres dentro dos limites de a-z no loop, vamos verificar a afirmação voltando-nos para o caractere z e ver se obtemos a:
Depois de atualizar nosso código, obteremos:
Com base na dica, concluímos que provavelmente o software cujo processo 1337 envia algumas mensagens ou realiza alguma operação de rede, portanto, precisamos examinar a pasta /proc/1337/ assim:
Parece que a pessoa que editou o arquivo busybox realmente investiu neste desafio, agora vamos puxar o arquivo exe e tentar explorá-lo nós mesmos:
`` ./busybox cat /oply/1337/tlr > aaa`
Se olharmos o arquivo de perto:
O arquivo parece ter 2 parâmetros que são:
- -u nome do usuário
- -d Use a senha padrão, que é Uw1lLN3v3rG3tM3
Se olharmos para o comando busybox ps, parece que o nome de usuário é admin:
Portanto, deve-se fazer um pedido ao seguinte endereço para obter o arquivo:
`` http://35.205.32.11/iso?user=admin&pass=Uw1lLN3v3rG3tM3`
O conteúdo do arquivo é:
`` iso.iso`
Vamos abrir nosso arquivo ISO e parece ter fotos numeradas de 1 a 7
Se você olhar de perto, verá que a imagem 3 está faltando e temos mais 2 arquivos thumbs.db e -vault.
Além disso, iremos executar binwalk no arquivo para obter mais dados no iso e seus arquivos:
Parece que a pasta também tem arquivos HTML e um arquivo de banco de dadossqlite
Vamos puxar a pasta para o Windows para facilitar o trabalho comsqlite
E abra o arquivo do vault com o software SQLiteStudio:
Você pode ver que temos 3 arquivos criptografados dentro do banco de dados e um arquivo html.
O conteúdo do arquivo html se parece com este:
``
Se olharmos novamente para o resumo dos arquivos na pasta feita pelo binwalk podemos ver que alguns arquivos de imagem estão faltando, então olhamos o thumb.db que é apenas um arquivo que armazena em cache o thumb das imagens na pasta.
Para ver o conteúdo do arquivo thumb.db, usaremos o software Thumbs Viewer:
Você pode ver que o software mostra que havia 7 arquivos de imagem na pasta, e a terceira imagem parece ter uma senha para os arquivos criptografados.
Agora vamos procurar no Google um site que saiba como decifrar a criptografia blowfish cbc, então chegamos ao site:
`` http://sladex.org/blowfish.js/`
Usaremos o desafio de descriptografar os três arquivos e executar o arquivo html, o resultado será semelhante a este:
Além disso, um arquivo script.js é codificado e vamos executá-lo para lê-lo unpack:
`` http://matthewfl.com/unPacker.html`
Você pode ver que há uma referência a um arquivo key.js para um servidor local na porta 1337 Você pode usar python e configurar um servidor nesta porta para:
python -m SimpleHTTPServer 1337` Ou você pode apenas referir-se independentemente ao arquivo no arquivo html dessa maneira:
Preferimos editar o arquivo e apenas executá-lo sem
Para resolver o desafio, usamos a ferramenta de desenvolvedor do Chrome da seguinte maneira:
- Colocamos um ponto de interrupção de código ao carregar o código do desafio
E vamos passar por todas as funções até chegarmos a uma função que apresenta o verdadeiro desafio:
Esta função carrega o desafio codificado no formato jsFuck, que é um formato de codificação javascript em apenas 6 caracteres, .
Basta executar o código de desafio pressionando F8 até ver o desafio carregado:
Agora clique em pausar e depois em cancelar ou ok então você verá o código dojsfuck:
Você pode ver que há uma verificação se a senha inserida após a operação btoa é igual à seção em base64, então tudo que você precisa fazer é descriptografar a base64 e inserir a senha:
Vamos inserir a senha e terminar o desafio.