Ir para conteúdo
  • Cadastre-se
Entre para seguir isso  
Euler Neto

Malwaretech - ransomware1

Posts Recomendados

Link: https://www.malwaretech.com/ransomware1

Alguém conseguiu resolver o desafio? Estou me batendo no assembly e não estou conseguindo decriptar a flag.

A flag encriptada é essa:

00000000  28 bb da 49 3e 0d 11 c7  bb b3 ea 3e c5 e7 23 0b  |(..I>......>..#.|
00000010  73 ba f0 55 c0 85 17 c1  e0 9d d9 69 e0 5e 6d 4e  |s..U.......i.^mN|
00000020  20 b3 b6 48 17 10 0f c0  d3 b0 e8 2c ad f5 40 01  | ..H.......,..@.|
00000030  71 ac f4 52 be f8 1e c1  fa 8a f0       			          |q..R.......|
0000003b

Pelo meu ponto de vista, os dois primeiros loops da função que criptografa ficaram assim:

mov     [ebp+var_111C], 0
...
mov     eax, [ebp+var_111C] 		  ; eax = 0
xor     edx, edx 									; edx = 0
mov     ecx, 20h 								; ecx = 20h
div     ecx 											; eax = eax/ecx = 0/20h = 0, edx = eax%ecx = 0%20h = 0
mov     eax, [ebp+arg_4]				; eax = 0
movzx   ecx, byte ptr [eax+edx] ; ecx = eax+edx = 0+0 = 0
mov     edx, [ebp+var_111C]				; edx = 0
movzx   eax, [ebp+edx+Buffer]	; eax = Buffer[edx] = Buffer[0] = 28h
xor     eax, ecx									; eax = 28h xor 0 = 28h
mov     ecx, [ebp+var_111C]				; ecx = 0
mov     [ebp+ecx+Buffer], al		; Buffer[ecx] = Buffer[0] = 28 (8 primeiros bits)
...
mov     ecx, [ebp+var_111C]
add     ecx, 1
mov     [ebp+var_111C], ecx				; [ebp+var_111C]++
mov     [ebp+var_111C], 1
...
mov     eax, [ebp+var_111C] 		  ; eax = 1
xor     edx, edx 									; edx = 0
mov     ecx, 20h 								; ecx = 20h
div     ecx 											; eax = eax/ecx = 1/20h = 0, edx = eax%ecx = 1%20h = 1
mov     eax, [ebp+arg_4]				; eax = 0
movzx   ecx, byte ptr [eax+edx] ; ecx = eax+edx = 0+1 = 0
mov     edx, [ebp+var_111C]				; edx = 1
movzx   eax, [ebp+edx+Buffer]	; eax = Buffer[edx] = Buffer[1] = BBh
xor     eax, ecx									; eax = BBh xor 1 = BAh
mov     ecx, [ebp+var_111C]				; ecx = 1
mov     [ebp+ecx+Buffer], al		; Buffer[ecx] = Buffer[1] = BAh (8 primeiros bits)
...
mov     ecx, [ebp+var_111C]
add     ecx, 1
mov     [ebp+var_111C], ecx				; [ebp+var_111C]++

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
void DecryptTR( BYTE * baData, BYTE * baListKey, DWORD dwSize )
{
  DWORD dwLoop= 0;

	while ( dwLoop < dwSize )
	{
		baData[dwLoop] ^= baListKey[dwLoop % 32];

		dwLoop++;
	}
}

baixei o arquivo e refiz a função em c..

nessa parte:

mov     eax, [ebp+arg_4]				; eax = 0

 

eax deve receber um array ( BYTE * baListKey ) ao qual não está recebendo ( push 0 = null ), igualmente para o nome do arquivo que tbm não é recebido...

nesse array deve conter 32 bytes ( MOV ECX, 0x20, DIV ECX... ) então abri o txt U HAVE BEEN HACKED... e encontrei esse email: xxxEdgeLord1337xxx@420blazeit.bit

tem 33 caracteres nele... eu tentaria isso 😃

 

#Edit 03/10/2018 - 13:55:

Decidi ir de uma ideologia diferente, peguei as imagens de exemplo, e lembrei de algo: mencionaram que o user usava o Windows 7...

pensei nas imagens padrão do win7, que ficam na pasta imagens....

Chrysanthemum.jpg_encrypted, e pesquisei na internet a imagem, então encontrei a mesma imagem sem criptografia, peguei os 32 bytes iniciais de ambas ( encriptada e desencriptada ),

e fiz o XOR para pegar a key list. e voilà! consegui encontrar os bytes, desencriptei o arquivo flag.txt....

Aqui o código em cpp + flag (SENHA: mentebinaria):

https://ghostbin.com/paste/taag5z4o

(obs: faltou um delete dos bytes, mas enfim haahshassahahshsa )

Aqui os arquivos de imagens decriptados(2):

https://puu.sh/BF7mz/2ae0e3362f.rar

 

mensagem do desafio:

https://puu.sh/BF7v9/bdd9a7bab2.png

Editado por Prog
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa! Realmente não tinha dado atenção às imagens, foquei só na flag encriptada.

Foi bem como descreveram o desafio: "é simples mas tem que pensar fora da caixa".

Valeu mesmo pelas informações!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×