Respostas ao desafio forense – Nível #2

Respostas ao desafio forense – Nível #2

Esta é a continuação das respostas do DESAFIO FORENSE, no Nível #2. Se você não fez ainda o desafio, tenta fazer, confere aqui DESAFIO FORENSE.

No computador RCPDSK03, havia um arquivo chamado payload.bat. Qual a url ele acessa?

Esta pergunta é propositalmente colocada para pensar fora da caixa. Ao analisar o conteúdo, o que achamos, um monte de código estranho? Em byte code? Obfsucator?

Ha várias formas de resolver…. pelo HARDCORE BRUTO (raiz), HARDCORE LÓGICO (lógica de programação) ou pelo modo NUTELLA

Método HARDCORE (BRUTO)

O arquivo esta obfuscado aparentemente. Vou colocar um “pause” no arquivo e executar.

Podemos observar, que ele acessou alguma pagina HTML, mas ainda sem sucesso para ver a URL. Então vou colocar “echo” na frente de todas as linhas e executar!

Tem até um comentário “que estou perto” hehe… vejam que legal, ele executa o programa “curl” e um endereço, ficou algo quebrado com relação ao obfuscator.

Vou fazer um teste de conceito, vou fazer o DUMP de RAM em quanto executo esse programa sem os echo.

O ideal seria fazer uma análise com o volatility…. mas antes, eu já sei que é algo com CURL Com o fantastico Eureka posso fazer um parser no arquivo átras de URLS…. Executando assim:

python3 eureka.py -f memdump.mem –lang eng

O mesmo acima, pode ser feito com o STRINGS da SysInterals. 

Executando: strings -o memdump.mem > memdump.txt 

Logo se abrir o memdump.txt com um bloco de notas e procurar por “curl”, temos:

Metodo HARDCORE (Lógico)

Se parar para olhar o cógido, ele esta ofuscado, de forma nativa para que um “batch” no windows funcione sem precisar instalar nada. Quando estudamos criptografia vemos como exemplo a criptografia de César, que troca as letras um pelas outras.

Novamente do “shrimpgo” ele fez a melhor analise de desofuscação e compartilho o texto escrito por ele: 

- A variável "apf" registra a sequência dos caracteres a serem pesquisados. Ex.: se %apf:~14,1, então ele vai no 14º índice da variável (letra "e"), pegando apenas 1 caractere (",1"). Assim ele vai concatenando todas as outras strings. Portei o código para Python, ficando assim:
#!/usr/bin/python3

apf = []
for i in '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ':
    apf.append(i)

code = '@' + apf[14] + apf[12] + apf[17] + apf[24] + ' ' + apf[24] + \
apf[15] + apf[15] + '\n' + apf[27] + apf[14] + apf[22] + ' ' + apf[57] + \
apf[24] + apf[12] + apf[14] + ' ' + apf[14] + apf[28] + apf[29] + apf[10] + \
' ' +apf[25] + apf[14] + apf[27] + apf[29] + apf[24] + ' ' +apf[13] + \
apf[14] + ' ' + apf[10] + apf[12] + apf[17] + apf[10] + apf[27] + ' ' + \
apf[10] + ' ' + apf[41] + apf[47] + apf[36] + apf[42] + '....' + apf[12] + \
apf[24] + apf[23] + apf[29] + apf[18] + apf[23] + apf[30] + apf[14] + \
'! >' + apf[33] + apf[33] + '\n' + apf[12] + apf[30] + apf[27] + apf[21] + \
' -' + apf[28] + ' ' + apf[17] + apf[29] + apf[29] + apf[25] + '://' + \
apf[33] + apf[30] + apf[17] + apf[10] + apf[1] + apf[28] + apf[11] + \
apf[33] + apf[28] + '.' + apf[21] + apf[14] + apf[15] + apf[24] + apf[27] + \
apf[14] + apf[23] + apf[28] + apf[14] + '.' + apf[12] + apf[24] + apf[22] + \
'/' + '\n' + apf[14] + apf[33] + apf[18] + apf[29]

print(code)
- Resultado:
@echo off
rem Voce esta perto de achar a FLAG....continue! >xx
curl -s http://xuha1sbxs.leforense.com/
exit

