Brainfuck - HTB Write Up - Parte 3 - RSA Decrypt
Nessa etapa do laboratório é feita o entendimento do algoritmo RSA e a descriptografia da chave.
Script encrypt.sage
A criptografia do RSA
O RSA é um algoritmo de criptografia assimétrica, ou seja, uma chave-pública e uma chave-privada. No SSH, a chave-pública é usada pelo usuário e serve para criptografar os dados enviados para o servidor, a chave-privada fica armazenada no servidor e server para descriptografar os dados enviados pelo usuário.
A chave-pública é gerada por dois números primos P e Q que são aleatórios e extensos.
P = 23
Q = 33
N = P*Q = 759
Aplica-se a N o cálculo de Euller da seguinte forma:
Phi(N) = Phi(P) * Phi(Q)
Phi(N) = (P-1) * (Q-1)
Phi(N) = (23-1) * (33-1)
Phi(N) = 704
O próximo cálculo é feito para encontrar o número aleatório E que precisa ser maior que 1, menor que Phi(N) e ser um número primo de Phi(N)
1 < E < Phi(N) = 1 < E < 704
mdc(704,E) = 1
E = 5 pois 1 < 5 < 704 e é um número primo
chave-pública = N e E, logo 704 e 5
No script o cálculo final que resulta na chave-criptografada é c = pow(m, e, n) onde M é a mensagem, E é o número aleatório e N é o valor extraido da operação entre P e Q
Descriptografar RSA
No laboratório, os valores de P, Q e E estão nos seguintes arquivos:
output.txt
debug.txt
Ao executar o comando python3 rsa-decrypt.py é possível obter a chave do usuário root no campo pt (plain-text)
O resultado está em hexadecimal e para converter para caracter usando a tabela ASCII basta usar o comando:
TO BE CONTINUE...
Comentários
Postar um comentário