Ik heb wat info over de kwetsbaarheden verzameld. Hoewel eerder al JSF (Java Server Faces) kwetsbaar bleek voor een vergelijkbare aanval maakt Microsoft het weer lekker bont aldus
http://netifera.com/research/poet//PaddingOraclesEverywhereEkoparty2010.pdf:
ASP.NET MAC-then-Encrypt these things:
- ViewStates.
- Form Authentication Tickets.
- Anonymous Identification.
- Role Cookies.
In other words, universial padding oracles in every ASP.NET application!
De kwetsbaarheid bestaat er uit dat er bekende "padding" (aanvullen tot een bepaalde buffergrootte) achter plain-text geplakt wordt voordat deze wordt versleuteld
gecombineerd met het feit dat IIS/ASP.NET verschillende foutmeldingen teruggeeft afhankelijk van wat je probeert te raden. Daarmee is een brute-force attack mogelijk waarmee de encryptie kan worden gekraakt (zonder de sleutel te kennen).
Elders uit dat document:
The Golden Rule of Web Security: “Do not keep anything sensitive inside the document root.”
Web.config is the most important and sensitive file in ASP.NET.
Guess what? It’s just a normal file inside the document root!
- Usernames, passwords, connection strings.
- MachineKey: validationKey (HMAC key) and decryptionKey (DES, 3DES, or AES key).
- A lot of configuration information.
All it takes is one file disclose vulnerability.
Uit
http://www.microsoft.com/technet/security/bulletin/MS10-070.mspx In Microsoft .NET Framework 3.5 Service Pack 1 and above, this vulnerability can also be used by an attacker to retrieve the contents of any file within the ASP.NET application, including web.config.
Terug naar
http://netifera.com/research/poet//PaddingOraclesEverywhereEkoparty2010.pdf:
POET -> remote code execution -> Cesar’s Token Kidnapping -> ROOT privilege on Windows
De POET versie die
dat kan hebben ze nog niet gereleased, maar als er daadwerkelijk remote code exec mee mogelijk is dan onderdrijft Microsoft weer lekker in haar MS10-070 advisory (door slechts van "Important" te spreken).
Met "Cesar’s Token Kidnapping" doelen T. Duong en J. Rizzo overigens op dit document van Cesar Cerrudo
http://www.argeniss.com/research/TokenKidnappingRevengePaper.pdf waarin hij een reeks privilege escalations (en fixes) beschrijft. Bizar trouwens dat ordinary users in in Vista, W7 en W2K R1+R2 schrijfrechten hebben op HKLM\Software\Microsoft\Tracing\tapisrv (*), op het XPSP3 systeem waarop ik dit tik is dat gelukkig nog niet zo (read only access voor Users).
(*) Zou dit veroorzaakt worden door de registry en filesystem virualisaties die Microsoft met Vista heeft ingevoerd? Zo ja, dan mag ik toch aannemen dat de Microsoft ontwikkelaars wel zo slim zijn geweest om dergelijke gevirtualiseerde data door meer privileged processen te laten negeren?!? Anders kun je net zo goed weer iedereen overal schrijfrechten geven...
Hmm, onder XP en W2K3 was Microsoft in elk geval nog niet slim bezig, want bij die systemen laat ze services die onder SYSTEM draaien ook keys en values onder HKEY_USERS\S-1-5-20_Classes ("Network" account) en HKEY_USERS\S-1-5-19_Classes (Local Service account) evalueren, waarmee privilege escalation attacks vanuit die accounts naar SYSTEM mogelijk zijn, aldus Cesar Cerrudo.