Método NUTELLA

Esse é o método mais fácil…. Liguei a maquina alterei o DNS da vitima para um servidor que gerencio, e fiz a requisição. Logo, tennho o endereço que tentou acessar.

Nota: Se a url fosse http://(endereço.com)/algumacoisa.php estava lascado, não pegaria o “algumacoisa.php”

RESPOSTA
http://xuha1sbxs.leforense.com/

Ao acessar a URL do payload.bat, qual é a resposta para o Token decodificado?

Ainda esta pensando fora da caixa?

A resposta esta na pagina, ao acessar o endereço: http://xuha1sbxs.leforense.com/ vemos o seguinte:

Note que esta dizendo “CyberChef 9.12…. RC2 Encrypt” e logo criptografando token….

Lá no Root the Box (onde você responde as perguntas) tem o CyberChef 9.12.

Quando acessamos eles, e colocamos os valores informado na pagina, temos a resposta:

RESPOSTA
C@PTUR3D_FL@G_FOR3NS3

No computador do João, foi identificado que ele instalou o TOR Browser. Se sabe qual o URL ele acessou?

Se ele instalou, e por que precisou acessar ou tentar acessar algo pela ONION. Olhei logo o History do navegador (chrome), onde acho o seguinte:

Se acessar a URL do pastebin, temos:

RESPOSTA
http://zerobinqmdqd236y.onion/?d22e9ba1b754c4ed#efXcdfvF35AHydX7IGjSjWwuKJ9FVP9d4RXkxhzHPvI=

Qual era o conteúdo do endereço do URL Onion?

Poderia até ser simples, bastaria acessar o link com um navegador TOR e ter o resultado! Mas infelizmente o conteúdo não existe mais.

Nota: Este foi um desafio para eu autor, já que, eu mesmo queria saber como achar  a resposta da forma forense, apesar de saber a resposta…. Cruel! 🙁

Aqui foi necessário utilizar paciência e carving, ao procurar sobre a URL, foi possível encontrar que o João enviou ao Meliante via skype a url, porem o conteúdo esta em um arquivo .LDB, e até o presente momento – eu Luiz – desconheço algum SNSS Parser. Então recorri a um Data Carving, atrás de qualquer coisa que possa me ajudar.

Usei o photorec, configurações padrões, e achei isso:

Com base nesse conteúdo, procurei no IPED (Indexador Forense) tudo sobre rraallpphh@protonmail.com, encontrei um arquivo .eml, onde da a “entender” que é sobre isso. Até mesmo pelo assunto “interesse em comun” foi a mesma coisa vista ao encontrar o link no pastebin.

A pergunta, era qual era o conteúdo da mensagem… então acredito que os espaços fazem parte da resposta.

RESPOSTA
rraallpphh [at] protonmail [.] com

Qual era o e-mail do Joao?

Relativamente simples, é possível pelo chrome history ou analisando a maquina do Meliante.

RESPOSTA
joaotopete@protonmail.com

Qual o e-mail do irmão do Meliante?

Não há mistério, basta usar a maquina do Meliante abrir o Thunder Bird, e verificar os e-mails enviados.

RESPOSTA
luizlf@protonmail.com

Meliante desconfiava de algo, ele tentou avisar o seu irmão. Ele enviava arquivos compactado com uma senha, qual era essa senha?

Analisando as mensagens enviadas, tem uma em particular que ele fala sobre o comando “copy /b arquivo1 + arquivo2 arquivofinal

Então, procurando nos e-mails enviados, podemos encontrar um em particular que tem o nome “Lembranças.jpg” e outro arquivo visualmente igual chamado “Meu_Irmao.jpg”, mas um em particular é diferente, ao comparar os dois em HEXADECIMAL

lembrancas.jpg

meu_irmao.jpg

Então, usando a mesma tecnica de estenográfia feita pelo Meliante, fazemos o reverso, renomeamos o arquivo lembrancas.jpg para lembrancas.rar e logo seguida abrimos o arquivo, e temos nossa resposta no arquivo em anexo.

RESPOSTA
Turm@d0.Barulh0

Próximo nível

E aqui encerramos os desafios do nível 2. Vamos ao próximo!

About The Author

Related posts

Leave a Reply