tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
CBC
만약 cookie가 오직 사용자 이름(또는 cookie의 첫 부분이 사용자 이름)이고, 당신이 사용자 이름 "admin"을 가장하고 싶다면, 사용자 이름 **"bdmin"**을 만들고 첫 바이트를 브루트포스할 수 있습니다.
CBC-MAC
Cipher block chaining message authentication code (CBC-MAC)는 암호학에서 사용되는 방법입니다. 이 방법은 메시지를 블록 단위로 암호화하며, 각 블록의 암호화는 이전 블록과 연결됩니다. 이 과정은 블록의 체인을 생성하여 원래 메시지의 단일 비트라도 변경하면 암호화된 데이터의 마지막 블록에서 예측할 수 없는 변화를 초래합니다. 이러한 변화를 만들거나 되돌리기 위해서는 암호화 키가 필요하여 보안을 보장합니다.
메시지 m의 CBC-MAC을 계산하기 위해, m을 제로 초기화 벡터로 CBC 모드에서 암호화하고 마지막 블록을 유지합니다. 다음 그림은 비밀 키 k와 블록 암호 E를 사용하여 블록으로 구성된 메시지의 CBC-MAC 계산을 간략하게 나타냅니다:
Vulnerability
CBC-MAC에서는 일반적으로 사용되는 IV가 0입니다.
이것은 문제입니다. 왜냐하면 2개의 알려진 메시지(m1
과 m2
)가 독립적으로 2개의 서명(s1
과 s2
)을 생성하기 때문입니다. 그래서:
E(m1 XOR 0) = s1
E(m2 XOR 0) = s2
그런 다음 m1과 m2가 연결된 메시지(m3)는 2개의 서명(s31과 s32)을 생성합니다:
E(m1 XOR 0) = s31 = s1
E(m2 XOR s1) = s32
이는 암호화 키를 알지 않고도 계산할 수 있습니다.
당신이 Administrator라는 이름을 8bytes 블록으로 암호화하고 있다고 상상해 보십시오:
Administ
rator\00\00\00
사용자 이름 Administ(m1)를 만들고 서명(s1)을 가져올 수 있습니다.
그런 다음 rator\00\00\00 XOR s1
의 결과로 사용자 이름을 만들 수 있습니다. 이것은 E(m2 XOR s1 XOR 0)
을 생성하며, 이는 s32입니다.
이제 s32를 전체 이름 Administrator의 서명으로 사용할 수 있습니다.
Summary
- 사용자 이름 Administ(m1)의 서명 s1을 가져옵니다.
- 사용자 이름 rator\x00\x00\x00 XOR s1 XOR 0의 서명 s32를 가져옵니다.
- cookie를 s32로 설정하면 Administrator 사용자에 대한 유효한 cookie가 됩니다.
Attack Controlling IV
사용된 IV를 제어할 수 있다면 공격이 매우 쉬울 수 있습니다.
만약 cookie가 단순히 암호화된 사용자 이름이라면, 사용자 "administrator"를 가장하기 위해 "Administrator"라는 사용자를 만들 수 있으며, 그 사용자의 cookie를 얻을 수 있습니다.
이제 IV를 제어할 수 있다면, IV의 첫 번째 바이트를 변경하여 **IV[0] XOR "A" == IV'[0] XOR "a"**로 만들고 사용자 Administrator의 cookie를 재생성할 수 있습니다. 이 cookie는 초기 IV로 사용자 administrator를 가장하는 데 유효합니다.
References
자세한 정보는 https://en.wikipedia.org/wiki/CBC-MAC
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.