5.6 KiB
{% hint style="success" %}
Aprenda e pratique Hacking AWS:Treinamento HackTricks AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)
Suporte ao HackTricks
- Verifique os planos de assinatura!
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para os repositórios HackTricks e HackTricks Cloud.
CBC
Se o cookie é apenas o nome de usuário (ou a primeira parte do cookie é o nome de usuário) e você deseja se passar pelo nome de usuário "admin". Então, você pode criar o nome de usuário "bdmin" e fazer força bruta no primeiro byte do cookie.
CBC-MAC
Código de autenticação de mensagem de encadeamento de bloco de cifra (CBC-MAC) é um método usado em criptografia. Funciona pegando uma mensagem e a criptografando bloco por bloco, onde a criptografia de cada bloco está vinculada ao anterior. Esse processo cria uma cadeia de blocos, garantindo que a alteração de até mesmo um único bit da mensagem original levará a uma mudança imprevisível no último bloco de dados criptografados. Para fazer ou reverter tal mudança, a chave de criptografia é necessária, garantindo segurança.
Para calcular o CBC-MAC da mensagem m, criptografa-se m no modo CBC com vetor de inicialização zero e mantém o último bloco. A figura a seguir esboça o cálculo do CBC-MAC de uma mensagem composta por blocos usando uma chave secreta k e um cifrador de bloco E:
Vulnerabilidade
Com o CBC-MAC, geralmente o IV usado é 0.
Isso é um problema porque 2 mensagens conhecidas (m1
e m2
) independentemente gerarão 2 assinaturas (s1
e s2
). Então:
E(m1 XOR 0) = s1
E(m2 XOR 0) = s2
Então, uma mensagem composta por m1 e m2 concatenados (m3) gerará 2 assinaturas (s31 e s32):
E(m1 XOR 0) = s31 = s1
E(m2 XOR s1) = s32
O que é possível calcular sem conhecer a chave da criptografia.
Imagine que você está criptografando o nome Administrador em blocos de 8 bytes:
Administ
rator\00\00\00
Você pode criar um nome de usuário chamado Administ (m1) e recuperar a assinatura (s1).
Então, você pode criar um nome de usuário chamado o resultado de rator\00\00\00 XOR s1
. Isso gerará E(m2 XOR s1 XOR 0)
que é s32.
Agora, você pode usar s32 como a assinatura do nome completo Administrador.
Resumo
- Obtenha a assinatura do nome de usuário Administ (m1) que é s1
- Obtenha a assinatura do nome de usuário rator\x00\x00\x00 XOR s1 XOR 0 é s32**.**
- Defina o cookie como s32 e ele será um cookie válido para o usuário Administrador.
Ataque Controlando o IV
Se você puder controlar o IV usado, o ataque pode ser muito fácil.
Se os cookies forem apenas o nome de usuário criptografado, para se passar pelo usuário "administrador" você pode criar o usuário "Administrator" e obterá seu cookie.
Agora, se você puder controlar o IV, poderá alterar o primeiro byte do IV para que IV[0] XOR "A" == IV'[0] XOR "a" e regenerar o cookie para o usuário Administrator. Este cookie será válido para se passar pelo usuário administrador com o IV inicial.
Referências
Mais informações em https://en.wikipedia.org/wiki/CBC-MAC
{% hint style="success" %}
Aprenda e pratique Hacking AWS:Treinamento HackTricks AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)
Suporte ao HackTricks
- Verifique os planos de assinatura!
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para os repositórios HackTricks e HackTricks Cloud.