5.9 KiB
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz olan The PEASS Family'yi keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter üzerinden bizi takip edin 🐦 @hacktricks_live.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
CBC
Eğer çerez sadece kullanıcı adıdır (veya çerezin ilk kısmı kullanıcı adıdır) ve kullanıcı adını "admin" olarak taklit etmek istiyorsanız. O zaman, "bdmin" kullanıcı adını oluşturabilir ve çerezin ilk baytını brute force yöntemiyle bulabilirsiniz.
CBC-MAC
Cipher block chaining message authentication code (CBC-MAC), kriptografi alanında kullanılan bir yöntemdir. Bu yöntem, bir mesajı blok blok şifreleyerek çalışır, her bloğun şifrelemesi bir önceki bloğa bağlıdır. Bu süreç, orijinal mesajın sadece bir bitinin bile değiştirilmesinin şifrelenmiş verinin son bloğunda tahmin edilemez bir değişikliğe yol açacağından emin olmak için bir blok zinciri oluşturur. Böyle bir değişiklik yapmak veya tersine çevirmek için şifreleme anahtarı gereklidir, bu da güvenliği sağlar.
Mesaj m'nin CBC-MAC'ini hesaplamak için, m'yi sıfır başlangıç vektörüyle CBC modunda şifreler ve son bloğu saklar. Aşağıdaki şekil, bir gizli anahtar k ve bir blok şifreleme E kullanılarak bloklardan oluşan bir mesajın CBC-MAC'inin hesaplanmasını taslak olarak gösterir:
kullanılarak CBC-MAC'in hesaplanması
Zafiyet
CBC-MAC ile genellikle kullanılan IV 0'dır.
Bu bir sorundur çünkü bağımsız olarak bilinen 2 mesaj (m1
ve m2
), 2 imza (s1
ve s2
) oluşturur. Yani:
E(m1 XOR 0) = s1
E(m2 XOR 0) = s2
Sonra, m1 ve m2'nin birleştirildiği bir mesaj (m3), 2 imza (s31 ve s32) oluşturur:
E(m1 XOR 0) = s31 = s1
E(m2 XOR s1) = s32
Bu, şifrelemenin anahtarını bilmeden hesaplanabilir.
8 baytlık bloklar halinde Yönetici adını şifrelediğinizi hayal edin:
Administ
rator\00\00\00
Administ (m1) adında bir kullanıcı adı oluşturabilir ve imzasını (s1) alabilirsiniz.
Ardından, rator\00\00\00 XOR s1 XOR 0
'ın sonucu olan bir kullanıcı adı oluşturabilirsiniz. Bu, E(m2 XOR s1 XOR 0)
'i üretecektir ve bu da s32'yi oluşturur.
Şimdi, s32'yi Yönetici adının imzası olarak kullanabilirsiniz.
Özet
- Kullanıcı adı Administ (m1) imzasını (s1) alın
- Kullanıcı adı rator\x00\x00\x00 XOR s1 XOR 0'ın imzasını (s32) alın.
- Çerezi s32 olarak ayarlayın ve bu, Yönetici kullanıcısı için geçerli bir çerez olacaktır.
Saldırıyı Kontrol Eden IV
Eğer kullanılan IV'yi kontrol edebiliyorsanız, saldırı çok kolay olabilir.
Eğer çerezler sadece şifrelenmiş kullanıcı adı ise, kullanıcıyı "administrator" olarak taklit etmek için kullanıcıyı "Yönetici" olarak oluşturabilir ve onun çerezini alabilirsiniz.
Şimdi, IV'yi kontrol edebiliyorsanız, IV'nin ilk baytını değiştirebilirsiniz, böylece IV[0] XOR "A" == IV'[0] XOR "a" olur ve Yönetici kullanıcısı için çerezi yeniden oluşturabilirsiniz. Bu çerez, başlangıçtaki IV ile administrator kullanıcısını taklit etmek için geçerli olacaktır.
Referanslar
Daha fazla bilgi için https://en.wikipedia.org/wiki/CBC-MAC adresini ziyaret edin.
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz olan The PEASS Family'yi keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter üzerinden bizi takip edin 🐦 @hacktricks_live.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.