.NET Framework Rootkits

Ostatnio natknąłem się na dość ciekawy artykuł opisujący możliwość ataku na aplikacje napisane w .NET link :
http://www.applicationsecurity.co.il/english/NETFrameworkRootkits/tabid/161/Default.aspx

Jedna rzecz przykuła mi uwagę. Wiadomo że zestawy są identyfikowane przez silne nazwę. Generuje się ją m.in poprzez użycie prywatnych kluczy. Po wstępnej lekturze zawartego tam artykułu można dowiedzieć o pewnej "słabości" mechanizmu sprawdzania podpisu , mianowicie jeśli uda się umieścić w odpowiednim folderze GAC nowy zestaw który będzie repliką istniejącego zestawu (czyli np poprzez zdekompilowanie, z dołożonym nowym kodem tu czy tam i ponownie skompilowanym z własnym kluczem prywatnym) i umieści się w odpowiednim folderze GAC to mechanizm sprawdzający silną nazwę nie sprawdza tego w wgrywanym zestawie !. Wystarczy mu odpowiednia nazwa folderu w którym jest położonym ten zestaw :]. Oczywiście aby to zrobić trzeba mieć uprawnienia administracyjne...
Praktyczny sposób wykorzystania ?
Proszę bardzo :).Spora cześć aplikacji korzysta z metody FormsAuthentication.HashPasswordForStoringInConfigFile
aby wygenerować np skrót funkcji MD5 i przesyła zakodowane hasło dalej powiedzmy do bazy. Dokładając na początek tej metody kod do przechwytywania argumentów, można zgromadzić spory zbiór haseł...
Pobawię się tym i zobaczę jak to się ma w praktyce.

0 komentarze:

Prześlij komentarz